|
class | eswitch_v5::condition< CmpOperator, TIndex, CaseEntry > |
| Compares value with corresponding entry in std::tuple. More...
|
|
class | eswitch_v5::condition< CmpOperator, TIndex, CaseEntry > |
| Compares value with corresponding entry in std::tuple. More...
|
|
struct | eswitch_v5::condition_with_predicate< Cnd, Func > |
|
class | eswitch_v5::conditions< LogicalOperator, Cnds > |
| Container which holds arbitrary number of condition. More...
|
|
struct | eswitch_v5::details::Always_false< Ts > |
|
struct | eswitch_v5::details::amount_args< T, typename > |
|
struct | eswitch_v5::details::amount_args< T, std::void_t< decltype(&T::operator()) > > |
|
struct | eswitch_v5::details::amount_args_function_has< T > |
|
struct | eswitch_v5::details::amount_args_function_has< R(C::*)(Args...) > |
|
struct | eswitch_v5::details::amount_args_function_has< R(C::*)(Args...) const > |
|
struct | eswitch_v5::details::invoke_result< T, typename > |
|
struct | eswitch_v5::details::invoke_result< T, std::void_t< decltype(&T::operator()) > > |
|
struct | eswitch_v5::details::is_callable_impl< T > |
|
struct | eswitch_v5::details::is_callable_impl< R(C::*)(Args...) > |
|
struct | eswitch_v5::details::is_callable_impl< R(C::*)(Args...) const > |
|
struct | eswitch_v5::details::is_default_case< T > |
|
struct | eswitch_v5::details::is_default_case< condition< Op, I, extension::any > > |
|
struct | eswitch_v5::details::is_predicate< T > |
|
struct | eswitch_v5::details::is_predicate< C< T, Is... > > |
|
struct | eswitch_v5::details::is_std_pair< T > |
|
struct | eswitch_v5::details::is_std_pair< Pair< T1, T2 > > |
|
struct | eswitch_v5::details::is_std_tuple< T > |
|
struct | eswitch_v5::details::is_std_tuple< Tuple< Ts... > > |
|
class | eswitch_v5::eswitch_impl< Args > |
| Accept arbitrary number of Case's and test each of them sequentially. If match was found then executes Case body, also based on Case falling option decides whether to execute next body or finish work. More...
|
|
struct | eswitch_v5::eswitch_impl< Args >::Padding |
|
struct | eswitch_v5::extension::any |
|
struct | eswitch_v5::extension::Any_from_impl< T, Sz > |
|
class | eswitch_v5::extension::Range< RangeType > |
|
struct | eswitch_v5::Fallthrough |
|
struct | eswitch_v5::Index_< Idx > |
| This structure is used as a reference to a specific parameter inside eswitch. More...
|
|
struct | eswitch_v5::is< T > |
| Used to match for type of active entry in std::any, std::variant<...> and polymorphic types. More...
|
|
struct | eswitch_v5::is< T > |
| Used to match for type of active entry in std::any, std::variant<...> and polymorphic types. More...
|
|
class | eswitch_v5::predicate_condition< TPred, Is > |
|
class | eswitch_v5::predicate_condition< TPred, Is > |
|
struct | eswitch_v5::regexter |
|
|
template<typename ... Args> |
static constexpr auto | eswitch_v5::any_from (Args &&... args) |
| Helper function which allows to find if something is within the list( passed arguments ). More...
|
|
template<typename ... Args> |
| eswitch_v5::extension::Any_from_impl (Args &&...) -> Any_from_impl< std::common_type_t< std::decay_t< Args >... >, sizeof...(Args) > |
|
template<Condition Cnd> |
static constexpr auto | eswitch_v5::case_ (Cnd &&cnd) |
|
template<typename ... Ts> |
static constexpr auto | eswitch_v5::case_ (Ts &&... values) |
|
template<typename P , std::size_t ... I, Index Idx> |
predicate_condition< P, I..., Idx::eswitch_index > | eswitch_v5::compose_new_predicate_condition_type (const predicate_condition< P, I... > &, Idx) |
|
template<typename T , typename F > |
| eswitch_v5::condition_with_predicate (T, F) -> condition_with_predicate< T, F > |
|
template<std::size_t ... Is, typename Tup > |
static constexpr auto | eswitch_v5::details::create_indexed_condition (Tup &&values) |
|
template<StdPair T> |
static constexpr auto | eswitch_v5::eswitch (T &&pair) |
| This overload expand std::pair. Simplifies following form eswitch( pair.first, pair.second ) to eswitch( pair ). Moreover there is similar overload for std::tuple. More...
|
|
template<typename ... Ts> |
static constexpr auto | eswitch_v5::eswitch (Ts &&... ts) |
| This function is responsible for passing arguments for class eswitch_impl with overloaded operator(), which accepts arbitrary number of Case's. More...
|
|
template<typename ... Ts> |
| eswitch_v5::eswitch_impl (Ts &&...) -> eswitch_impl< Ts... > |
|
template<typename ... Ts> |
constexpr std::true_type | eswitch_v5::details::is_std_variant (std::variant< Ts... > &&) |
|
template<typename T > |
constexpr std::false_type | eswitch_v5::details::is_std_variant (T &&) |
|
template<typename ... Cnds> |
constexpr auto | eswitch_v5::details::move_default_case_to_the_end (Cnds &&... cnds) |
|
template<typename ... TupleCnds, typename Cnd , typename ... Cnds> |
constexpr auto | eswitch_v5::details::move_default_case_to_the_end_impl (std::tuple< TupleCnds... > &&tup, Cnd &&cnd, Cnds &&...cnds) |
|
template<Index Idx, typename T > |
constexpr auto | eswitch_v5::operator!= (Idx &&, T &&rhv) |
|
auto | eswitch_v5::operator""_r (const char *rgx, const std::size_t sz) |
| User-defined literals for std::regex. More...
|
|
template<Condition T, Callable Func> |
static constexpr auto | eswitch_v5::operator% (T &&cnd, Func &&f) |
|
template<Condition Cnd1, Condition Cnd2> |
static constexpr auto | eswitch_v5::operator&& (Cnd1 &&cnd1, Cnd2 &&cnd2) |
|
template<Condition ... Cnds, Condition Cnd> |
static constexpr auto | eswitch_v5::operator&& (conditions< Logical_operators::and_, Cnds... > &&cnds, Cnd &&cnd) |
|
template<IsNotCndPredicate Pred, Index Idx> |
static constexpr auto | eswitch_v5::operator, (Pred &&pred, Idx) |
|
template<typename R , typename... Args, Index Idx> |
static constexpr auto | eswitch_v5::operator, (R(*pred)(Args...), Idx) |
|
template<Index Idx, typename T > |
constexpr auto | eswitch_v5::operator< (Idx &&, T &&rhv) |
|
template<Index Idx, typename T > |
constexpr auto | eswitch_v5::operator<= (Idx &&, T &&rhv) |
|
static auto | eswitch_v5::operator== (const std::string &tuple_entry, const regexter &value) |
| CaseModule to support for matching and withdrawing of values for and from regular expression. More...
|
|
template<Index Idx, typename T > |
static constexpr auto | eswitch_v5::operator== (Idx &&, T &&rhv) |
|
template<typename TupleEntry , typename UnderlyingType > |
static constexpr auto | eswitch_v5::operator== (TupleEntry &&tuple_entry, const is< UnderlyingType > &) noexcept |
| CaseModule to support for matching for various polymorphic types. More...
|
|
template<Index Idx, typename T > |
constexpr auto | eswitch_v5::operator> (Idx &&, T &&rhv) |
|
template<Index Idx, typename T > |
constexpr auto | eswitch_v5::operator>= (Idx &&, T &&rhv) |
|
template<typename Cnd , ReturnValueNoneVoid Func> |
static constexpr auto | eswitch_v5::operator^ (condition_with_predicate< Cnd, Func > &&cp, const Fallthrough &) |
|
template<Condition Cnd1, Condition Cnd2> |
static constexpr auto | eswitch_v5::operator|| (Cnd1 &&cnd1, Cnd2 &&cnd2) |
|
template<Condition ... Cnds, Condition Cnd> |
static constexpr auto | eswitch_v5::operator|| (conditions< Logical_operators::or_, Cnds... > &&cnds, Cnd &&cnd) |
|
static constexpr bool | eswitch_v5::details::unreachable () |
|
implementation which enhance switch statement
Definition in file eswitch_v5.hpp.