Audacity 3.2.0
Public Types | Public Member Functions | List of all members
Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions > Struct Template Reference

Third, recursive case of metafunction, generates operator () that calls function with fallthrough. More...

#include <Track.h>

Public Types

enum  : unsigned { SetUsed = (Tail::SetUsed << 1) | 1u }
 Constant used in a compile-time check. More...
 
using QualifiedTrackType = std::conditional_t< std::is_const_v< ArgumentType >, const Track, Track >
 
using QualifiedBaseClass = std::conditional_t< std::is_const_v< ArgumentType >, const BaseClass, BaseClass >
 
using Tail = Executor< Tag, R, ArgumentType, Functions... >
 The template specialization to recur with. More...
 

Public Member Functions

operator() (QualifiedTrackType *pTrack, const Function &function, const Functions &...functions) const
 Call the first function, which may request dispatch to the further functions by invoking a continuation. More...
 

Detailed Description

template<typename Tag, typename R, typename BaseClass, typename ArgumentType, typename Function, typename ... Functions>
struct Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions >

Third, recursive case of metafunction, generates operator () that calls function with fallthrough.

Definition at line 519 of file Track.h.

Member Typedef Documentation

◆ QualifiedBaseClass

template<typename Tag , typename R , typename BaseClass , typename ArgumentType , typename Function , typename ... Functions>
using Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions >::QualifiedBaseClass = std::conditional_t< std::is_const_v<ArgumentType>, const BaseClass, BaseClass >

Definition at line 524 of file Track.h.

◆ QualifiedTrackType

template<typename Tag , typename R , typename BaseClass , typename ArgumentType , typename Function , typename ... Functions>
using Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions >::QualifiedTrackType = std::conditional_t< std::is_const_v<ArgumentType>, const Track, Track >

Definition at line 521 of file Track.h.

◆ Tail

template<typename Tag , typename R , typename BaseClass , typename ArgumentType , typename Function , typename ... Functions>
using Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions >::Tail = Executor< Tag, R, ArgumentType, Functions... >

The template specialization to recur with.

Definition at line 529 of file Track.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Tag , typename R , typename BaseClass , typename ArgumentType , typename Function , typename ... Functions>
anonymous enum : unsigned

Constant used in a compile-time check.

Enumerator
SetUsed 

Definition at line 531 of file Track.h.

531: unsigned { SetUsed = (Tail::SetUsed << 1) | 1u };

Member Function Documentation

◆ operator()()

template<typename Tag , typename R , typename BaseClass , typename ArgumentType , typename Function , typename ... Functions>
R Track::Dispatcher::applicable2< Tag, R, BaseClass, ArgumentType, Function, Functions >::operator() ( QualifiedTrackType pTrack,
const Function &  function,
const Functions &...  functions 
) const
inline

Call the first function, which may request dispatch to the further functions by invoking a continuation.

Definition at line 534 of file Track.h.

537 {
538 auto continuation = Continuation<R>{ [&] {
539 return Tail{}( pTrack, functions... );
540 } };
541 return function( static_cast<QualifiedBaseClass *>(pTrack),
542 continuation );
543 }
std::conditional_t< std::is_const_v< ArgumentType >, const BaseClass, BaseClass > QualifiedBaseClass
Definition: Track.h:526
Executor< Tag, R, ArgumentType, Functions... > Tail
The template specialization to recur with.
Definition: Track.h:529

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