#include "member.hh"
Public Types | |
using | Class = typename GetterTraits::ClassType |
using | G = typename std::decay< typename GetterTraits::ReturnType >::type |
using | GetterTraits = Lib::MemberFunctionTraits< getter > |
using | S = typename std::decay< typename SetterTraits::ReturnType >::type |
using | SetterTraits = Lib::MemberFunctionTraits< setter > |
using | T = typename std::decay< typename std::tuple_element< 1, typename SetterTraits::Arguments >::type >::type |
using | value_type = T |
Public Member Functions | |
T | get () 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={}) | |
void | notify () const |
operator T () const | |
T | operator() () const |
bool | operator() (const T &value) |
bool | operator= (const T &value) |
bool | set (const T &value) |
Static Public Member Functions | |
static uint64_t | hints () |
static Class * | host_ (const Member *m, Class *o=nullptr) |
static String | info (const String &key) |
static const StringS & | infos () |
static const MemberDetails & | meta_ (const MemberDetails *n=nullptr) |
Static Public Attributes | |
static constexpr bool | is_unique_per_member |
Implement C++ member field API with a 0-sized class from setter and getter, maybe combined with `[[no_unique_address]]`.
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 |
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 |
||
) |
|
static |
Resolve (or assign) `host->Member` distance (may be 0).
|
static |
Retrieve or assign property meta infos.
T get | ( | ) | const |
bool set | ( | const T & | value | ) |
T operator() | ( | ) | const |
bool operator() | ( | const T & | value | ) |
operator T | ( | ) | const |
bool operator= | ( | const T & | value | ) |
void notify | ( | ) | const |
|
static |
|
static |
|
staticconstexpr |