|
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...
|
|
template<typename Type , typename... Property>
factory<Type> meta::reflect |
( |
const std::size_t |
identifier, |
|
|
Property &&... |
property |
|
) |
| |
|
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.
- Template Parameters
-
Type | Type to reflect. |
Property | Types of properties to assign to the reflected type. |
- Parameters
-
identifier | Unique identifier. |
property | Properties to assign to the reflected type. |
- Returns
- A meta factory for the given type.
Definition at line 851 of file factory.hpp.
template<typename Type >
bool meta::unregister |
( |
| ) |
|
|
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.
- Template Parameters
-
- Returns
- True if the type to unregister exists, false otherwise.
Definition at line 886 of file factory.hpp.