|
| constexpr std::string_view | pretty_name (std::string_view name, bool remove_suffix=true) noexcept |
| |
| template<typename TypeT , size_t SizeT, size_t... IndexT> |
| constexpr std::array< std::remove_cv_t< TypeT >, SizeT > | to_array (TypeT(&a)[SizeT], std::index_sequence< IndexT... >) noexcept |
| |
| template<typename LeftT , typename RightT > |
| constexpr bool | cmp_less (LeftT lhs, RightT rhs) noexcept |
| |
| template<typename EnumT , EnumT ValueV> |
| constexpr auto | raw_enum_name () noexcept |
| |
| template<typename EnumT , EnumT ValueV> |
| constexpr auto | enum_name () noexcept |
| |
| template<typename EnumT , auto ValueV> |
| constexpr bool | is_valid () noexcept |
| |
| template<typename EnumT , int OffsetT, typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr UnderlyingT | ualue (size_t i) noexcept |
| |
| template<typename EnumT , int OffsetT, typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr EnumT | enum_value_at (size_t i) noexcept |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr int | reflected_min () noexcept |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr int | reflected_max () noexcept |
| |
| template<typename EnumT , size_t SizeT, int MinT, size_t IndexT> |
| constexpr void | valid_count_step (bool *valid, size_t &count) noexcept |
| |
| template<typename EnumT , size_t SizeT, int MinT> |
| constexpr auto | valid_count () noexcept |
| |
| template<typename EnumT , size_t SizeT, int MinT> |
| constexpr auto | values_in_range () noexcept |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr auto | values () noexcept |
| |
| template<typename EnumT , size_t... IndexT> |
| constexpr auto | names_impl (std::index_sequence< IndexT... >) noexcept |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr bool | is_sparse () noexcept |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr EnumT | enum_value (size_t i) noexcept |
| |
| template<typename TypeT > |
| constexpr auto | raw_type_name () noexcept |
| |
|
| template<typename TypeT > |
| constexpr bool | kIsEnum = std::is_enum_v<TypeT> && std::is_same_v<TypeT, std::decay_t<TypeT>> |
| |
| template<typename EnumT , EnumT ValueV> |
| constexpr auto | kEnumName = enum_name<EnumT, ValueV>() |
| |
| template<typename EnumT > |
| constexpr auto | kValues = values<EnumT>() |
| |
| template<typename EnumT > |
| constexpr auto | kCount = kValues<EnumT>.size() |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr UnderlyingT | kMinTalue |
| |
| template<typename EnumT , typename UnderlyingT = std::underlying_type_t<EnumT>> |
| constexpr UnderlyingT | kMaxValue |
| |
| template<typename EnumT > |
| constexpr auto | kNames = names_impl<EnumT>(std::make_index_sequence<kCount<EnumT>>{}) |
| |
| template<typename EnumT > |
| constexpr bool | kIsSparse = is_sparse<EnumT>() |
| |
| template<typename TypeT > |
| constexpr auto | kTypeName = raw_type_name<TypeT>() |
| |