Mirror reflection library 0.5.13
|
MetaEnum is a type reflecting enumerations. More...
#include <mirror/doc/concepts.hpp>
Public Types | |
typedef IntegralConstantType | size |
Number of elements in the enumeration. | |
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 UnspecifiedEnumType | value (IntegralConstantType index) |
Gets the enumerated value with the specified compile-time index. | |
static UnspecifiedEnumType | value (int index) |
Gets the enumerated value with the specified index. | |
static std::string | value_name (IntegralConstantType index) |
Gets the name of the enumerated value with the specified index. | |
static std::string | value_name (int index) |
Gets the name of the enumerated value with the specified index. | |
static std::string | name_by_value (Enum x) |
Returns the name of a value. | |
static Enum | value_by_name (const std::string &name) |
Returns an enumerated value by its name. | |
static bool | has_value_name (const std::string &name) |
Checks if there is a value with the provided name. | |
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 | |
struct | enum_values< MetaClass > |
struct | enum_size< MetaEnum > |
Meta-function returning the count of elements in an enumeration. | |
meta_enum_tag | categorize_meta_object (MetaEnum) |
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. | |
struct | members< MetaScope > |
meta_scope_tag | categorize_meta_object (MetaScope) |
MetaEnum is a type reflecting enumerations.
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_enum_tag categorize_meta_object | ( | MetaEnum | ) | [friend] |
meta_scope_tag categorize_meta_object | ( | MetaScope | ) | [friend, inherited] |
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_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
Meta-function returning the count of elements in an enumeration.
This meta-function "returns" the same IntegralConstantType as the size
member typedef, but is better suited for algorithms using lambda placeholder expressions.
friend struct enum_values< MetaClass > [friend] |
Meta-function returning a range of MetaEnumValues which are reflecting the individual value of the reflected enum
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.