12#ifndef SST_CORE_SERIALIZATION_SERIALIZE_ARRAY_H
13#define SST_CORE_SERIALIZATION_SERIALIZE_ARRAY_H
15#include "sst/core/serialization/serializer.h"
19namespace Serialization {
22template <
class TPtr,
class IntType>
52template <
class TPtr,
class IntType>
54array(TPtr*& buf, IntType& size)
59template <
class IntType>
61buffer(
void*& buf, IntType& size)
81template <
class T,
int N>
82class 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); }
92template <
class T,
int N>
93class 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++ ) {
110template <
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>
123template <
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++ ) {
142template <
class IntType>
167template <
class TPtr,
class IntType>
Definition: serialize_array.h:43
Definition: serialize_array.h:24
Base serialize class.
Definition: serialize.h:32
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:35