Boost logo

Boost :

Subject: Re: [boost] [tuple] - Move constructors for Tuple
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2013-02-22 21:00:12


Adam Wulkiewicz wrote:
> paul Fultz wrote:
>>
>> Im sorry, it should be something like this:
>>
>> struct foo
>> {
>> tuple<int> x;
>> };
>>
>> foo a;
>> a = foo();
>>
> ...
>>
>> Because of this issue here:
>> https://svn.boost.org/trac/boost/ticket/6167
>
> It compiles now, thanks. Checked on clang (98, 11), gcc (98, 11), mingw,
> vs2010, for tuples and tuple::cons.
>
> - in c++98 copy assignment is called
> - in c++11 move assignment is called
> - in vc2010 copy assignment is called, it probably just doesn't generate
> implicit move assignment for foo.
>
> Btw, I saw the ticket. Everything that needs to be done is adding
> explicitly defined copy assignment taking const ref if
> BOOST_NO_CXX11_RVALUE_REFERENCES. Boost.Move
> BOOST_COPYABLE_AND_MOVABLE() macro adds only non-const ref version. If
> the const version was added as well it would probably fix all issues
> described in the ticket. Is there a reason why this isn't there?

And it now supports storing references also in c++11.

Regards,
Adam


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