Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Ase::Member< getter, setter > Class Template Reference

Implement C++ member field API with a 0-sized class from setter and getter, maybe combined with [[no_unique_address]]. More...

#include "member.hh"

Public Types

using GetterTraits = Lib::MemberFunctionTraits< getter >
 
using Class = typename GetterTraits::ClassType
 
using G = typename std::decay< typename GetterTraits::ReturnType >::type
 
using SetterTraits = Lib::MemberFunctionTraits< setter >
 
using S = typename std::decay< typename SetterTraits::ReturnType >::type
 
using T = typename std::decay< typename std::tuple_element< 1, typename SetterTraits::Arguments >::type >::type
 
using value_type = T
 

Public Member Functions

 Member (Class *o, const String &n="", const StringS &s={})
 
 Member (Class *o, const String &n, const ParamInitialVal &iv, const StringS &s={})
 
 Member (Class *o, const String &n, const ParamInitialVal &iv, const ParamExtraVals &ev, const StringS &s={})
 
 Member (Class *o, const String &n, const ParamExtraVals &ev, const StringS &s={})
 
 Member (Class *o, const String &n, const ParamInitialVal &iv, const ParamExtraVals &ev, uint64_t hints, const StringS &s={}, bool init=true)
 
get () const
 
bool set (const T &value)
 
operator() () const
 
bool operator() (const T &value)
 
 operator T () const
 
bool operator= (const T &value)
 
void notify () const
 

Static Public Member Functions

static Class * host_ (const Member *m, Class *o=nullptr)
 Resolve (or assign) host->Member distance (may be 0).
 
static const MemberDetailsmeta_ (const MemberDetails *n=nullptr)
 Retrieve or assign property meta infos.
 
static uint64_t hints ()
 
static const StringSinfos ()
 
static String info (const String &key)
 

Static Public Attributes

static constexpr bool is_unique_per_member
 

Detailed Description

template<auto getter, auto setter = nullptr>
class Ase::Member< getter, setter >

Implement C++ member field API with a 0-sized class from setter and getter, maybe combined with [[no_unique_address]].

Definition at line 86 of file member.hh.

Member Typedef Documentation

◆ Class

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::Class = typename GetterTraits::ClassType

Definition at line 89 of file member.hh.

◆ G

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::G = typename std::decay<typename GetterTraits::ReturnType>::type

Definition at line 90 of file member.hh.

◆ GetterTraits

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::GetterTraits = Lib::MemberFunctionTraits<getter>

Definition at line 88 of file member.hh.

◆ S

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::S = typename std::decay<typename SetterTraits::ReturnType>::type

Definition at line 93 of file member.hh.

◆ SetterTraits

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::SetterTraits = Lib::MemberFunctionTraits<setter>

Definition at line 92 of file member.hh.

◆ T

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::T = typename std::decay<typename std::tuple_element<1, typename SetterTraits::Arguments>::type>::type

Definition at line 95 of file member.hh.

◆ value_type

template<auto getter, auto setter = nullptr>
using Ase::Member< getter, setter >::value_type = T

Definition at line 128 of file member.hh.

Constructor & Destructor Documentation

◆ Member() [1/5]

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::Member ( Class *  o,
const String n = "",
const StringS s = {} 
)

Definition at line 103 of file member.hh.

◆ Member() [2/5]

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::Member ( Class *  o,
const String n,
const ParamInitialVal iv,
const StringS s = {} 
)

Definition at line 104 of file member.hh.

◆ Member() [3/5]

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::Member ( Class *  o,
const String n,
const ParamInitialVal iv,
const ParamExtraVals ev,
const StringS s = {} 
)

Definition at line 105 of file member.hh.

◆ Member() [4/5]

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::Member ( Class *  o,
const String n,
const ParamExtraVals ev,
const StringS s = {} 
)

Definition at line 106 of file member.hh.

◆ Member() [5/5]

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::Member ( Class *  o,
const String n,
const ParamInitialVal iv,
const ParamExtraVals ev,
uint64_t  hints,
const StringS s = {},
bool  init = true 
)

Definition at line 107 of file member.hh.

Member Function Documentation

◆ get()

template<auto getter, auto setter = nullptr>
T Ase::Member< getter, setter >::get ( ) const

Definition at line 129 of file member.hh.

◆ hints()

template<auto getter, auto setter = nullptr>
static uint64_t Ase::Member< getter, setter >::hints ( )
static

Definition at line 143 of file member.hh.

◆ host_()

template<auto getter, auto setter = nullptr>
static Class * Ase::Member< getter, setter >::host_ ( const Member< getter, setter > *  m,
Class *  o = nullptr 
)
static

Resolve (or assign) host->Member distance (may be 0).

Definition at line 99 of file member.hh.

◆ info()

template<auto getter, auto setter = nullptr>
static String Ase::Member< getter, setter >::info ( const String key)
static

Definition at line 145 of file member.hh.

◆ infos()

template<auto getter, auto setter = nullptr>
static const StringS & Ase::Member< getter, setter >::infos ( )
static

Definition at line 144 of file member.hh.

◆ meta_()

template<auto getter, auto setter = nullptr>
static const MemberDetails & Ase::Member< getter, setter >::meta_ ( const MemberDetails n = nullptr)
static

Retrieve or assign property meta infos.

Definition at line 101 of file member.hh.

◆ notify()

template<auto getter, auto setter = nullptr>
void Ase::Member< getter, setter >::notify ( ) const

Definition at line 141 of file member.hh.

◆ operator T()

template<auto getter, auto setter = nullptr>
Ase::Member< getter, setter >::operator T ( ) const

Definition at line 139 of file member.hh.

◆ operator()() [1/2]

template<auto getter, auto setter = nullptr>
T Ase::Member< getter, setter >::operator() ( ) const

Definition at line 137 of file member.hh.

◆ operator()() [2/2]

template<auto getter, auto setter = nullptr>
bool Ase::Member< getter, setter >::operator() ( const T &  value)

Definition at line 138 of file member.hh.

◆ operator=()

template<auto getter, auto setter = nullptr>
bool Ase::Member< getter, setter >::operator= ( const T &  value)

Definition at line 140 of file member.hh.

◆ set()

template<auto getter, auto setter = nullptr>
bool Ase::Member< getter, setter >::set ( const T &  value)

Definition at line 130 of file member.hh.

Member Data Documentation

◆ is_unique_per_member

template<auto getter, auto setter = nullptr>
constexpr bool Ase::Member< getter, setter >::is_unique_per_member
staticconstexpr

Definition at line 142 of file member.hh.


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