diff --git a/include/boost/serialization/archive_input_unordered_map.hpp b/include/boost/serialization/archive_input_unordered_map.hpp index ca226f71..ccf806b1 100644 --- a/include/boost/serialization/archive_input_unordered_map.hpp +++ b/include/boost/serialization/archive_input_unordered_map.hpp @@ -22,6 +22,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -40,7 +41,7 @@ struct archive_input_unordered_map detail::stack_construct t(ar, v); ar >> boost::serialization::make_nvp("item", t.reference()); std::pair result = - s.insert(t.reference()); + s.insert(boost::move(t.reference())); // note: the following presumes that the map::value_type was NOT tracked // in the archive. This is the usual case, but here there is no way // to determine that. diff --git a/include/boost/serialization/archive_input_unordered_set.hpp b/include/boost/serialization/archive_input_unordered_set.hpp index e6a5b79c..7f0003cc 100644 --- a/include/boost/serialization/archive_input_unordered_set.hpp +++ b/include/boost/serialization/archive_input_unordered_set.hpp @@ -20,6 +20,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -40,7 +41,7 @@ struct archive_input_unordered_set // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); std::pair result = - s.insert(t.reference()); + s.insert(boost::move(t.reference())); if(result.second) ar.reset_object_address(& (* result.first), & t.reference()); } @@ -59,7 +60,7 @@ struct archive_input_unordered_multiset detail::stack_construct t(ar, v); ar >> boost::serialization::make_nvp("item", t.reference()); typename Container::const_iterator result = - s.insert(t.reference()); + s.insert(boost::move(t.reference())); ar.reset_object_address(& (* result), & t.reference()); } }; diff --git a/include/boost/serialization/collections_load_imp.hpp b/include/boost/serialization/collections_load_imp.hpp index 93d64d72..c3b165a8 100644 --- a/include/boost/serialization/collections_load_imp.hpp +++ b/include/boost/serialization/collections_load_imp.hpp @@ -40,6 +40,7 @@ namespace std{ #include #include #include +#include namespace boost{ namespace serialization { @@ -93,7 +94,7 @@ collection_load_impl( while(count-- > 0){ detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - t.push_back(u.reference()); + t.push_back(boost::move(u.reference())); ar.reset_object_address(& t.back() , & u.reference()); } } diff --git a/include/boost/serialization/deque.hpp b/include/boost/serialization/deque.hpp index 4d0a21f5..bba81364 100644 --- a/include/boost/serialization/deque.hpp +++ b/include/boost/serialization/deque.hpp @@ -24,7 +24,6 @@ #include #include -#include #include namespace boost { diff --git a/include/boost/serialization/forward_list.hpp b/include/boost/serialization/forward_list.hpp index d9686927..bdb4dbe6 100644 --- a/include/boost/serialization/forward_list.hpp +++ b/include/boost/serialization/forward_list.hpp @@ -33,6 +33,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -79,7 +80,7 @@ collection_load_impl( while(--count > 0){ detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - last = t.insert.after(last, u.reference()); + last = t.insert.after(last, boost::move(u.reference())); ar.reset_object_address(&(*last) , & u.reference()); } } diff --git a/include/boost/serialization/hash_map.hpp b/include/boost/serialization/hash_map.hpp index 615ace8d..22626db6 100644 --- a/include/boost/serialization/hash_map.hpp +++ b/include/boost/serialization/hash_map.hpp @@ -25,6 +25,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -45,7 +46,7 @@ struct archive_input_hash_map // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); std::pair result = - s.insert(t.reference()); + s.insert(boost::move(t.reference())); // note: the following presumes that the map::value_type was NOT tracked // in the archive. This is the usual case, but here there is no way // to determine that. @@ -72,7 +73,7 @@ struct archive_input_hash_multimap // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); typename Container::const_iterator result - = s.insert(t.reference()); + = s.insert(boost::move(t.reference())); // note: the following presumes that the map::value_type was NOT tracked // in the archive. This is the usual case, but here there is no way // to determine that. diff --git a/include/boost/serialization/hash_set.hpp b/include/boost/serialization/hash_set.hpp index 6275e030..0c72c184 100644 --- a/include/boost/serialization/hash_set.hpp +++ b/include/boost/serialization/hash_set.hpp @@ -23,6 +23,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -43,7 +44,7 @@ struct archive_input_hash_set // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); std::pair result = - s.insert(t.reference()); + s.insert(boost::move(t.reference())); if(result.second) ar.reset_object_address(& (* result.first), & t.reference()); } @@ -63,7 +64,7 @@ struct archive_input_hash_multiset // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); typename Container::const_iterator result - = s.insert(t.reference()); + = s.insert(boost::move(t.reference())); ar.reset_object_address(& (* result), & t.reference()); } }; diff --git a/include/boost/serialization/list.hpp b/include/boost/serialization/list.hpp index 741dbbe7..5fdc114d 100644 --- a/include/boost/serialization/list.hpp +++ b/include/boost/serialization/list.hpp @@ -29,7 +29,6 @@ #include #include #include -#include namespace boost { namespace serialization { diff --git a/include/boost/serialization/map.hpp b/include/boost/serialization/map.hpp index 84be37eb..9209864c 100644 --- a/include/boost/serialization/map.hpp +++ b/include/boost/serialization/map.hpp @@ -31,6 +31,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -59,7 +60,7 @@ inline void load_map_collection(Archive & ar, Container &s) detail::stack_construct t(ar, item_version); ar >> boost::serialization::make_nvp("item", t.reference()); typename Container::iterator result = - s.insert(hint, t.reference()); + s.insert(hint, boost::move(t.reference())); ar.reset_object_address(& (result->second), & t.reference().second); hint = result; ++hint; diff --git a/include/boost/serialization/optional.hpp b/include/boost/serialization/optional.hpp index 45bad916..ecd1756d 100644 --- a/include/boost/serialization/optional.hpp +++ b/include/boost/serialization/optional.hpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include // function specializations must be defined in the appropriate // namespace - boost::serialization @@ -47,7 +47,7 @@ void save( // in the future, but for now, one will have to work around it. This can // be done by serialization the optional as optional BOOST_STATIC_ASSERT( - boost::detail::has_default_constructor::value + boost::serialization::detail::is_default_constructible::value || boost::is_pointer::value ); const bool tflag = t.is_initialized(); diff --git a/include/boost/serialization/set.hpp b/include/boost/serialization/set.hpp index f984d28b..643906c5 100644 --- a/include/boost/serialization/set.hpp +++ b/include/boost/serialization/set.hpp @@ -29,6 +29,7 @@ #include #include +#include namespace boost { namespace serialization { @@ -55,7 +56,7 @@ inline void load_set_collection(Archive & ar, Container &s) // borland fails silently w/o full namespace ar >> boost::serialization::make_nvp("item", t.reference()); typename Container::iterator result = - s.insert(hint, t.reference()); + s.insert(hint, boost::move(t.reference())); ar.reset_object_address(& (* result), & t.reference()); hint = result; } diff --git a/include/boost/serialization/slist.hpp b/include/boost/serialization/slist.hpp index af300683..d9b971bc 100644 --- a/include/boost/serialization/slist.hpp +++ b/include/boost/serialization/slist.hpp @@ -29,6 +29,7 @@ #include #include #include +#include namespace boost { namespace serialization { @@ -67,14 +68,14 @@ collection_load_impl( t.clear(); boost::serialization::detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - t.push_front(u.reference()); + t.push_front(boost::move(u.reference())); typename BOOST_STD_EXTENSION_NAMESPACE::slist::iterator last; last = t.begin(); ar.reset_object_address(&(*t.begin()) , & u.reference()); while(--count > 0){ detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - last = t.insert_after(last, u.reference()); + last = t.insert_after(last, boost::move(u.reference())); ar.reset_object_address(&(*last) , & u.reference()); } } @@ -109,14 +110,14 @@ inline void load( t.clear(); boost::serialization::detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - t.push_front(u.reference()); + t.push_front(boost::move(u.reference())); typename BOOST_STD_EXTENSION_NAMESPACE::slist::iterator last; last = t.begin(); ar.reset_object_address(&(*t.begin()) , & u.reference()); while(--count > 0){ detail::stack_construct u(ar, item_version); ar >> boost::serialization::make_nvp("item", u.reference()); - last = t.insert_after(last, u.reference()); + last = t.insert_after(last, boost::move(u.reference())); ar.reset_object_address(&(*last) , & u.reference()); } } diff --git a/include/boost/serialization/unordered_collections_load_imp.hpp b/include/boost/serialization/unordered_collections_load_imp.hpp index 48c568d6..d56a423d 100644 --- a/include/boost/serialization/unordered_collections_load_imp.hpp +++ b/include/boost/serialization/unordered_collections_load_imp.hpp @@ -33,7 +33,6 @@ namespace std{ #include #include #include -#include #include #include diff --git a/include/boost/serialization/vector.hpp b/include/boost/serialization/vector.hpp index 48eeaddc..7871a235 100644 --- a/include/boost/serialization/vector.hpp +++ b/include/boost/serialization/vector.hpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include diff --git a/test/test_z.cpp b/test/test_z.cpp index b1902cde..d2331723 100644 --- a/test/test_z.cpp +++ b/test/test_z.cpp @@ -1,4 +1,4 @@ -#if 1 +#if 0 #include #include #include