9 #ifndef SRC_PACK_AAA_SELECTOR_HPP_ 10 #define SRC_PACK_AAA_SELECTOR_HPP_ 12 #include <type_traits> 13 #include "util/common.hpp" 14 #include "memory_ly/Encap.hpp" 15 #include "Grid/util.hpp" 16 #include "Vector/util.hpp" 17 #include "Packer_Unpacker/has_pack_agg.hpp" 20 #define PACKER_PRIMITIVE 1 21 #define PACKER_ARRAY_PRIMITIVE 2 23 #define PACKER_ENCAP_OBJECTS 3 25 #define PACKER_GENERAL 4 29 #define PACKER_OBJECTS_WITH_WARNING_POINTERS 6 31 #define PACKER_OBJECTS_WITH_POINTER_CHECK 7 33 #define PACKER_ARRAY_CP_PRIMITIVE 8 35 #define PACKER_ENCAP_OBJECTS_CHUNKING 9 46 template <
typename T,
int has_noPo
inters>
51 value = PACKER_OBJECTS_WITH_POINTER_CHECK
60 value = PACKER_OBJECTS_WITH_WARNING_POINTERS
73 value = PACKER_ARRAY_CP_PRIMITIVE
82 value = PACKER_ARRAY_CP_PRIMITIVE
90 template <
typename T,
int known_type>
108 template <
typename T>
113 value = PACKER_GENERAL
117 template <
typename T>
122 value = PACKER_ENCAP_OBJECTS
130 template<
typename T,
bool is_foundamental>
139 template<typename T, bool impl = std::is_array<T>::value>
144 value = PACKER_PRIMITIVE
153 value = PACKER_ARRAY_CP_PRIMITIVE
175 template <
typename T>
Pack selector for unknown type.
it is not a fundamental type
It return true if the object T require complex serialization.
Pack selector for unknown type.