Mirror reflection library 0.5.13
Classes | Functions

Mirror - Categorization and Tag dispatching

Classes

struct  mirror::non_meta_object_tag
 Tag used for recognizing types which are not Mirror meta-objects. More...
struct  mirror::meta_object_tag
 Tag for types which conform to the Mirror's MetaObject concept. More...
struct  mirror::meta_named_object_tag
 Tag for types conforming to the Mirror's MetaNamedObject concept. More...
struct  mirror::meta_meta_object_tag
 Tag for types conforming to the Mirror's MetaMetaObject concept. More...
struct  mirror::meta_scoped_object_tag
 Tag for types conforming to the Mirror's MetaScopedObject concept. More...
struct  mirror::meta_named_scoped_object_tag
 Tag for types conforming to the Mirror's MetaNamedScopedObject concept. More...
struct  mirror::meta_scope_tag
 Tag for types conforming to the Mirror's MetaScope concept. More...
struct  mirror::meta_unspecified_scope_tag
 Tag for types conforming to the MetaScope concept for an unspecified scope. More...
struct  mirror::meta_namespace_tag
 Tag for types conforming to the Mirror's MetaNamespace concept. More...
struct  mirror::meta_global_scope_tag
 Tag for types conforming to the MetaNamespace concept for the global scope. More...
struct  mirror::meta_type_tag
 Tag for types conforming to the Mirror's MetaType concept. More...
struct  mirror::meta_templated_type_tag
 Tag for types conforming to the Mirror's MetaTemplatedType concept. More...
struct  mirror::meta_type_template_tag
 Tag for types conforming to the Mirror's MetaTypeTemplate concept. More...
struct  mirror::meta_typedef_tag
 Tag for types conforming to the Mirror's MetaTypedef concept. More...
struct  mirror::meta_class_tag
 Tag for types conforming to the Mirror's MetaClass concept. More...
struct  mirror::meta_class_member_tag
 Tag for types conforming to the Mirror's MetaClassMember concept. More...
struct  mirror::meta_templated_class_tag
 Tag for types conforming to the Mirror's MetaTemplatedClass concept. More...
struct  mirror::meta_enum_tag
 Tag for types conforming to the Mirror's MetaEnum concept. More...
struct  mirror::meta_enum_value_tag
 Tag for types conforming to the Mirror's MetaEnumValue concept. More...
struct  mirror::meta_inheritance_tag
 Tag for types conforming to the Mirror's MetaInheritance concept. More...
struct  mirror::meta_variable_tag
 Tag for types conforming to the Mirror's MetaVariable concept. More...
struct  mirror::meta_plain_variable_tag
 Tag for types conforming to the Mirror's MetaPlainVariable concept. More...
struct  mirror::meta_free_variable_tag
 Tag for types conforming to the Mirror's MetaFreeVariable concept. More...
struct  mirror::meta_plain_free_variable_tag
 Tag for types conforming to the Mirror's MetaPlainFreeVariable concept. More...
struct  mirror::meta_member_variable_tag
 Tag for types conforming to the Mirror's MetaMemberVariable concept. More...
struct  mirror::meta_plain_member_variable_tag
 Tag for types conforming to the Mirror's MetaPlainMemberVariable concept. More...
struct  mirror::meta_parameter_tag
 Tag for types conforming to the Mirror's MetaParameter concept. More...
struct  mirror::meta_function_tag
 Tag for types conforming to the Mirror's MetaFunction concept. More...
struct  mirror::meta_member_function_tag
 Tag for types conforming to the Mirror's MetaMemberFunction concept. More...
struct  mirror::meta_constructor_tag
 Tag for types conforming to the Mirror's MetaConstructor concept. More...
struct  mirror::meta_conversion_operator_tag
 Tag for types conforming to the Mirror's MetaConversionOperator concept. More...
struct  mirror::meta_overloaded_functions_tag
 Tag for types conforming to the Mirror's MetaOverloadedFunctions concept. More...
struct  mirror::meta_locator_tag
 Tag for types conforming to the Mirror's MetaLocator concept. More...
struct  mirror::meta_traversal_tag
 Tag for types conforming to the Mirror's MetaTraversal concept. More...
struct  mirror::meta_inserter_tag
 Tag for types conforming to the Mirror's MetaInserter concept. More...
struct  mirror::meta_eraser_tag
 Tag for types conforming to the Mirror's MetaEraser concept. More...
struct  mirror::meta_container_tag
 Tag for types conforming to the Mirror's MetaContainer concept. More...
struct  mirror::meta_object_category< T >
 Template meta-function for getting the category tag of a type. More...
struct  mirror::meta_object_kind< T, CategoryTags >
 Template meta-function for getting a category tag of a type. More...

Functions

template<class T >
meta_object_category< T >::type mirror::categorize_meta_object (const T &inst)
 This function returns the meta-object category tag for an instance.

Detailed Description

Tag types and categorization template meta-functions for tag dispatching. These tags, the categorization functions and template meta-functions can be used for creating different function overloads and template specializations for different meta-object categories and for the dispatching of the proper overload and/or template specialization for a particular meta-object type, based on its capabilities.


Function Documentation

template<class T >
meta_object_category<T>::type mirror::categorize_meta_object ( const T &  inst)

This function returns the meta-object category tag for an instance.

Template Parameters:
Tthe type to be categorized
Parameters:
instthe instance type of which is to be categorized
See also:
meta_object_category
Examples:
mirror/example/various_01.cpp, and mirror/example/various_03.cpp.

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.