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@…