Header file enum.hpp

namespace cpp
{
    namespace static_reflection
    {
        namespace meta
        {
            template <typename SourceInfo_, typename EnumType, EnumType ... Constants, typename ... ConstantsNames>
            class Enum<SourceInfo_, EnumType,::cpp::meta::list<std::integral_constant<EnumType, Constants>...>,::cpp::meta::list<ConstantsNames...>>
            {
            public:
                using type = EnumType;
                
                using Type = EnumType;
                
                using UnderlyingType = typename std::underlying_type<EnumType>::type;
                
                using SourceInfo = SourceInfo_;
                
                using names_array_t = std::array<const char*, sizeof...(ConstantsNames)>;
                
                using values_array_t = const EnumType[sizeof...(Constants)];
                
                constexpr Enum() = default;
                
                static constexpr std::size_t count();
                
                static constexpr const names_array_t& names();
                
                static constexpr const values_array_t& values();
                
                static constexpr EnumType value(std::size_t i);
                
                static constexpr const char* name(std::size_t i);
                
                static constexpr const char* toString(const EnumType value);
                
                static constexpr EnumType fromString(const char* name);
                
                static constexpr bool has(const char* name);
                
                static constexpr bool has(const UnderlyingType value);
            };
        }
        
        namespace codegen
        {
            template <typename EnumType>
            class Enum{};
        }
        
        template <typename EnumType>
        class Enum;
    }
}

Class template cpp::static_reflection::Enum<EnumType>

template <typename EnumType>
class Enum
: public codegen::Enum<EnumType>
{};

Returns static reflection information of the given enumeration type.

See cpp::static_reflection::meta::Enum template for the returned information.

Parameters: