Mirror reflection library - Puddle compile-time layer 0.5.13

puddle::MetaTemplatedClass Struct Reference

MetaTemplatedClass is a type reflecting instantiation of a class template. More...

#include <puddle/doc/concepts.hpp>

Inheritance diagram for puddle::MetaTemplatedClass:
Collaboration diagram for puddle::MetaTemplatedClass:

List of all members.

Public Types

typedef MetaTypeTemplate type_template

Public Member Functions

mirror::meta_templated_class_tag category (void) const
MetaTemplatedType type_template (void) const
 Returns the template of the templated type.
Range< MetaTypetemplate_parameters (void) const
 Returns the template parameters.
Range< MetaConstructorconstructors (void) const
 Returns meta-data describing the type's constructors.
ContainerKind container_kind (void) const
 Returns the container kind tag.
Range< MetaContainercontainers (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.
Specifier elaborated_type (void) const
 Returns the elaborated type specifier.
Range< MetaInheritancebase_classes (void) const
 Returns the meta-data describing inheritance of base classes.
Range< MetaMemberVariablemember_variables (void) const
 Returns the meta-data describing member variables.
Range< MetaMemberVariableall_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< MetaContainerall_containers (void) const
 Returns the meta-data describing all element containers.
Range< MetaNamedScopedObjectmembers (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.

Detailed Description

MetaTemplatedClass is a type reflecting instantiation of a class template.

See also:
mirror::MetaTemplatedClass
mirror::meta_templated_class_tag

Member Function Documentation

Range<MetaContainer> puddle::MetaClass::all_containers ( void  ) const [inherited]

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 [inherited]

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 [inherited]

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_templated_class_tag puddle::MetaTemplatedClass::category ( void  ) const
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

See also:
Range
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 [inherited]

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.

template<typename Category >
Boolean puddle::MetaObject::is_a ( Category  ) const [inherited]

Returns true if the meta-object is of the specified Category.

Template Parameters:
Categorya meta-object category tag type
See also:
mirror::meta_object_tag
mirror::categorize_meta_object
mirror::meta_object_category
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.

See also:
PUDDLE_USING_NAMESPACE
Range<MetaMemberVariable> puddle::MetaClass::member_variables ( void  ) const [inherited]

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 [inherited]

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 [inherited]

Returns a type allowing to access variable meta-data by identifier.

See also:
member_variables_by_name()
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.

See also:
MetaScope

Reimplemented in puddle::MetaClassMember, puddle::MetaEnumValue, puddle::MetaFreeVariable, and puddle::MetaContainer.

Range<MetaType> puddle::MetaTemplatedType::template_parameters ( void  ) const [inherited]

Returns the template parameters.

Function returning a range of MetaType(s) which are reflecting the individual parameters used in the instantiation of the type template.

See also:
members
mp::range

Returns the template of the templated type.

this function returns a MetaTypeTemplate reflecting the template which was used for the instantiation of this templated type.

See also:
parameters
MetaTypeTemplate

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.