inline void load_collection(Archive & ar, Container &s) { s.clear(); const boost::archive::library_version_type library_version( ar.get_library_version() ); // retrieve number of elements item_version_type item_version(0); collection_size_type count; ar >> BOOST_SERIALIZATION_NVP(count); if(boost::archive::library_version_type(3) < library_version){ ar >> BOOST_SERIALIZATION_NVP(item_version); }
inline void load_hash_collection(Archive & ar, Container &s) { collection_size_type count; collection_size_type bucket_count; boost::serialization::item_version_type item_version(0); boost::archive::library_version_type library_version( ar.get_library_version() ); // retrieve number of elements if(boost::archive::library_version_type(6) != library_version){ ar >> BOOST_SERIALIZATION_NVP(count); ar >> BOOST_SERIALIZATION_NVP(bucket_count); }
inline void load( Archive & ar, std::list<U, Allocator> &t, const unsigned int /* file_version */ ){ const boost::archive::library_version_type library_version( ar.get_library_version() ); // retrieve number of elements item_version_type item_version(0); collection_size_type count; ar >> BOOST_SERIALIZATION_NVP(count); if(boost::archive::library_version_type(3) < library_version){ ar >> BOOST_SERIALIZATION_NVP(item_version); }
inline void load( Archive & ar, BOOST_STD_EXTENSION_NAMESPACE::slist<U, Allocator> &t, const unsigned int file_version ){ // retrieve number of elements t.clear(); // retrieve number of elements collection_size_type count; ar >> BOOST_SERIALIZATION_NVP(count); if(collection_size_type(0) == count) return; item_version_type item_version(0); const lslboost::archive::library_version_type library_version( ar.get_library_version() ); if(lslboost::archive::library_version_type(3) < library_version){ ar >> BOOST_SERIALIZATION_NVP(item_version); }
void load( Archive & ar, boost::optional< T > & t, const unsigned int version ){ bool tflag; ar >> boost::serialization::make_nvp("initialized", tflag); if(! tflag){ t.reset(); return; } if(0 == version){ boost::serialization::item_version_type item_version(0); boost::archive::library_version_type library_version( ar.get_library_version() ); if(boost::archive::library_version_type(3) < library_version){ ar >> BOOST_SERIALIZATION_NVP(item_version); }
void load( Archive & ar, lslboost::optional< T > & t, const unsigned int /*version*/ ){ bool tflag; ar >> lslboost::serialization::make_nvp("initialized", tflag); if (tflag){ lslboost::serialization::item_version_type item_version(0); lslboost::archive::library_version_type library_version( ar.get_library_version() ); if(lslboost::archive::library_version_type(3) < library_version){ // item_version is handled as an attribute so it doesnt need an NVP ar >> BOOST_SERIALIZATION_NVP(item_version); } detail::stack_construct<Archive, T> aux(ar, item_version); ar >> lslboost::serialization::make_nvp("value", aux.reference()); t.reset(aux.reference()); }