Is this a bug or am I doing something wrong?
drsneed via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Dec 3 15:20:56 PST 2014
On Wednesday, 3 December 2014 at 23:09:02 UTC, Ali Çehreli wrote:
> On 12/03/2014 03:02 PM, drsneed wrote:
>> Check out http://dpaste.dzfl.pl/a5ada78fccf5
>> If my function named "IWillNotCompile" is run, I get an error
>> stating
>> "Component!int' and 'Component!int' are not compatible."
>> If my function named "IWillCompile" is run, there are no
>> errors. They do
>> the same thing, just written slightly differently.
>>
>> Any suggestions?
>
> Unlike C++, rvalues cannot be bound to reference parameters
> even if reference to const.
>
> Make the parameter 'auto ref' and it will compile:
>
> Component!(T) opBinary(string op)(auto ref Component!(T) rhs)
>
> For auto ref, the function must be a template so that the
> compiler can generate by-reference and by-value versions of it
> depending on whether the argument is lvalue versus rvalue.
>
> Here is my understanding of the issue:
>
> http://ddili.org/ders/d.en/lvalue_rvalue.html
>
> Ali
Ahh, I'm used to the c++ style. Nice write-up on the matter, and
thanks for the help!
More information about the Digitalmars-d-learn
mailing list