Named return values in C++ doesn't work ?
Jason Merrill
jason@cygnus.com
Thu Oct 1 03:27:00 GMT 1998
>>>>> Gabriel Dos Reis <Gabriel.Dos-Reis@dptmaths.ens-cachan.fr> writes:
>>>>> Alexandre Oliva <oliva@dcc.unicamp.br> écrit :
>> Sylvain Pion <Sylvain.Pion@sophia.inria.fr> writes:
>>> class C {
>> [...]
>>> C operator+(const C & d) return tmp; {
>> For some reason, it only works for functions defined outside a class
>> body.
>> Anyway, this feature should be deprecated, since the C++ Standard
>> explicitly allows the unnamed return value optimization.
> I agree. Is anyone be considering that optimization?
I've been considering it for a long time. Unfortunately, the compiler
architecture (going straight to RTL) makes it hard, as we assign the
location of variables well before we can tell if they are suitable to be
stuck in the return value slot.
Jason
More information about the Gcc
mailing list