12 #ifndef SST_CORE_SERIALIZATION_SERIALIZE_ARRAY_H 13 #define SST_CORE_SERIALIZATION_SERIALIZE_ARRAY_H 15 #include "sst/core/serialization/serializer.h" 19 namespace Serialization {
22 template <
class TPtr,
class IntType>
52 template <
class TPtr,
class IntType>
54 array(TPtr*& buf, IntType& size)
59 template <
class IntType>
61 buffer(
void*& buf, IntType& size)
81 template <
class T,
int N>
82 class serialize_impl<T[N], typename
std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
86 void operator()(T arr[N],
serializer& ser) { ser.array<T, N>(arr); }
93 template <
class T,
int N>
94 class serialize_impl<T[N], typename
std::enable_if<!std::is_fundamental<T>::value && !std::is_enum<T>::value>::type>
100 for (
int i = 0; i < N; i++ ) {
112 template <
class T,
class IntType>
114 pvt::ser_array_wrapper<T, IntType>,
115 typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
126 template <
class T,
class IntType>
128 pvt::ser_array_wrapper<T, IntType>,
129 typename std::enable_if<!std::is_fundamental<T>::value && !std::is_enum<T>::value>::type>
135 ser.primitive(arr.sizeptr);
136 for (
int i = 0; i < arr.sizeptr; i++ ) {
146 template <
class IntType>
162 template <
class TPtr>
173 template <
class TPtr,
class IntType>
184 template <
class TPtr>
196 #endif // SST_CORE_SERIALIZATION_SERIALIZE_ARRAY_H This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:35
Base serialize class.
Definition: serialize.h:32
Definition: serialize_array.h:42
Serialization "gateway" object.
Definition: serialize.h:110
Definition: serialize_array.h:23