id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 9644,Containers and move-only elements w/Move Emulation,John M. Długosz ,Ion Gaztañaga,"The definition of boost::container::vector includes: BOOST_COPYABLE_AND_MOVABLE rather than BOOST_MOVABLE_BUT_NOT_COPYABLE if the element type cannot be copied. If I have: {{{ typedef boost::container::vector VecType; VecType foo() { ⋮ return boost::move(some_other_vec); } VecType x= foo(); }}} On a configuration with BOOST_NO_RVALUE_REFERENCES defined, this gives an error within VecType's copy constructor, since MyType cannot be copied. If I write {{{ VecType x= boost::move(foo()); }}} then I get an error that no matching move is viable, as the move(T&) wants an lvalue as the argument. I can't write the return type of foo to be rv because that can't be copied (fake move-out like auto_pointer) either; the members are declared private and never defined. This is a bug on Boost.Container, as it defines the copy constructor and the move emulation is not good enough to avoid the defined copy constructor. (The project I found this on was using Boost 1.49. It is unchanged in the current version, but I've not tested it on that.)",Bugs,closed,To Be Determined,container,Boost 1.49.0,Problem,wontfix,,igaztanaga@…