template<typename SerializerT, typename T, typename Dispatcher = BasicDispatcher<SerializerT, T>>
checkpoint::dispatch::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
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.