27 template<
typename... C>
32 template<
typename T,
typename =
void>
46 template <
typename T,
typename V =
void>
51 struct id<T, typename std::enable_if< has_typeid_member<T>::value >::type> {
56 struct id<void, void> {
57 static const int32_t value = 0;
61 struct id<int8_t, void> {
62 static const int32_t value = -1;
66 struct id<uint8_t, void> {
67 static const int32_t value = -2;
71 struct id<int16_t, void> {
72 static const int32_t value = -3;
76 struct id<uint16_t, void> {
77 static const int32_t value = -4;
81 struct id<int32_t, void> {
82 static const int32_t value = -5;
86 struct id<uint32_t, void> {
87 static const int32_t value = -6;
91 struct id<int64_t, void> {
92 static const int32_t value = -7;
96 struct id<uint64_t, void> {
97 static const int32_t value = -8;
101 struct id<float, void> {
102 static const int32_t value = -9;
106 struct id<double, void> {
107 static const int32_t value = -10;
111 struct id<std::string, void> {
112 static const int32_t value = -11;
118 struct id<std::vector<int8_t>, void> {
119 static const int32_t value = -21;
123 struct id<std::vector<uint8_t>, void> {
124 static const int32_t value = -22;
128 struct id<std::vector<int16_t>, void> {
129 static const int32_t value = -23;
133 struct id<std::vector<uint16_t>, void> {
134 static const int32_t value = -24;
138 struct id<std::vector<int32_t>, void> {
139 static const int32_t value = -25;
143 struct id<std::vector<uint32_t>, void> {
144 static const int32_t value = -26;
148 struct id<std::vector<int64_t>, void> {
149 static const int32_t value = -27;
153 struct id<std::vector<uint64_t>, void> {
154 static const int32_t value = -28;
158 struct id<std::vector<float>, void> {
159 static const int32_t value = -29;
163 struct id<std::vector<double>, void> {
164 static const int32_t value = -30;
168 struct id<std::vector<std::string>, void> {
169 static const int32_t value = -31;
173 template <
typename T>
179 template<
typename T,
typename =
void>
constexpr int32_t TYPEID()
typename void_t_struct< C... >::type void_t