12#ifndef SST_CORE_SERIALIZATION_SERIALIZE_H
13#define SST_CORE_SERIALIZATION_SERIALIZE_H
15#include "sst/core/serialization/serializer.h"
16#include "sst/core/warnmacros.h"
23namespace Serialization {
30template <
class T,
class Enable =
void>
34 inline void operator()(T& UNUSED(t),
serializer& UNUSED(ser))
44 static_assert(std::is_fundamental<T>::value,
"Trying to serialize an object that is not serializable.");
45 static_assert(!std::is_fundamental<T>::value,
"Trying to serialize an object that is not serializable.");
53class serialize<T, typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
56 inline void operator()(T& t,
serializer& ser) { ser.primitive(t); }
92class serialize<T*,
typename std::enable_if<std::is_fundamental<T>::value || std::is_enum<T>::value>::type>
97 switch ( ser.mode() ) {
98 case serializer::SIZER:
101 case serializer::PACK:
104 case serializer::UNPACK:
115template <
class U,
class V>
119 inline void operator()(std::pair<U, V>& t,
serializer& ser)
137#include "sst/core/serialization/serialize_array.h"
138#include "sst/core/serialization/serialize_deque.h"
139#include "sst/core/serialization/serialize_list.h"
140#include "sst/core/serialization/serialize_map.h"
141#include "sst/core/serialization/serialize_set.h"
142#include "sst/core/serialization/serialize_string.h"
143#include "sst/core/serialization/serialize_vector.h"
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