template<typename SerializerT, typename T, typename Dispatcher = BasicDispatcher<SerializerT, T>>
SerializerDispatchNonByte struct
Public types
- using S = SerializerT
-
template<typename U>using hasSplitSerialize = typename std::enable_if<SerializableTraits<U, S>::has_split_serialize, T>::type
-
template<typename U>using hasNotSplitSerialize = typename std::enable_if<!SerializableTraits<U, S>::has_split_serialize && !std::is_enum<U>::value, T>::type
-
template<typename U>using hasInSerialize = typename std::enable_if<SerializableTraits<U, S>::has_serialize_instrusive && !SerializableTraits<U, S>::has_serialize_noninstrusive, T>::type
-
template<typename U>using hasNoninSerialize = typename std::enable_if<SerializableTraits<U, S>::has_serialize_noninstrusive, T>::type
-
template<typename U>using hasVirtualSerialize = typename std::enable_if<vrt::
VirtualSerializeTraits<U>::has_virtual_serialize, T>::type -
template<typename U>using hasNotVirtualSerialize = typename std::enable_if<vrt::
VirtualSerializeTraits<U>::has_not_virtual_serialize, T>::type -
template<typename U>using isEnum = typename std::enable_if<std::is_enum<U>::value, T>::type
-
template<typename U>using justFootprint = typename std::enable_if<checkpoint::is_footprinter_v<S> and not SerializableTraits<U, S>::is_traversable and not std::is_enum<U>::value, T>::type
Public functions
-
template<typename U = T>void operator()(SerializerT& s, T* val, SerialSizeType num)
-
template<typename U = T>void applyElm(SerializerT& s, T* val, hasSplitSerialize<U>* = nullptr)
-
template<typename U = T>void applyElm(SerializerT&, T*, hasNotSplitSerialize<U>* = nullptr)
-
template<typename U = T>void applyElm(SerializerT& s, T* val, isEnum<U>* = nullptr)
-
template<typename U = T>void applyStatic(SerializerT& s, T* val, SerialSizeType num, justFootprint<U>* = nullptr)
- Dispatch non-serializable types when footprinting.
-
template<typename U = T>void applyStatic(SerializerT& s, T* val, SerialSizeType num, hasInSerialize<U>* = nullptr)
-
template<typename U = T>void applyStatic(SerializerT& s, T* val, SerialSizeType num, hasNoninSerialize<U>* = nullptr)
-
template<typename U = T>void applyStatic(SerializerT& s, T* val, SerialSizeType num, isEnum<U>* = nullptr)
-
template<typename U = T>void apply(SerializerT& s, T* val, SerialSizeType num, hasVirtualSerialize<U>* = nullptr)
-
template<typename U = T>void apply(SerializerT& s, T* val, SerialSizeType num, hasNotVirtualSerialize<U>* = nullptr)
Function documentation
template<typename SerializerT, typename T, typename Dispatcher>
template<typename U = T>
void checkpoint:: dispatch:: SerializerDispatchNonByte<SerializerT, T, Dispatcher>:: applyStatic(SerializerT& s,
T* val,
SerialSizeType num,
justFootprint<U>* = nullptr)
Dispatch non-serializable types when footprinting.
Parameters | |
---|---|
s in | serializer to use |
val in | pointer to the array of objects |
num in | number of objects in the array |
Allow simplified footprinting of classes that do not support serialization by just applying 'sizeof' operator on them. Note: this means that complex objects will not be traversed further.