diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-11-06 20:48:33 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-11-07 01:02:02 +0000 |
commit | 2f8d7643d03f39fa848576692264d0fe3a37ed91 (patch) | |
tree | f4578e2ce3020c04a206f9eb0bc02587de5b3d6a /lib/enumDetails.h | |
parent | Don't request a specific OpenGL version, just check we get something sufficie... (diff) | |
download | ilt-2f8d7643d03f39fa848576692264d0fe3a37ed91.tar.bz2 ilt-2f8d7643d03f39fa848576692264d0fe3a37ed91.tar.xz ilt-2f8d7643d03f39fa848576692264d0fe3a37ed91.zip |
Reformat with new clang-format
Diffstat (limited to 'lib/enumDetails.h')
-rw-r--r-- | lib/enumDetails.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/enumDetails.h b/lib/enumDetails.h index 5966be2..b6ff046 100644 --- a/lib/enumDetails.h +++ b/lib/enumDetails.h @@ -26,11 +26,13 @@ template<typename E> struct EnumTypeDetails : EnumDetailsBase { protected: #endif constexpr static std::string_view SEARCH_TYPE {"E = "}; + constexpr static auto typeraw() { return std::string_view {__PRETTY_FUNCTION__}; }; + constexpr static auto typeNameStart {typeraw().find(SEARCH_TYPE) + SEARCH_TYPE.length()}; constexpr static auto typeNameEnd {typeraw().find_first_of("];", typeNameStart)}; constexpr static auto typeNameLen {typeNameEnd - typeNameStart}; @@ -47,11 +49,13 @@ template<auto value> struct EnumValueDetails : public EnumTypeDetails<decltype(v private: #endif using T = EnumTypeDetails<decltype(value)>; + constexpr static auto raw() { return std::string_view {__PRETTY_FUNCTION__}; }; + constexpr static auto nameStart {raw().find_last_of(": ") + 1}; constexpr static auto nameEnd {raw().find_first_of("];", nameStart)}; constexpr static auto nameLen {nameEnd - nameStart}; @@ -84,12 +88,14 @@ private: return std::array {EnumValueDetails<static_cast<E>(n)>::valid...}; #pragma GCC diagnostic pop } + template<auto... n> constexpr static auto get_values(std::integer_sequence<int, n...>) { return std::array {EnumValueDetails<static_cast<E>(n)>::raw_value...}; } + template<auto... n> constexpr static auto get_valueNames(std::integer_sequence<int, n...>) |