Mirror reflection library 0.5.13

mirror::MetaTypedef Struct Reference

MetaTypedef is a type reflecting base-level typedefined types. More...

#include <mirror/doc/concepts.hpp>

Inheritance diagram for mirror::MetaTypedef:
Collaboration diagram for mirror::MetaTypedef:

List of all members.

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.

Detailed Description

MetaTypedef is a type reflecting base-level typedefined types.

See also:
meta_typedef_tag
meta_object_category
categorize_meta_object

Member Typedef Documentation

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 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
meta_type_tag categorize_meta_object ( MetaType  ) [friend, inherited]
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_typedef_tag categorize_meta_object ( MetaTypedef  ) [friend]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_scoped_object_tag categorize_meta_object ( MetaScopedObject  ) [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 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 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.