id summary reporter owner description type status milestone component version severity resolution keywords cc 13478 multi_index_container serialization of non copyable types Sébastien Paris Joaquín M López Muñoz "A multi_index container holding non-copyable types fails to serialize because of delayed insertion through {{{std::pair insert_(const Value& v,Variant variant)}}} in multi_index_container.hpp:555 happening in {{{void load(Archive& ar,const unsigned int version)}}} in multi_index_container.hpp:940 The insertion should use a rvalue reference overload moving the previously loaded value. Minimal example: {{{ template void check_serialize(Archive &ar) { using non_copyable_type = std::unique_ptr; using non_copyable_multi_index = boost::multi_index_container < non_copyable_type , boost::multi_index::indexed_by < boost::multi_index::hashed_unique < boost::multi_index::const_mem_fun < non_copyable_type , typename non_copyable_type::pointer , &non_copyable_type::get > > > >; non_copyable_multi_index mu; // fine if constexpr (Archive::is_saving::value) ar << boost::serialization::make_nvp(""mu"",mu); // fine else ar >> boost::serialization::make_nvp(""mu"",mu); // error } }}}" Bugs closed To Be Determined multi_index Boost 1.66.0 Problem fixed serialization non-copyable