|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Tiny reflection-style helpers (MemberRef, MemberPtr) and for_each_member_* visitors used by config / serializer code to iterate struct members with their names.
More...
Go to the source code of this file.
Classes | |
| struct | DNDS::MemberRef< T > |
Simple {reference, name} bundle for a struct member. More... | |
| struct | DNDS::MemberPtr< Class, T > |
| Pointer-to-member wrapper with a symbolic name; the pointer-based cousin of MemberRef used when the object is known only at visit time. More... | |
Namespaces | |
| namespace | DNDS |
| the host side operators are provided as implemented | |
Macros | |
| #define | DNDS_MAKE_1_MEMBER_REF(x) MemberRef { x, #x } |
Construct a MemberRef capturing x and its stringified name. | |
| #define | DNDS_MAKE_1_MEMBER_PTR(Class, member) MemberPtr { &Class::member, #member } |
Build a MemberPtr for Class::member. | |
| #define | DNDS_MAKE_1_MEMBER_PTR_SELF(member) MemberPtr { &t_self::member, #member } |
Like DNDS_MAKE_1_MEMBER_PTR but uses the surrounding t_self alias, common in DNDSR member definitions (using t_self = ...;). | |
Functions | |
| template<typename TList , typename F > | |
| void | DNDS::for_each_member_list (TList &&obj_member_list, F &&f) |
Invoke f(member) for every element of a std::tuple of members. | |
| template<typename T > | |
| DNDS::MemberRef (T &, const char *) -> MemberRef< T > | |
| template<typename Class , typename TList , typename F > | |
| void | DNDS::for_each_member_ptr_list (Class &obj, TList &&obj_member_ptr_list, F &&f) |
Invoke f(name, obj.*ptr) for every member in a list of MemberPtr. | |
| template<typename TList , typename F > | |
| void | DNDS::for_each_member_ptr_list_raw (TList &&obj_member_ptr_list, F &&f) |
Low-level variant that passes each MemberPtr object through to f directly (for callers that need access to both ptr and name). | |
| template<typename Class , typename T > | |
| DNDS::MemberPtr (T Class::*, const char *) -> MemberPtr< Class, T > | |
Tiny reflection-style helpers (MemberRef, MemberPtr) and for_each_member_* visitors used by config / serializer code to iterate struct members with their names.
Definition in file ObjectUtils.hpp.
| #define DNDS_MAKE_1_MEMBER_PTR | ( | Class, | |
| member | |||
| ) | MemberPtr { &Class::member, #member } |
Build a MemberPtr for Class::member.
Definition at line 71 of file ObjectUtils.hpp.
| #define DNDS_MAKE_1_MEMBER_PTR_SELF | ( | member | ) | MemberPtr { &t_self::member, #member } |
Like DNDS_MAKE_1_MEMBER_PTR but uses the surrounding t_self alias, common in DNDSR member definitions (using t_self = ...;).
Definition at line 76 of file ObjectUtils.hpp.