diff options
Diffstat (limited to 'boost/serialization/vector.hpp')
-rw-r--r-- | boost/serialization/vector.hpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/boost/serialization/vector.hpp b/boost/serialization/vector.hpp index a1737548ef..9a114c00e2 100644 --- a/boost/serialization/vector.hpp +++ b/boost/serialization/vector.hpp @@ -31,9 +31,7 @@ #include <boost/serialization/collections_save_imp.hpp> #include <boost/serialization/collections_load_imp.hpp> #include <boost/serialization/split_free.hpp> -#include <boost/serialization/array.hpp> -#include <boost/serialization/detail/get_data.hpp> -#include <boost/serialization/detail/stack_constructor.hpp> +#include <boost/serialization/array_wrapper.hpp> #include <boost/mpl/bool_fwd.hpp> #include <boost/mpl/if.hpp> @@ -103,7 +101,11 @@ inline void save( const collection_size_type count(t.size()); ar << BOOST_SERIALIZATION_NVP(count); if (!t.empty()) - ar << boost::serialization::make_array(detail::get_data(t),t.size()); + // explict template arguments to pass intel C++ compiler + ar << serialization::make_array<const U, collection_size_type>( + static_cast<const U *>(&t[0]), + count + ); } template<class Archive, class U, class Allocator> @@ -121,7 +123,11 @@ inline void load( ar >> BOOST_SERIALIZATION_NVP(item_version); } if (!t.empty()) - ar >> boost::serialization::make_array(detail::get_data(t),t.size()); + // explict template arguments to pass intel C++ compiler + ar >> serialization::make_array<U, collection_size_type>( + static_cast<U *>(&t[0]), + count + ); } // dispatch to either default or optimized versions |