: In function 'int main()': :54:45: error: no matching function for call to 'boost::container::vector >::push_back(boost::rv >&)' fooVector.push_back(boost::move(fooBPtr)); ^ :54:45: note: candidates are: In file included from /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:56:0, from :9: /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: void boost::container::vector::push_back(typename boost::move_detail::if_, const boost::rv&, const T&>::type) [with T = boost::movelib::unique_ptr; Allocator = boost::container::new_allocator >; typename boost::move_detail::if_, const boost::rv&, const T&>::type = const boost::rv >&] BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:72:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: no known conversion for argument 1 from 'boost::rv >' to 'boost::move_detail::if_c >&, const boost::movelib::unique_ptr&>::type {aka const boost::rv >&}' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:72:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: void boost::container::vector::push_back(typename boost::move_detail::if_, boost::rv&, boost::move_detail::nat>::type) [with T = boost::movelib::unique_ptr; Allocator = boost::container::new_allocator >; typename boost::move_detail::if_, boost::rv&, boost::move_detail::nat>::type = boost::rv >&] BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:75:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: no known conversion for argument 1 from 'boost::rv >' to 'boost::move_detail::if_c >&, boost::move_detail::nat>::type {aka boost::rv >&}' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:75:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: void boost::container::vector::push_back(T&) [with T = boost::movelib::unique_ptr; Allocator = boost::container::new_allocator >] BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:78:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(TYPE &x)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: no known conversion for argument 1 from 'boost::rv >' to 'boost::movelib::unique_ptr&' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:78:43: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON' BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(TYPE &x)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:4: note: in expansion of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: template typename boost_move_conversion_aware_catch_1::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM; T = boost::movelib::unique_ptr; Allocator = boost::container::new_allocator >] BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:104:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: template argument deduction/substitution failed: BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:104:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp: In substitution of 'template typename boost_move_conversion_aware_catch_1::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = boost::rv >]': :54:45: required from here /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: error: no type named 'type' in 'struct boost_move_conversion_aware_catch_1 >, boost::movelib::unique_ptr >' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:104:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: template typename boost_move_conversion_aware_catch_2::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM; T = boost::movelib::unique_ptr; Allocator = boost::container::new_allocator >] BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:109:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: note: template argument deduction/substitution failed: BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:109:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp: In substitution of 'template typename boost_move_conversion_aware_catch_2::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = boost::rv >]': :54:45: required from here /opt/compiler-explorer/libs/boost_1_64_0/boost/container/vector.hpp:1853:38: error: no type named 'type' in 'struct boost_move_conversion_aware_catch_2 >, boost::movelib::unique_ptr >' BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) ^ /opt/compiler-explorer/libs/boost_1_64_0/boost/move/detail/move_helpers.hpp:109:13: note: in definition of macro 'BOOST_MOVE_CONVERSION_AWARE_CATCH' PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ ^ Compiler exited with result code 1