
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