Boost logo

Boost :

Subject: Re: [boost] [operators] The future
From: Eric Niebler (eric_at_[hidden])
Date: 2011-10-04 15:22:30


On 10/4/2011 12:16 PM, Nathan Ridge wrote:
>
>>> If the operations return "type&&" instead of "type", they can potentially be
>>> more efficient, but I'm a little cautious to do that without giving it some
>>> thought because the choice implies subtle differences. I'm sure Daniel has
>>> already taken this all into consideration.
>>
>> Return by value please. Otherwise:
>>
>> type const& x = type() + type();
>> std::cout << x; // BOOM; x is dangling
>
> Won't the following fail too, making it completely useless?
>
> void foo(type const& x)
> {
> ...
> }
>
> foo(type() + type());

No, because the temporary created by "type() + type()" is guaranteed to
live until after foo returns.

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk