9#ifndef SRC_PACK_AAA_SELECTOR_HPP_
10#define SRC_PACK_AAA_SELECTOR_HPP_
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
22#define PACKER_ARRAY_PRIMITIVE 2
24#define PACKER_ENCAP_OBJECTS 3
26#define PACKER_GENERAL 4
30#define PACKER_OBJECTS_WITH_WARNING_POINTERS 6
32#define PACKER_OBJECTS_WITH_POINTER_CHECK 7
34#define PACKER_ARRAY_CP_PRIMITIVE 8
36#define PACKER_ENCAP_OBJECTS_CHUNKING 9
46template <
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
90template <
typename T,
int known_type>
113 value = PACKER_GENERAL
122 value = PACKER_ENCAP_OBJECTS
130template<
typename T,
bool is_foundamental>
139template<typename T, bool impl = std::is_array<T>::value>
144 value = PACKER_PRIMITIVE
153 value = PACKER_ARRAY_CP_PRIMITIVE
it is not a fundamental type
Pack selector for unknown type.
Pack selector for unknown type.
It return true if the object T require complex serialization.