27#ifndef typeDescription_hpp
28#define typeDescription_hpp
49 static constexpr int code()
55 static constexpr const char *
name()
62struct typeDescription<bool>
66 static constexpr int code()
71 static constexpr const char *
name()
78struct typeDescription<signed char>
80 typedef signed char type;
82 static constexpr int code()
87 static constexpr const char *
name()
94struct typeDescription<unsigned char>
96 typedef unsigned char type;
98 static constexpr int code()
103 static constexpr const char *
name()
105 return "unsigned char";
110struct typeDescription<char>
114 static constexpr int code()
119 static constexpr const char *
name()
126struct typeDescription<wchar_t>
128 typedef wchar_t type;
130 static constexpr int code()
135 static constexpr const char *
name()
142struct typeDescription<char16_t>
144 typedef char16_t type;
146 static constexpr int code()
151 static constexpr const char *
name()
158struct typeDescription<char32_t>
160 typedef char32_t type;
162 static constexpr int code()
167 static constexpr const char *
name()
174struct typeDescription<int>
178 static constexpr int code()
183 static constexpr const char *
name()
190struct typeDescription<unsigned int>
192 typedef unsigned int type;
194 static constexpr int code()
199 static constexpr const char *
name()
201 return "unsigned int";
206struct typeDescription<short int>
208 typedef short int type;
210 static constexpr int code()
215 static constexpr const char *
name()
222struct typeDescription<short unsigned int>
224 typedef short unsigned int type;
226 static constexpr int code()
231 static constexpr const char *
name()
233 return "short unsigned int";
238struct typeDescription<long int>
240 typedef long int type;
242 static constexpr int code()
247 static constexpr const char *
name()
254struct typeDescription<long unsigned int>
256 typedef long unsigned int type;
258 static constexpr int code()
263 static constexpr const char *
name()
265 return "long unsigned int";
270struct typeDescription<long long int>
272 typedef long long int type;
274 static constexpr int code()
279 static constexpr const char *
name()
281 return "long long int";
286struct typeDescription<long long unsigned int>
288 typedef long long unsigned int type;
290 static constexpr int code()
295 static constexpr const char *
name()
297 return "long long unsigned int";
302struct typeDescription<float>
306 static constexpr int code()
311 static constexpr const char *
name()
318struct typeDescription<double>
322 static constexpr int code()
327 static constexpr const char *
name()
334struct typeDescription<long double>
336 typedef long double type;
338 static constexpr int code()
343 static constexpr const char *
name()
345 return "long double";
350struct typeDescription<std::string>
352 typedef std::string
type;
354 static constexpr int code()
359 static constexpr const char *
name()
361 return "std::string";
366struct typeDescription<std::vector<bool>>
368 typedef std::vector<bool>
type;
370 static constexpr int code()
375 static constexpr const char *
name()
377 return "std::vector<bool>";
382struct typeDescription<std::vector<signed char>>
384 typedef std::vector<signed char>
type;
386 static constexpr int code()
391 static constexpr const char *
name()
393 return "std::vector<signed char>";
398struct typeDescription<std::vector<unsigned char>>
400 typedef std::vector<unsigned char>
type;
402 static constexpr int code()
407 static constexpr const char *
name()
409 return "std::vector<unsigned char>";
414struct typeDescription<std::vector<char>>
416 typedef std::vector<char>
type;
418 static constexpr int code()
423 static constexpr const char *
name()
425 return "std::vector<char>";
430struct typeDescription<std::vector<wchar_t>>
432 typedef std::vector<wchar_t>
type;
434 static constexpr int code()
439 static constexpr const char *
name()
441 return "std::vector<wchar_t>";
446struct typeDescription<std::vector<char16_t>>
448 typedef std::vector<char16_t>
type;
450 static constexpr int code()
455 static constexpr const char *
name()
457 return "std::vector<char16_t>";
462struct typeDescription<std::vector<char32_t>>
464 typedef std::vector<char32_t>
type;
466 static constexpr int code()
471 static constexpr const char *
name()
473 return "std::vector<char32_t>";
478struct typeDescription<std::vector<int>>
480 typedef std::vector<int>
type;
482 static constexpr int code()
487 static constexpr const char *
name()
489 return "std::vector<int>";
494struct typeDescription<std::vector<unsigned int>>
496 typedef std::vector<unsigned int>
type;
498 static constexpr int code()
503 static constexpr const char *
name()
505 return "std::vector<unsigned int>";
510struct typeDescription<std::vector<short int>>
512 typedef std::vector<short int>
type;
514 static constexpr int code()
519 static constexpr const char *
name()
521 return "std::vector<short int>";
526struct typeDescription<std::vector<short unsigned int>>
528 typedef std::vector<short unsigned int>
type;
530 static constexpr int code()
535 static constexpr const char *
name()
537 return "std::vector<short unsigned int>";
542struct typeDescription<std::vector<long int>>
544 typedef std::vector<long int>
type;
546 static constexpr int code()
551 static constexpr const char *
name()
553 return "std::vector<long int>";
558struct typeDescription<std::vector<long unsigned int>>
560 typedef std::vector<long unsigned int>
type;
562 static constexpr int code()
567 static constexpr const char *
name()
569 return "std::vector<long unsigned int>";
574struct typeDescription<std::vector<long long int>>
576 typedef std::vector<long long int>
type;
578 static constexpr int code()
583 static constexpr const char *
name()
585 return "std::vector<long long int>";
590struct typeDescription<std::vector<long long unsigned int>>
592 typedef std::vector<long long unsigned int>
type;
594 static constexpr int code()
599 static constexpr const char *
name()
601 return "std::vector<long long unsigned int>";
606struct typeDescription<std::vector<float>>
608 typedef std::vector<float>
type;
610 static constexpr int code()
615 static constexpr const char *
name()
617 return "std::vector<float>";
622struct typeDescription<std::vector<double>>
624 typedef std::vector<double>
type;
626 static constexpr int code()
631 static constexpr const char *
name()
633 return "std::vector<double>";
638struct typeDescription<std::vector<long double>>
640 typedef std::vector<long double>
type;
642 static constexpr int code()
647 static constexpr const char *
name()
649 return "std::vector<long double>";
654struct typeDescription<std::vector<std::string>>
656 typedef std::vector<std::string>
type;
658 static constexpr int code()
663 static constexpr const char *
name()
665 return "std::vector<std::string>";