Mirror reflection library 0.5.13
|
MetaTypedef is a type reflecting base-level typedefined types. More...
#include <mirror/doc/concepts.hpp>
Public Types | |
typedef MetaType | type |
MetaType reflecting the base type used in the type definition. | |
typedef unspecified_type | original_type |
The base-level type reflected by this MetaType. | |
typedef MetaScope | scope |
A type reflecting the scope of the scoped object. | |
Static Public Member Functions | |
static std::string | full_name (void) |
Returns the full name of the reflected entity. | |
static std::string | local_name (void) |
Returns the local name of the reflected entity. | |
static std::string | base_name (void) |
Returns the base name of the reflected entity. | |
Friends | |
meta_typedef_tag | categorize_meta_object (MetaTypedef) |
struct | original_type< MetaType > |
Meta-function returning the type reflected by this MetaType. | |
struct | apply_modifier< MetaType, ModifierLambdaExpression > |
struct | constructors< MetaClass > |
struct | container_kind< MetaType > |
Meta-function returning the container kind of a class. | |
struct | containers< MetaType > |
int | traverse_elements (MetaType meta_type, MetaType::original_type &container, TernaryFunctor elem_func, BinaryFunctor empty_func) |
Convenience function for default element traversal. | |
meta_type_tag | categorize_meta_object (MetaType) |
meta_named_scoped_object_tag | categorize_meta_object (MetaNamedScopedObject) |
meta_named_object_tag | categorize_meta_object (MetaNamedObject) |
meta_object_tag | categorize_meta_object (MetaObject) |
meta_scoped_object_tag | categorize_meta_object (MetaScopedObject) |
struct | is_a< MetaObject, ConceptTag > |
Meta-function for checking if the MetaObject conforms to a concept. | |
struct | scope< MetaScopedObject > |
Meta-function returning the scope of the scoped object. |
MetaTypedef is a type reflecting base-level typedefined types.
typedef MetaScope mirror::MetaScopedObject::scope [inherited] |
A type reflecting the scope of the scoped object.
This type conforms to the MetaScope concept and provides meta-data about the scope which encloses the construct reflected by this MetaScopedObject.
Reimplemented in mirror::MetaNamespace, mirror::MetaGlobalScope, mirror::MetaClassMember, mirror::MetaEnumValue, mirror::MetaFreeVariable, and mirror::MetaContainer.
static std::string mirror::MetaNamedObject::base_name | ( | void | ) | [static, inherited] |
Returns the base name of the reflected entity.
This function returns the base name of the reflected construct (type, class, namespace, member variable, etc.) without the nested name specifier.
static std::string mirror::MetaNamedScopedObject::full_name | ( | void | ) | [static, inherited] |
Returns the full name of the reflected entity.
This function returns the full name of the reflected construct (type, class, namespace, member variable, etc.) including the nested name specifier.
static std::string mirror::MetaNamedScopedObject::local_name | ( | void | ) | [static, inherited] |
Returns the local name of the reflected entity.
This function returns the local name of the reflected construct (type, class, namespace, member variable, etc.) including the partial or full nested name specifier, based on whether the parent scope or one of its enclosing scopes of the construct reflected by this MetaNamedScopedObject is used with the MIRROR_USING_NAMESPACE macro.
friend struct apply_modifier< MetaType, ModifierLambdaExpression > [friend, inherited] |
Meta-function returning MetaType reflecting a type that is the result of application of the ModifierLambdaExpression on the original_type
reflected by the passed MetaType
.
MetaType | meta-type reflecting the original type to be modified and reflected. |
ModifierLambdaExpression | unary lambda expression doing the modification of the original type. For example:
std::add_pointer<mirror::mp::arg<1>> The type trait templates used to construct the modifier expression must not return a boolean or integral constants. |
meta_type_tag categorize_meta_object | ( | MetaType | ) | [friend, inherited] |
meta_named_scoped_object_tag categorize_meta_object | ( | MetaNamedScopedObject | ) | [friend, inherited] |
meta_named_object_tag categorize_meta_object | ( | MetaNamedObject | ) | [friend, inherited] |
meta_object_tag categorize_meta_object | ( | MetaObject | ) | [friend, inherited] |
This function can be used to determine if a type is a MetaObject
meta_typedef_tag categorize_meta_object | ( | MetaTypedef | ) | [friend] |
meta_scoped_object_tag categorize_meta_object | ( | MetaScopedObject | ) | [friend, inherited] |
friend struct constructors< MetaClass > [friend, inherited] |
Meta-function returning a range of MetaConstructors which are reflecting the constructors of the reflected class
friend struct container_kind< MetaType > [friend, inherited] |
Meta-function returning the container kind of a class.
This meta-function returns a container kind tag indicating if and what kind of container the reflected class is.
friend struct containers< MetaType > [friend, inherited] |
Meta-function returning a range of MetaContainerss which are reflecting the element containers of the reflected type
friend struct is_a< MetaObject, ConceptTag > [friend, inherited] |
Meta-function for checking if the MetaObject conforms to a concept.
This meta-function returns std::true_type if a MetaObject conforms to the concept identified by the ConceptTag
. Returns std::false_type otherwise.
friend struct original_type< MetaType > [friend, inherited] |
Meta-function returning the type reflected by this MetaType.
This meta-function "returns" the same type as the original_type
member typedef, but is better suited for algorithms using lambda placeholder expressions.
friend struct scope< MetaScopedObject > [friend, inherited] |
int traverse_elements | ( | MetaType | meta_type, |
MetaType::original_type & | container, | ||
TernaryFunctor | elem_func, | ||
BinaryFunctor | empty_func | ||
) | [friend, inherited] |
Convenience function for default element traversal.
This function calls the provided pair of functors on each element in the instance of the container type reflected by this MetaType or on each empty subcontainer.
The elem_func
functor is called on each element in the non-empty subcontainers and should accept three parameters: the first is a tag type indicating the kind of the container he second is an instance of the element_traversal_info type containing information about the position of the currently traversed element and the third is the currently traversed element.
The empty_func
functor is called on the empty subcontainers and should accept two parameters: the first is a tag type indicating the kind of the container and the second is an instance of the element_traversal_info type containing information about the status of the traversal.
This function returns the number of elements traversed.