Constructor params with same name as members

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Oct 23 11:57:33 PDT 2014


On 10/22/2014 11:37 PM, Jonathan M Davis wrote:

 > x = x;
 >
 > which is so obviously wrong that I don't know how much of anyone could
 > make that mistake. But simply making it illegal to assign a variable to
 > itself would solve that problem, and that arguably should be done, since
 > it's a essentially a no-op.

Steve said the same thing and it's true for fundamental types but just 
to annoy you two, assignment can have side effects. :)

import std.stdio;

struct X
{
     X opAssign(X that)
     {
         writeln("side-effect!");
         return this;
     }
}

void main()
{
     auto x = X();
     x = x;
}

Ali



More information about the Digitalmars-d-learn mailing list