Mirror reflection library 0.5.13

mirror::MetaClass Struct Reference

MetaClass is a type reflecting base-level classes. More...

#include <mirror/doc/concepts.hpp>

Inheritance diagram for mirror::MetaClass:
Collaboration diagram for mirror::MetaClass:

List of all members.

Public Types

typedef ElaboratedTypeTag elaborated_type
 The elaborated type specifier tag.
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

struct elaborated_type< MetaClass >
 Meta-function returning the elaborated type specifier of a class.
struct base_classes< MetaClass >
struct member_variables< MetaClass >
struct all_member_variables< MetaClass >
struct member_functions< MetaClass >
struct all_member_functions< MetaClass >
struct all_containers< MetaClass >
meta_class_tag categorize_meta_object (MetaClass)
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)

Detailed Description

MetaClass is a type reflecting base-level classes.

See also:
meta_class_tag
meta_object_category
categorize_meta_object

Member Typedef Documentation

The elaborated type specifier tag.

Tag reflecting the elaborate type specifier (class | struct | union) that was specified during definition (and registering) of the class reflected by this meta_class.

See also:
ElaboratedTypeTag

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.

See also:
MetaScope

Reimplemented in mirror::MetaNamespace, mirror::MetaGlobalScope, mirror::MetaClassMember, mirror::MetaEnumValue, mirror::MetaFreeVariable, and mirror::MetaContainer.


Member Function Documentation

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.

Examples:
mirror/example/meta_prog_01.cpp, mirror/example/meta_prog_02.cpp, mirror/example/meta_prog_04.cpp, mirror/example/meta_prog_05.cpp, mirror/example/meta_prog_06.cpp, mirror/example/meta_prog_07.cpp, mirror/example/meta_prog_08.cpp, mirror/example/meta_prog_09.cpp, mirror/example/meta_prog_10.cpp, and mirror/example/meta_prog_11.cpp.
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.

See also:
MIRROR_USING_NAMESPACE

Friends And Related Function Documentation

friend struct all_containers< MetaClass > [friend]

Meta-function returning a range of MetaContainerss which are reflecting the element containers of the reflected class including those inherited from base classes.

See also:
MetaType::containers
mp::range
Returns:
Range<MetaContainer>
friend struct all_member_functions< MetaClass > [friend]

Meta-function returning a range of MetaOverloadedFunctions which are reflecting the overloaded functions of the reflected class, including those inherited from the base classes.

See also:
member_functions
mp::range returns Range<MetaOverloadedFunctions>
friend struct all_member_variables< MetaClass > [friend]

Meta-function returning a range of MetaMemberVariables which are reflecting the member variables of the reflected class including those inherited from base classes.

See also:
member_variables
mp::range
Returns:
Range<MetaMemberVariable>
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.

Template Parameters:
MetaTypemeta-type reflecting the original type to be modified and reflected.
ModifierLambdaExpressionunary 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.

Returns:
MetaType
friend struct base_classes< MetaClass > [friend]

Meta-function returning a range of MetaInheritances which are reflecting the inheritance of the base classes

See also:
base_classes
mp::range
Returns:
Range<MetaInheritance>
meta_scoped_object_tag categorize_meta_object ( MetaScopedObject  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_class_tag categorize_meta_object ( MetaClass  ) [friend]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_named_scoped_object_tag categorize_meta_object ( MetaNamedScopedObject  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_named_object_tag categorize_meta_object ( MetaNamedObject  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_object_tag categorize_meta_object ( MetaObject  ) [friend, inherited]

This function can be used to determine if a type is a MetaObject

See also:
meta_object_category
categorize_meta_object(const T&)
meta_scope_tag categorize_meta_object ( MetaScope  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_type_tag categorize_meta_object ( MetaType  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
friend struct constructors< MetaClass > [friend, inherited]

Meta-function returning a range of MetaConstructors which are reflecting the constructors of the reflected class

See also:
mp::range
Returns:
Range<MetaConstructor>
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.

Returns:
ContainerKindTag
friend struct containers< MetaType > [friend, inherited]

Meta-function returning a range of MetaContainerss which are reflecting the element containers of the reflected type

See also:
MetaClass::all_containers
mp::range
Returns:
Range<MetaContainer>
friend struct elaborated_type< MetaClass > [friend]

Meta-function returning the elaborated type specifier of a class.

This meta-function "returns" the same elaborated type specifier as the elaborated_type member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
ElaboratedTypeTag
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.

Returns:
BooleanConstantType
friend struct member_functions< MetaClass > [friend]

Meta-function returning a range of MetaOverloadedFunctions which are reflecting the overloaded functions of the reflected class, not including those inherited from the base classes.

See also:
all_member_functions
mp::range returns Range<MetaOverloadedFunctions>
friend struct member_variables< MetaClass > [friend]

Meta-function returning a range of MetaMemberVariables which are reflecting the member variables of the reflected class not including those inherited from base classes.

See also:
all_member_variables
mp::range
Returns:
Range<MetaMemberVariable>
friend struct members< MetaScope > [friend, inherited]

Meta-function returning a range of MetaScopedObjects which are reflecting the individual members of the scope.

See also:
members
mp::range
Returns:
Range<MetaScopedObject>
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]

Meta-function returning the scope of the scoped object.

This meta-function "returns" the same MetaScope as the scope member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
MetaScope
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.

See also:
containers
MetaClass::all_containers
container_tag
element_traversal_info

The documentation for this struct was generated from the following file:

Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.