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 597 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 602 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 599 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 607 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 609 of file Track.h.

609: 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 612 of file Track.h.

615 {
616 auto continuation = Continuation<R>{ [&] {
617 return Tail{}( pTrack, functions... );
618 } };
619 return function( static_cast<QualifiedBaseClass *>(pTrack),
620 continuation );
621 }
std::conditional_t< std::is_const_v< ArgumentType >, const BaseClass, BaseClass > QualifiedBaseClass
Definition: Track.h:604
Executor< Tag, R, ArgumentType, Functions... > Tail
The template specialization to recur with.
Definition: Track.h:607

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