diff options
Diffstat (limited to 'src/common/Utilities/SmartEnum.h')
-rw-r--r-- | src/common/Utilities/SmartEnum.h | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/common/Utilities/SmartEnum.h b/src/common/Utilities/SmartEnum.h index 8c9a873dd9c..24e3c60bd30 100644 --- a/src/common/Utilities/SmartEnum.h +++ b/src/common/Utilities/SmartEnum.h @@ -32,39 +32,36 @@ struct EnumText char const* const Description; }; -namespace Trinity +namespace Trinity::Impl::EnumUtilsImpl { - namespace Impl + template <typename Enum> + struct EnumUtils { - template <typename Enum> - struct EnumUtils - { - static size_t Count(); - static EnumText ToString(Enum value); - static Enum FromIndex(size_t index); - static size_t ToIndex(Enum index); - }; - } + static size_t Count(); + static EnumText ToString(Enum value); + static Enum FromIndex(size_t index); + static size_t ToIndex(Enum index); + }; } class EnumUtils { public: template <typename Enum> - static size_t Count() { return Trinity::Impl::EnumUtils<Enum>::Count(); } + static size_t Count() { return Trinity::Impl::EnumUtilsImpl::EnumUtils<Enum>::Count(); } template <typename Enum> - static EnumText ToString(Enum value) { return Trinity::Impl::EnumUtils<Enum>::ToString(value); } + static EnumText ToString(Enum value) { return Trinity::Impl::EnumUtilsImpl::EnumUtils<Enum>::ToString(value); } template <typename Enum> - static Enum FromIndex(size_t index) { return Trinity::Impl::EnumUtils<Enum>::FromIndex(index); } + static Enum FromIndex(size_t index) { return Trinity::Impl::EnumUtilsImpl::EnumUtils<Enum>::FromIndex(index); } template <typename Enum> - static uint32 ToIndex(Enum value) { return Trinity::Impl::EnumUtils<Enum>::ToIndex(value);} + static uint32 ToIndex(Enum value) { return Trinity::Impl::EnumUtilsImpl::EnumUtils<Enum>::ToIndex(value);} template<typename Enum> static bool IsValid(Enum value) { try { - Trinity::Impl::EnumUtils<Enum>::ToIndex(value); + Trinity::Impl::EnumUtilsImpl::EnumUtils<Enum>::ToIndex(value); return true; } catch (...) { |