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.