Index: boost/serialization/slist.hpp =================================================================== --- boost/serialization/slist.hpp (revision 61958) +++ boost/serialization/slist.hpp (working copy) @@ -60,9 +60,11 @@ ar >> BOOST_SERIALIZATION_NVP(count); if(std::size_t(0) == count) return; - unsigned int v; + unsigned int v = 0; if(3 < ar.get_library_version()){ - ar >> boost::serialization::make_nvp("item_version", v); + boost::archive::version_type item_version(0); + ar >> BOOST_SERIALIZATION_NVP(item_version); + v = item_version.t; } boost::serialization::detail::stack_construct u(ar, v); ar >> boost::serialization::make_nvp("item", u.reference()); Index: boost/serialization/hash_collections_save_imp.hpp =================================================================== --- boost/serialization/hash_collections_save_imp.hpp (revision 61958) +++ boost/serialization/hash_collections_save_imp.hpp (working copy) @@ -22,6 +22,7 @@ #include #include #include +#include namespace boost{ namespace serialization { @@ -35,18 +36,20 @@ inline void save_hash_collection(Archive & ar, const Container &s) { // record number of elements - unsigned int count = s.size(); + unsigned int c = s.size(); + collection_size_type count(c); ar << BOOST_SERIALIZATION_NVP(count); // make sure the target type is registered so we can retrieve // the version when we load if(3 < ar.get_library_version()){ - const unsigned int bucket_count = s.bucket_count(); + const collection_size_type bucket_count(s.bucket_count()); ar << BOOST_SERIALIZATION_NVP(bucket_count); - const unsigned int item_version = version::value; + const boost::archive::version_type item_version( + version::value); ar << BOOST_SERIALIZATION_NVP(item_version); } BOOST_DEDUCED_TYPENAME Container::const_iterator it = s.begin(); - while(count-- > 0){ + while(c-- > 0){ // note borland emits a no-op without the explicit namespace boost::serialization::save_construct_data_adl( ar, Index: boost/serialization/collections_load_imp.hpp =================================================================== --- boost/serialization/collections_load_imp.hpp (revision 61958) +++ boost/serialization/collections_load_imp.hpp (working copy) @@ -139,12 +139,13 @@ s.clear(); // retrieve number of elements collection_size_type count; - unsigned int item_version; + unsigned int item_version_val = 0; ar >> BOOST_SERIALIZATION_NVP(count); - if(3 < ar.get_library_version()) - ar >> BOOST_SERIALIZATION_NVP(item_version); - else - item_version = 0; + if(3 < ar.get_library_version()) { + boost::archive::version_type item_version(0); + ar >> BOOST_SERIALIZATION_NVP(item_version); + item_version_val = item_version.t; + } R rx; rx(s, count); std::size_t c = count; @@ -152,7 +153,7 @@ BOOST_DEDUCED_TYPENAME Container::iterator hint; hint = s.begin(); while(c-- > 0){ - hint = ifunc(ar, s, item_version, hint); + hint = ifunc(ar, s, item_version_val, hint); } } Index: boost/serialization/collections_save_imp.hpp =================================================================== --- boost/serialization/collections_save_imp.hpp (revision 61958) +++ boost/serialization/collections_save_imp.hpp (working copy) @@ -41,10 +41,10 @@ // make sure the target type is registered so we can retrieve // the version when we load if(3 < ar.get_library_version()){ - const unsigned int item_version = version< + const boost::archive::version_type item_version(version< BOOST_DEDUCED_TYPENAME Container::value_type - >::value; - ar << BOOST_SERIALIZATION_NVP(item_version); + >::value); + ar << BOOST_SERIALIZATION_NVP(item_version); } BOOST_DEDUCED_TYPENAME Container::const_iterator it = s.begin(); collection_size_type c=count; Index: boost/serialization/optional.hpp =================================================================== --- boost/serialization/optional.hpp (revision 61958) +++ boost/serialization/optional.hpp (working copy) @@ -38,8 +38,8 @@ ar << boost::serialization::make_nvp("initialized", tflag); if (tflag){ if(3 < ar.get_library_version()){ - const int v = version::value; - ar << boost::serialization::make_nvp("item_version", v); + const boost::archive::version_type v(version::value); + ar << boost::serialization::make_nvp("item_version", v); } ar << boost::serialization::make_nvp("value", *t); } @@ -56,7 +56,9 @@ if (tflag){ unsigned int v = 0; if(3 < ar.get_library_version()){ - ar >> boost::serialization::make_nvp("item_version", v); + boost::archive::version_type vt(v); + ar >> boost::serialization::make_nvp("item_version", vt); + v = vt.t; } detail::stack_construct aux(ar, v); ar >> boost::serialization::make_nvp("value", aux.reference()); Index: boost/serialization/hash_collections_load_imp.hpp =================================================================== --- boost/serialization/hash_collections_load_imp.hpp (revision 61958) +++ boost/serialization/hash_collections_load_imp.hpp (working copy) @@ -21,6 +21,7 @@ #include #include //#include +#include namespace boost{ namespace serialization { @@ -34,9 +35,9 @@ { s.clear(); // retrieve number of elements - unsigned int count; - unsigned int item_version(0); - unsigned int bucket_count;; + collection_size_type count; + boost::archive::version_type item_version(0); + collection_size_type bucket_count; ar >> BOOST_SERIALIZATION_NVP(count); if(3 < ar.get_library_version()){ ar >> BOOST_SERIALIZATION_NVP(bucket_count);