25 #ifndef GRIDCONTAINER_SERIALIZATION_GRIDAXIS_H 26 #define GRIDCONTAINER_SERIALIZATION_GRIDAXIS_H 28 #include <type_traits> 30 #include <boost/serialization/utility.hpp> 34 namespace serialization {
38 template<
typename Archive,
typename T>
46 template<
typename Archive,
typename T>
47 void saveType(Archive& ar,
const T& t,
typename std::enable_if<std::is_default_constructible<T>::value>::type* = 0) {
56 template<
typename Archive,
typename T>
57 void saveType(Archive& ar,
const T& t,
typename std::enable_if<!std::is_default_constructible<T>::value>::type* = 0) {
68 template<
typename Archive,
typename T>
71 std::string name = t->
name();
73 size_t size = t->
size();
75 for (
size_t i=0; i<size; ++i) {
83 template<
typename Archive,
typename T>
84 T
loadType(Archive& ar,
typename std::enable_if<std::is_default_constructible<T>::value>::type* = 0) {
95 template<
typename Archive,
typename T>
96 T
loadType(Archive& ar,
typename std::enable_if<!std::is_default_constructible<T>::value>::type* = 0) {
100 std::unique_ptr<T> deleter {ptr};
111 template<
typename Archive,
typename T>
113 const unsigned int) {
118 std::vector<T> values;
119 for (
size_t i=0; i<size; ++i) {
120 T value = loadType<Archive, T>(ar);
121 values.push_back(value);
void save_construct_data(Archive &ar, const Euclid::GridContainer::GridAxis< T > *t, const unsigned int)
size_t size() const
Returns the number of knots of the axis.
void saveType(Archive &ar, const T &t, typename std::enable_if< std::is_default_constructible< T >::value >::type *=0)
const std::string & name() const
Returns the name of the axis.
Provides information related with an axis of a GridContainer.
void serialize(Archive &archive, std::array< CellType, ND > &array, const unsigned int)
T loadType(Archive &ar, typename std::enable_if< std::is_default_constructible< T >::value >::type *=0)
void load_construct_data(Archive &ar, Euclid::GridContainer::GridAxis< T > *t, const unsigned int)