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 "Grid/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
42 template <
typename T,
bool has_noPo
inters>
47 value = PACKER_OBJECTS_WITH_POINTER_CHECK
56 value = PACKER_OBJECTS_WITH_WARNING_POINTERS
64 template <
typename T,
int known_type>
87 value = PACKER_GENERAL
96 value = PACKER_ENCAP_OBJECTS
104 template<
typename T,
bool is_foundamental>
121 value = PACKER_PRIMITIVE
131 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.