Mirror reflection library - Puddle compile-time layer 0.5.13

puddle::MetaFunction Struct Reference

MetaFunction is a meta-object reflecting a function. More...

#include <puddle/doc/concepts.hpp>

Inheritance diagram for puddle::MetaFunction:
Collaboration diagram for puddle::MetaFunction:

List of all members.

Public Member Functions

MetaType result_type (void) const
 Returns MetaType reflecting the return type of the function.
Specifier storage_class (void) const
 Returns specifier indicating the storage class or linkage of function.
Specifier linkage (void) const
 Returns specifier indicating the storage class or linkage of function.
Range< MetaParameterparameters (void) const
 Returns a range of MetaVariable(s) reflecting the parameters.
mirror::meta_function_tag category (void) const
Range< MetaNamedScopedObjectmembers (void) const
 Returns the members of the reflected scope.
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.

Friends

Boolean operator== (MetaObject, MetaObject)
 Equality comparison.
Boolean operator!= (MetaObject, MetaObject)
 Inequality comparison.

Detailed Description

MetaFunction is a meta-object reflecting a function.

See also:
mirror::MetaFunction
mirror::meta_function_tag

Member Function Documentation

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.

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
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.

Specifier puddle::MetaFunction::storage_class ( void  ) const

Returns specifier indicating the storage class or linkage of function.

The linkage function is an alternate name for this one

See also:
linkage

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.