summaryrefslogtreecommitdiff
path: root/boost/serialization/list.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/serialization/list.hpp')
-rw-r--r--boost/serialization/list.hpp20
1 files changed, 2 insertions, 18 deletions
diff --git a/boost/serialization/list.hpp b/boost/serialization/list.hpp
index b745d8769d..741dbbe73e 100644
--- a/boost/serialization/list.hpp
+++ b/boost/serialization/list.hpp
@@ -21,6 +21,7 @@
#include <boost/config.hpp>
#include <boost/serialization/collections_save_imp.hpp>
+#include <boost/serialization/collections_load_imp.hpp>
#include <boost/archive/detail/basic_iarchive.hpp>
#include <boost/serialization/access.hpp>
@@ -29,7 +30,6 @@
#include <boost/serialization/item_version_type.hpp>
#include <boost/serialization/split_free.hpp>
#include <boost/serialization/detail/stack_constructor.hpp>
-#include <boost/serialization/detail/is_default_constructible.hpp>
namespace boost {
namespace serialization {
@@ -62,23 +62,7 @@ inline void load(
if(boost::archive::library_version_type(3) < library_version){
ar >> BOOST_SERIALIZATION_NVP(item_version);
}
- if(detail::is_default_constructible<U>()){
- t.resize(count);
- typename std::list<U, Allocator>::iterator hint;
- hint = t.begin();
- while(count-- > 0){
- ar >> boost::serialization::make_nvp("item", *hint++);
- }
- }
- else{
- t.clear();
- while(count-- > 0){
- detail::stack_construct<Archive, U> u(ar, item_version);
- ar >> boost::serialization::make_nvp("item", u.reference());
- t.push_back(u.reference());
- ar.reset_object_address(& t.back() , & u.reference());
- }
- }
+ stl::collection_load_impl(ar, t, count, item_version);
}
// split non-intrusive serialization function member into separate