Mirror reflection library - Puddle compile-time layer 0.5.13
|
MetaClass is a type reflecting base-level classes. More...
#include <puddle/doc/concepts.hpp>
Public Member Functions | |
Specifier | elaborated_type (void) const |
Returns the elaborated type specifier. | |
Range< MetaInheritance > | base_classes (void) const |
Returns the meta-data describing inheritance of base classes. | |
Range< MetaMemberVariable > | member_variables (void) const |
Returns the meta-data describing member variables. | |
Range< MetaMemberVariable > | all_member_variables (void) const |
Returns the meta-data describing all member variables. | |
unspecified | member_variables_by_name (void) const |
Returns a type allowing to access variable meta-data by identifier. | |
unspecified * | operator-> (void) const |
Returns a type allowing to access variable meta-data by identifier. | |
Range< MetaContainer > | all_containers (void) const |
Returns the meta-data describing all element containers. | |
mirror::meta_class_tag | category (void) const |
Range< MetaConstructor > | constructors (void) const |
Returns meta-data describing the type's constructors. | |
ContainerKind | container_kind (void) const |
Returns the container kind tag. | |
Range< MetaContainer > | containers (void) const |
Returns the meta-data describing element containers. | |
template<template< class > class UnaryTrait> | |
unspecified | apply (void) const |
Apply a unary trait to the original type and reflect the result. | |
std::string | full_name (void) const |
Returns the full name of the reflected entity. | |
std::string | local_name (void) const |
Returns the local name of the reflected entity. | |
std::string | base_name (void) const |
Returns the base name of the reflected entity. | |
CompileTimeString | static_name (void) const |
Returns a compile-time string containing the base_name. | |
template<typename Category > | |
Boolean | is_a (Category) const |
Returns true if the meta-object is of the specified Category. | |
MetaScope | scope (void) const |
Returns a meta-object reflecting the scope of the scoped object. | |
Range< MetaNamedScopedObject > | members (void) const |
Returns the members of the reflected scope. | |
Static Public Member Functions | |
static unspecified | original_type (void) |
Function returning the base-level type reflected by this MetaType. | |
Friends | |
Boolean | operator== (MetaObject, MetaObject) |
Equality comparison. | |
Boolean | operator!= (MetaObject, MetaObject) |
Inequality comparison. |
MetaClass is a type reflecting base-level classes.
Range<MetaContainer> puddle::MetaClass::all_containers | ( | void | ) | const |
Returns the meta-data describing all element containers.
Meta-function returning a range of MetaContainers which are reflecting the element containers of the reflected class, including the inheited ones.
Range<MetaMemberVariable> puddle::MetaClass::all_member_variables | ( | void | ) | const |
Returns the meta-data describing all member variables.
Meta-function returning a range of MetaMemberVariable(s) which are reflecting the member variables of the reflected class including those inherited from base classes.
Range<MetaInheritance> puddle::MetaClass::base_classes | ( | void | ) | const |
Returns the meta-data describing inheritance of base classes.
Function returning a range of MetaInheritance(s) which are reflecting the inheritance of the base classes
std::string puddle::MetaNamedObject::base_name | ( | void | ) | const [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.
mirror::meta_class_tag puddle::MetaClass::category | ( | void | ) | const |
Reimplemented from puddle::MetaScope.
Reimplemented in puddle::MetaTemplatedClass.
Range<MetaConstructor> puddle::MetaType::constructors | ( | void | ) | const [inherited] |
Returns meta-data describing the type's constructors.
This function returns a range of MetaConstructor (s) which are reflecting the constructors of the reflected type
ContainerKind puddle::MetaType::container_kind | ( | void | ) | const [inherited] |
Returns the container kind tag.
Tag specifying the container kind of the reflected type.
Range<MetaContainer> puddle::MetaType::containers | ( | void | ) | const [inherited] |
Returns the meta-data describing element containers.
Meta-function returning a range of MetaContainers which are reflecting the element containers of the reflected type
Specifier puddle::MetaClass::elaborated_type | ( | void | ) | const |
Returns the elaborated type specifier.
Specifier reflecting the elaborate type specifier (class | struct | union) that was specified during definition (and registering) of the class reflected by this meta_class.
std::string puddle::MetaNamedScopedObject::full_name | ( | void | ) | const [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.
Boolean puddle::MetaObject::is_a | ( | Category | ) | const [inherited] |
Returns true if the meta-object is of the specified Category.
Category | a meta-object category tag type |
std::string puddle::MetaNamedScopedObject::local_name | ( | void | ) | const [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 PUDDLE_USING_NAMESPACE macro.
Range<MetaMemberVariable> puddle::MetaClass::member_variables | ( | void | ) | const |
Returns the meta-data describing member variables.
Function returning a range of MetaMemberVariable(s) which are reflecting the member variables of the reflected class not including those inherited from base classes.
unspecified puddle::MetaClass::member_variables_by_name | ( | void | ) | const |
Returns a type allowing to access variable meta-data by identifier.
Returns a type which provides member functors having the same names as the member variables in the reflected class. Invoking these nullary functors returns MetaMemberVariable reflecting the individual member variables.
unspecified* puddle::MetaClass::operator-> | ( | void | ) | const |
Returns a type allowing to access variable meta-data by identifier.
static unspecified puddle::MetaType::original_type | ( | void | ) | [static, inherited] |
Function returning the base-level type reflected by this MetaType.
Use decltype to get the type
MetaScope puddle::MetaScopedObject::scope | ( | void | ) | const [inherited] |
Returns a meta-object reflecting the scope of the scoped object.
The resulting type conforms to the MetaScope concept and provides meta-data about the scope which encloses the construct reflected by this MetaScopedObject.
Reimplemented in puddle::MetaClassMember, puddle::MetaEnumValue, puddle::MetaFreeVariable, and puddle::MetaContainer.