File indexing completed on 2024-04-11 23:27:31
0001 #ifndef GENERS_IOISPOD_HH_
0002 #define GENERS_IOISPOD_HH_
0003
0004 #include "Alignment/Geners/interface/CPP11_type_traits.hh"
0005
0006 namespace gs {
0007
0008
0009 template <typename T>
0010 struct IOIsPOD {
0011 enum { value = std::is_standard_layout<T>::value && std::is_trivial<T>::value };
0012 };
0013 }
0014
0015
0016
0017
0018 #define gs_declare_type_as_pod(T) \
0019 namespace gs { \
0020 template <> \
0021 struct IOIsPOD<T> { \
0022 enum { value = 1 }; \
0023 }; \
0024 template <> \
0025 struct IOIsPOD<T const> { \
0026 enum { value = 1 }; \
0027 }; \
0028 template <> \
0029 struct IOIsPOD<T volatile> { \
0030 enum { value = 1 }; \
0031 }; \
0032 template <> \
0033 struct IOIsPOD<T const volatile> { \
0034 enum { value = 1 }; \
0035 }; \
0036 }
0037
0038 #endif