Mirror reflection library 0.5.13

mirror::MetaPlainMemberVariable Struct Reference

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

#include <mirror/doc/concepts.hpp>

Inheritance diagram for mirror::MetaPlainMemberVariable:
Collaboration diagram for mirror::MetaPlainMemberVariable:

List of all members.

Public Types

typedef MetaClass scope
 The class in which the member is defined.
typedef AccessTypeTag access_type
 The access type tag.
typedef StorageClassTag storage_class
 The storage class tag.
typedef MetaType type
 MetaType reflecting the type of the variable.

Static Public Member Functions

static ptrdiff_t offset (void)
 Returns the byte offset of the member inside the class.
static Type * address (Class &instance)
 Returns a pointer to the member when given a reference to Class.
static const Type * address (const Class &instance)
static MemberVariablePointer member_pointer (void)
 Returns a class member pointer for the reflected member variable.
static Type get (const Class &instance)
 Gets the value of the member when given an instance of the Class.
static void set (Class &instance, Type new_value)
 Sets the value of the member when given an instance of the Class.
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_plain_member_variable_tag categorize_meta_object (MetaPlainMemberVariable)
meta_member_variable_tag categorize_meta_object (MetaMemberVariable)
meta_class_member_tag categorize_meta_object (MetaClassMember)
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)
meta_variable_tag categorize_meta_object (MetaVariable)
struct scope< MetaClassMember >
 Meta-function returning the scope of the class member.
struct access_type< MetaClassMember >
 Meta-function returning the access type of the class member.
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.
struct storage_class< MetaVariable >
 Meta-function returning the storage class of the variable.
struct type_of< MetaVariable >
 Meta-function returning the type of the variable.

Detailed Description

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

See also:
meta_plain_member_variable_tag
meta_object_category
categorize_meta_object

Member Typedef Documentation

The access type tag.

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

See also:
AccessTypeTag

The storage class tag.

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

See also:
StorageClassTag;

Member Function Documentation

static Type* mirror::MetaPlainMemberVariable::address ( Class &  instance) [static]

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
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 Type mirror::MetaMemberVariable::get ( const Class &  instance) [static, 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.
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
static void mirror::MetaMemberVariable::set ( Class &  instance,
Type  new_value 
) [static, 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.

Friends And Related Function Documentation

friend struct access_type< MetaClassMember > [friend, inherited]

Meta-function returning the access type of the class member.

This meta-function "returns" the same AccessTypeTag as the access_type member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
AccessTypeTag
meta_plain_member_variable_tag categorize_meta_object ( MetaPlainMemberVariable  ) [friend]
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_variable_tag categorize_meta_object ( MetaVariable  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_member_variable_tag categorize_meta_object ( MetaMemberVariable  ) [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_class_member_tag categorize_meta_object ( MetaClassMember  ) [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_scoped_object_tag categorize_meta_object ( MetaScopedObject  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
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 scope< MetaClassMember > [friend, inherited]

Meta-function returning the scope of the class member.

This meta-function "returns" the same MetaScope as the scope member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
MetaClass
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
friend struct storage_class< MetaVariable > [friend, inherited]

Meta-function returning the storage class of the variable.

This meta-function "returns" the same StorageClassTag as the storage_class member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
StorageClassTag
friend struct type_of< MetaVariable > [friend, inherited]

Meta-function returning the type of the variable.

This meta-function "returns" the same MetaType as the type member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
MetaType

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.