Boost logo

Boost :

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


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?

Regards,
Adam


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