Anklang C++ API 0.0.0
Loading...
Searching...
No Matches
Member< setter, getter >

#include "member.hh"

Public Types

usingClass = typename GetterTraits::ClassType
usingG = typename std::decay< typename GetterTraits::ReturnType >::type
usingGetterTraits = Lib::MemberFunctionTraits< getter >
usingS = typename std::decay< typename SetterTraits::ReturnType >::type
usingSetterTraits = Lib::MemberFunctionTraits< setter >
usingT = typename std::decay< typename std::tuple_element< 1, typename SetterTraits::Arguments >::type >::type
usingvalue_type = T

Public Member Functions

Tget () const
Member (Class *o, const String &n, const ParamExtraVals &ev, 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 ParamInitialVal &iv, const ParamExtraVals &ev, uint64_t hints, const StringS &s={}, bool init=true)
Member (Class *o, const String &n, const ParamInitialVal &iv, const StringS &s={})
Member (Class *o, const String &n="", const StringS &s={})
voidnotify () const
operator T () const
Toperator() () const
booloperator() (const T &value)
booloperator= (const T &value)
boolset (const T &value)

Static Public Member Functions

static uint64_thints ()
static Class *host_ (const Member *m, Class *o=nullptr)
static Stringinfo (const String &key)
static const StringS &infos ()
static const MemberDetails &meta_ (const MemberDetails *n=nullptr)

Static Public Attributes

static constexpr boolis_unique_per_member

Detailed Description

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

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

Member Typedef Documentation

GetterTraits

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

Class

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

G

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

SetterTraits

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

S

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

T

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

value_type

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

Constructor & Destructor Documentation

Member() [1/5]

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

Member() [2/5]

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

Member() [3/5]

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

Member() [4/5]

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

Member() [5/5]

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

Member Function Documentation

host_()

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

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

meta_()

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

Retrieve or assign property meta infos.

get()

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

set()

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

operator()() [1/2]

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

operator()() [2/2]

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

operator T()

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

operator=()

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

notify()

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

hints()

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

infos()

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

info()

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

Member Data Documentation

is_unique_per_member

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