Classes | Namespaces | Typedefs | Functions | Variables
magic_enum_switch.hpp File Reference
#include "magic_enum.hpp"
Include dependency graph for magic_enum_switch.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  std::common_type< magic_enum::detail::nonesuch, magic_enum::detail::nonesuch >
 
struct  std::common_type< magic_enum::detail::nonesuch, T >
 
struct  std::common_type< T, magic_enum::detail::nonesuch >
 
struct  magic_enum::detail::default_result_type
 
struct  magic_enum::detail::identity< T >
 
struct  magic_enum::detail::invoke_result< F, V, bool >
 
struct  magic_enum::detail::invoke_result< F, V, true >
 
struct  magic_enum::detail::nonesuch
 

Namespaces

 magic_enum
 
 magic_enum::detail
 

Typedefs

template<typename F , typename V >
using magic_enum::detail::invoke_result_t = typename invoke_result< F, V >::type
 
template<typename E , enum_subtype S, typename Result , typename F , typename D = std::decay_t<E>, typename R = typename decltype(result_type<D, S, Result, F>())::type>
using magic_enum::detail::result_t = std::enable_if_t< std::is_enum_v< D > &&!std::is_same_v< R, nonesuch >, R >
 

Functions

template<typename E , enum_subtype S, typename F , std::size_t... I>
constexpr auto magic_enum::detail::common_invocable (std::index_sequence< I... >) noexcept
 
template<typename R , typename E , enum_subtype S, typename F , typename Def >
constexpr decltype(auto) magic_enum::detail::constexpr_switch (F &&f, E value, Def &&def)
 
template<std::size_t I, std::size_t End, typename R , typename E , enum_subtype S, typename F , typename Def >
constexpr decltype(auto) magic_enum::detail::constexpr_switch_impl (F &&f, E value, Def &&def)
 
template<typename Result = detail::default_result_type, typename E , detail::enum_subtype S = detail::subtype_v<E>, typename F , typename R = detail::result_t<E, S, Result, F>>
constexpr decltype(auto) magic_enum::enum_switch (F &&f, E value)
 
template<typename Result , typename E , detail::enum_subtype S = detail::subtype_v<E>, typename F , typename R = detail::result_t<E, S, Result, F>>
constexpr decltype(auto) magic_enum::enum_switch (F &&f, E value, Result &&result)
 
template<typename E , enum_subtype S, typename Result , typename F >
constexpr auto magic_enum::detail::result_type () noexcept
 

Variables

template<typename T = void>
constexpr auto magic_enum::detail::default_result_type_lambda = []() noexcept(std::is_nothrow_default_constructible_v<T>) { return T{}; }
 
template<>
constexpr auto magic_enum::detail::default_result_type_lambda< void > = []() noexcept {}
 


magic_enum
Author(s):
autogenerated on Fri Feb 21 2025 03:20:19