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<T[N], typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
85 void operator()(T arr[N],
serializer& ser) { ser.array<T, N>(arr); }
92 template <
class T,
int N>
93 class serialize<T[N], typename std::enable_if<!std::is_fundamental<T>::value && !std::is_enum<T>::value>::type>
98 for (
int i = 0; i < N; i++ ) {
110 template <
class T,
class IntType>
112 pvt::ser_array_wrapper<T, IntType>,
113 typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
123 template <
class T,
class IntType>
125 pvt::ser_array_wrapper<T, IntType>,
126 typename std::enable_if<!std::is_fundamental<T>::value && !std::is_enum<T>::value>::type>
131 ser.primitive(arr.sizeptr);
132 for (
int i = 0; i < arr.sizeptr; i++ ) {
142 template <
class IntType>
157 template <
class TPtr>
167 template <
class TPtr,
class IntType>
177 template <
class TPtr>
188 #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:34
Definition: serialize_array.h:42
Base serialize class.
Definition: serialize.h:31
Definition: serialize_array.h:23