struct is not copyable because it is annotated with @disable bugs ?

Adam D. Ruppe destructionator at gmail.com
Sat Jul 27 17:13:45 UTC 2019


On Saturday, 27 July 2019 at 16:59:44 UTC, Newbie2019 wrote:
> 		auto list = NodeList(a, b);

If you change that to just plain `return NodeList(a, b);`, while 
keeping the first line, it will compile too.

The reason here is when you return and construct together, it 
constructs it in-place. But if you put it in a local variable 
first, it needs to copy it to the return value.

Removing the first line just lets the compiler optimize out the 
local variable, reducing it to the in-place one again.

But explicitly returning and constructing together works in 
either case.


More information about the Digitalmars-d-learn mailing list