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>