does 'auto ref T' copy or not if passed rvalue
    Andrej Mitrovic 
    andrej.mitrovich at gmail.com
       
    Mon Dec 17 09:51:35 PST 2012
    
    
  
On 12/17/12, Dan <dbdavidson at yahoo.com> wrote:
> Is it an optimization?
I think it is. You can get rid of auto ref and you'll see it still
doesn't copy for the second case, e.g. change signature to:
void foo(S t);
And only this call copies:
foo(s);
This one doesn't copy:
foo(S(['x', 'y', 'z']));
The optimization makes sense since this object doesn't exist outside
the foo function.
Btw, you might want to use `char[] c;`, not `char c[];` since that
syntax will eventually be deprecated.
    
    
More information about the Digitalmars-d-learn
mailing list