introspection: add type_char trait
This commit is contained in:
parent
c57569a4ff
commit
4e993f2d4d
@ -78,6 +78,26 @@ namespace util {
|
|||||||
{ return type_name_v<T>; }
|
{ return type_name_v<T>; }
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
template <typename T>
|
||||||
|
struct type_char;
|
||||||
|
|
||||||
|
template <> struct type_char<float > { static constexpr char value = 'f'; };
|
||||||
|
template <> struct type_char<double> { static constexpr char value = 'd'; };
|
||||||
|
|
||||||
|
template <> struct type_char< int8_t> { static constexpr char value = 'i'; };
|
||||||
|
template <> struct type_char< int16_t> { static constexpr char value = 'i'; };
|
||||||
|
template <> struct type_char< int32_t> { static constexpr char value = 'i'; };
|
||||||
|
template <> struct type_char< int64_t> { static constexpr char value = 'i'; };
|
||||||
|
|
||||||
|
template <> struct type_char< uint8_t> { static constexpr char value = 'u'; };
|
||||||
|
template <> struct type_char<uint16_t> { static constexpr char value = 'u'; };
|
||||||
|
template <> struct type_char<uint32_t> { static constexpr char value = 'u'; };
|
||||||
|
template <> struct type_char<uint64_t> { static constexpr char value = 'u'; };
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
constexpr auto type_char_v = type_char<T>::value;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
/// Lists valid values of an enumeration
|
/// Lists valid values of an enumeration
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user