I've heard here and there that D guarantees RVO, or is even specified to do so...

Is it spelled out in the language specification or elsewhere? I haven't found it.

Do you know the exact requirements for RVO or NRVO to be possible in theory, and to be guaranteed in practice in D? Does it depend only on what is returned, or does it depend how it's constructed?

I know I can debug to find out case by case, but that's the kind of C++ stuff I want to avoid... I want to know the theory/norm/spec.

Thanks

Reply via email to