diff options
Diffstat (limited to '3rdParty/Boost/src/boost/serialization/array.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/serialization/array.hpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/3rdParty/Boost/src/boost/serialization/array.hpp b/3rdParty/Boost/src/boost/serialization/array.hpp index 3391a96..35c640c 100644 --- a/3rdParty/Boost/src/boost/serialization/array.hpp +++ b/3rdParty/Boost/src/boost/serialization/array.hpp @@ -7,8 +7,12 @@ // http://www.boost.org/LICENSE_1_0.txt) +#include <boost/config.hpp> // msvc 6.0 needs this for warning suppression + #include <iostream> #include <cstddef> // std::size_t -#include <cstddef> -#include <boost/config.hpp> // msvc 6.0 needs this for warning suppression +#ifndef BOOST_NO_CXX11_HDR_ARRAY +#include <array> +#endif + #if defined(BOOST_NO_STDC_NAMESPACE) namespace std{ @@ -98,7 +102,7 @@ public: void serialize(Archive &ar, const unsigned int version) { - typedef BOOST_DEDUCED_TYPENAME + typedef typename boost::serialization::use_array_optimization<Archive>::template apply< - BOOST_DEDUCED_TYPENAME remove_const< T >::type + typename remove_const< T >::type >::type use_optimized; serialize_optimized(ar,version,use_optimized()); @@ -129,10 +133,24 @@ array< T > make_array( T* t, std::size_t s){ } +// implement serialization for boost::array template <class Archive, class T, std::size_t N> void serialize(Archive& ar, boost::array<T,N>& a, const unsigned int /* version */) { - ar & boost::serialization::make_nvp("elems",a.elems); + ar & boost::serialization::make_nvp("elems", a.elems); } +#ifndef BOOST_NO_CXX11_HDR_ARRAY +// implement serialization for std::array +template <class Archive, class T, std::size_t N> +void serialize(Archive& ar, std::array<T,N>& a, const unsigned int /* version */) +{ + ar & boost::serialization::make_nvp( + "elems", + *static_cast<T (*)[N]>(static_cast<void *>(a.data())) + ); + +} +#endif + } } // end namespace boost::serialization @@ -146,5 +164,5 @@ template <> struct use_array_optimization<Archive> { \ template <class ValueType> \ struct apply : boost::mpl::apply1<Archive::use_array_optimization \ - , BOOST_DEDUCED_TYPENAME boost::remove_const<ValueType>::type \ + , typename boost::remove_const<ValueType>::type \ >::type {}; \ }; }} |
Swift