Mirror reflection library - Puddle compile-time layer 0.5.13

puddle::MetaPlainMemberVariable Struct Reference

MetaPlainMemberVariable is a meta-object reflecting POD class' member variable. More...

#include <puddle/doc/concepts.hpp>

Inheritance diagram for puddle::MetaPlainMemberVariable:
Collaboration diagram for puddle::MetaPlainMemberVariable:

List of all members.

Public Member Functions

ptrdiff_t offset (void) const
 Returns the byte offset of the member inside the class.
Type * address (Class &instance) const
 Returns a pointer to the member when given a reference to Class.
const Type * address (const Class &instance) const
MemberVariablePointer member_pointer (void) const
 Returns a class member pointer for the reflected member variable.
mirror::meta_plain_member_variable_tag category (void) const
Type get (const Class &instance) const
 Gets the value of the member when given an instance of the Class.
void set (Class &instance, Type new_value) const
 Sets the value of the member when given an instance of the Class.
MetaClass scope (void) const
 Returns meta-class for the class in which the member is defined.
Specifier access_type (void) const
 Returns the access type specifier.
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.
Specifier storage_class (void) const
 Returns the storage class tag.
MetaType type (void) const
 Returns MetaType reflecting the type of the variable.

Friends

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

Detailed Description

MetaPlainMemberVariable is a meta-object reflecting POD class' member variable.

See also:
mirror::MetaPlainMemberVariable
mirror::meta_plain_member_variable_tag

Member Function Documentation

Specifier puddle::MetaClassMember::access_type ( void  ) const [inherited]

Returns the access type specifier.

Returns specifier for the access type (private | protected | public) for the reflected class member variable, function or constructor.

Type* puddle::MetaPlainMemberVariable::address ( Class &  instance) const

Returns a pointer to the member when given a reference to Class.

This function allows to get the pointer of the member variable reflected by this MetaPlainMemberVariable of the provided instance.

Template Parameters:
Classthe type of the parent class to which this member variable belongs to.
Parameters:
instancean instance of the Class
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_plain_member_variable_tag puddle::MetaPlainMemberVariable::category ( void  ) const
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.

Type puddle::MetaMemberVariable::get ( const Class &  instance) const [inherited]

Gets the value of the member when given an instance of the Class.

This function allows to get the value of the member variable reflected by this MetaMemberVariable of the provided instance.

Template Parameters:
Classthe type of the parent class to which this member variable belongs to.
Parameters:
instancean instance of the Class, the value of the member variable of which is to be obtained.
Returns:
The result has the same type as the member variable.
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
void puddle::MetaMemberVariable::set ( Class &  instance,
Type  new_value 
) const [inherited]

Sets the value of the member when given an instance of the Class.

This function allows to set the value of the member variable reflected by this MetaMemberVariable of the provided instance to the provided new_value.

Template Parameters:
Classthe type of the parent class to which this member variable belongs to.
Typethe type of the value to be set. This type must be implicitly convertible to the type of the member variable.
Parameters:
instancean instance of the Class, the value of the member variable of which is to be modified.
new_valuethe new value to be set to the member variable of the passed instance.
Specifier puddle::MetaVariable::storage_class ( void  ) const [inherited]

Returns the storage class tag.

Specifier reflecting the storage class (auto|static|mutable|...) for the reflected variable.


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.