meta
default namespace.
More...
Classes | |
class | any |
Meta any object. More... | |
struct | as_alias_t |
Empty class type used to request the as alias policy. More... | |
struct | as_is_t |
Empty class type used to request the as-is policy. More... | |
struct | as_void_t |
Empty class type used to request the as void policy. More... | |
class | base |
Meta base object. More... | |
class | conv |
Meta conversion function object. More... | |
class | ctor |
Meta constructor object. More... | |
class | data |
Meta data object. More... | |
class | dtor |
Meta destructor object. More... | |
class | factory |
A meta factory to be used for reflection purposes. More... | |
class | func |
Meta function object. More... | |
class | handle |
Meta handle object. More... | |
class | prop |
Meta property object. More... | |
class | type |
Meta type object. More... | |
Functions | |
template<typename Type , typename... Property> | |
factory< Type > | reflect (const std::size_t identifier, Property &&... property) noexcept |
Utility function to use for reflection. More... | |
template<typename Type > | |
factory< Type > | reflect () noexcept |
Utility function to use for reflection. More... | |
template<typename Type > | |
bool | unregister () noexcept |
Utility function to unregister a type. More... | |
template<typename Type > | |
type | resolve () noexcept |
Returns the meta type associated with a given type. More... | |
type | resolve (const std::size_t identifier) noexcept |
Returns the meta type associated with a given identifier. More... | |
template<typename Op > | |
std::enable_if_t< std::is_invocable_v< Op, type >, void > | resolve (Op op) noexcept |
Iterates all the reflected types. More... | |
bool | operator!= (const any &lhs, const any &rhs) noexcept |
Checks if two containers differ in their content. More... | |
bool | operator!= (const prop &lhs, const prop &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const base &lhs, const base &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const conv &lhs, const conv &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const ctor &lhs, const ctor &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const dtor &lhs, const dtor &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const data &lhs, const data &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const func &lhs, const func &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
bool | operator!= (const type &lhs, const type &rhs) noexcept |
Checks if two meta objects refer to the same node. More... | |
Variables | |
constexpr as_alias_t | as_alias |
Disambiguation tag. | |
meta
default namespace.
|
inlinenoexcept |
Utility function to use for reflection.
This is the point from which everything starts.
By invoking this function with a type that is not yet reflected, a meta type is created to which it will be possible to attach data and functions through a dedicated factory.
Type | Type to reflect. |
Property | Types of properties to assign to the reflected type. |
identifier | Unique identifier. |
property | Properties to assign to the reflected type. |
Definition at line 851 of file factory.hpp.
|
inlinenoexcept |
Utility function to use for reflection.
This is the point from which everything starts.
By invoking this function with a type that is not yet reflected, a meta type is created to which it will be possible to attach data and functions through a dedicated factory.
Type | Type to reflect. |
Definition at line 868 of file factory.hpp.
|
inlinenoexcept |
Returns the meta type associated with a given type.
Type | Type to use to search for a meta type. |
Definition at line 897 of file factory.hpp.
|
inlinenoexcept |
Returns the meta type associated with a given identifier.
identifier | Unique identifier. |
Definition at line 907 of file factory.hpp.
|
inlinenoexcept |
Iterates all the reflected types.
Op | Type of the function object to invoke. |
op | A valid function object. |
Definition at line 923 of file factory.hpp.
|
inlinenoexcept |
Utility function to unregister a type.
This function unregisters a type and all its data members, member functions and properties, as well as its constructors, destructors and conversion functions if any.
Base classes aren't unregistered but the link between the two types is removed.
Type | Type to unregister. |
Definition at line 886 of file factory.hpp.