|
template<typename E , enum_subtype S, typename F , std::size_t... I> |
constexpr bool | magic_enum::detail::all_invocable (std::index_sequence< I... >) |
|
template<typename E , detail::enum_subtype S = detail::subtype_v<E>, typename F , detail::enable_if_t< E, int > = 0> |
constexpr auto | magic_enum::enum_for_each (F &&f) |
|
template<typename E , detail::enum_subtype S = detail::subtype_v<E>> |
constexpr auto | magic_enum::enum_next_value (E value, std::ptrdiff_t n=1) noexcept -> detail::enable_if_t< E, optional< std::decay_t< E >>> |
|
template<typename E , detail::enum_subtype S = detail::subtype_v<E>> |
constexpr auto | magic_enum::enum_next_value_circular (E value, std::ptrdiff_t n=1) noexcept -> detail::enable_if_t< E, std::decay_t< E >> |
|
template<typename E , detail::enum_subtype S = detail::subtype_v<E>> |
constexpr auto | magic_enum::enum_prev_value (E value, std::ptrdiff_t n=1) noexcept -> detail::enable_if_t< E, optional< std::decay_t< E >>> |
|
template<typename E , detail::enum_subtype S = detail::subtype_v<E>> |
constexpr auto | magic_enum::enum_prev_value_circular (E value, std::ptrdiff_t n=1) noexcept -> detail::enable_if_t< E, std::decay_t< E >> |
|
template<typename E , enum_subtype S, typename F , std::size_t... I> |
constexpr auto | magic_enum::detail::for_each (F &&f, std::index_sequence< I... >) |
|