#include #include #include #include namespace boost { namespace serialization { template inline void save( Archive & ar, const std::vector& l, unsigned int version ) { typename std::vector::size_type count = l.size(); ar << BOOST_SERIALIZATION_NVP(count); for (const auto& v : l) ar << boost::serialization::make_nvp("item", v); } template inline void load( Archive & ar, std::vector& l, unsigned int version ) { l.clear(); typename std::vector::size_type count; ar >> BOOST_SERIALIZATION_NVP(count); while (count-- > 0) { detail::stack_construct t(ar, version); ar >> boost::serialization::make_nvp("item", t.reference()); l.emplace_back(std::move(t.reference())); ar.reset_object_address(&l.back(), &t.reference()); } } template inline void serialize( Archive & ar, std::vector& l, unsigned int version ) { split_free(ar, l, version); } } // namespace serialization } // namespace boost