19 #ifndef GRIDCONTAINER_SERIALIZATION_GRIDCONTAINER_H
20 #define GRIDCONTAINER_SERIALIZATION_GRIDCONTAINER_H
23 #include <boost/serialization/array.hpp>
24 #include <boost/serialization/collection_traits.hpp>
25 #include <boost/serialization/nvp.hpp>
26 #include <boost/serialization/serialization.hpp>
29 namespace serialization {
31 template <
class Archive,
typename T>
33 size_t count = value_proxy.
size();
34 ar << BOOST_SERIALIZATION_NVP(count);
36 ar << make_array<const T>(
static_cast<const T*
>(&value_proxy[0]), count);
40 template <
class Archive,
typename T>
43 ar >> BOOST_SERIALIZATION_NVP(count);
44 assert(count == value_proxy.
size());
45 T* ptr = &value_proxy[0];
47 ar >> boost::serialization::make_nvp(
"item", *ptr++);
51 template <
class Archive,
typename T>
53 split_free(ar, value_proxy, version);
61 #endif // GRIDCONTAINER_SERIALIZATION_GRIDCONTAINER_H
void load(Archive &ar, Euclid::GridContainer::VectorValueProxy< T > &value_proxy, const unsigned int)
void serialize(Archive &archive, std::array< CellType, ND > &array, const unsigned int)
void save(Archive &ar, const Euclid::GridContainer::VectorValueProxy< T > &value_proxy, const unsigned int)