Audacity 3.2.0
Classes | Public Types | List of all members
TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase > Struct Template Reference

#include <TypeSwitch.h>

Classes

struct  Case1_
 
struct  Case2
 
struct  Default
 
struct  Dummy
 
struct  Opaque
 
struct  Wrapper
 

Public Types

using Compatible = std::is_base_of< BaseClass, ArgumentType >
 Whether upcast of ArgumentType* to BaseClass* works. More...
 
using F = Head_t< Fs >
 
using curried = std::is_invocable< F, Dummy && >
 
using Case1 = std::conjunction< Compatible, curried, Case1_ >
 
using type = typename std::disjunction< Case1, Case2, Default >::type
 

Detailed Description

template<typename R, typename ArgumentTypes, typename Funs, typename... Args>
template<typename Fs, typename Wrapped>
template<typename BaseClass, typename NextBase>
struct TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >

Definition at line 75 of file TypeSwitch.h.

Member Typedef Documentation

◆ Case1

template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::Case1 = std::conjunction<Compatible, curried, Case1_>

Definition at line 130 of file TypeSwitch.h.

◆ Compatible

template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::Compatible = std::is_base_of<BaseClass, ArgumentType>

Whether upcast of ArgumentType* to BaseClass* works.

Definition at line 79 of file TypeSwitch.h.

◆ curried

template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::curried = std::is_invocable<F, Dummy&&>

Definition at line 125 of file TypeSwitch.h.

◆ F

template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::F = Head_t<Fs>

Definition at line 119 of file TypeSwitch.h.

◆ type

template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::type = typename std::disjunction<Case1, Case2, Default>::type

Definition at line 147 of file TypeSwitch.h.


The documentation for this struct was generated from the following file: