Mirror reflection library - Rubber type-erasure utility 0.5.13
Defines

Rubber - Configuration options

Defines

#define RUBBER_POLYMORPHIC_META_OBJECT   0
 Enables downcasting of Rubber's meta-objects to their specializations.
#define RUBBER_NO_NAMESPACE_MEMBERS   0
 Disables the traversal of namespace members.
#define RUBBER_MNSO_WITH_LOCAL_NAME   0
 Enables the meta_named_scoped_objects's local_name member function.
#define RUBBER_META_TYPE_OPERATIONS   comma,separated,list,of,operation,wrappers
 Defines a set of operations which will be available for reflected types.

Detailed Description

The polymorphic nature of the meta-objects can make Rubber-using applications prone to have long compilation times and large resulting executables. Rubber is however configurable via preprocessor options, and lets the user specify which features should be included in the meta-object and what should be ommited. This way the application does not pay for things it does not use in terms of resources necessary for the compilation and the resulting code size.


Define Documentation

#define RUBBER_META_TYPE_OPERATIONS   comma,separated,list,of,operation,wrappers

Defines a set of operations which will be available for reflected types.

If defined, this PP symbol must contain a comma-separated list of types that conform to the rubber::TypeOperation concept. All operations listed can than be executed on type-erased instances via their meta-types' examine_by or modify_by member functions.

If this PP symbol is not defined then the member functions listed above are not available in the meta_type meta-object.

#define RUBBER_MNSO_WITH_LOCAL_NAME   0

Enables the meta_named_scoped_objects's local_name member function.

Setting this to a nonzero integer value enables the local_name member function in meta_named_scoped_object.

#define RUBBER_NO_NAMESPACE_MEMBERS   0

Disables the traversal of namespace members.

If this is defined as zero then namespace members can be iterated, otherwise the members() function for meta-namespace returns an empty range.

Setting this to a non-zero value can greatly improve compilation times if namespace member traversal is not needed.

#define RUBBER_POLYMORPHIC_META_OBJECT   0

Enables downcasting of Rubber's meta-objects to their specializations.

Setting this symbol to a nonzero integer value enables downcasting of references to meta-objects to their specializations. Setting it to zero (the default) disables this feature.

It is important to note, that when this feature is enabled, the meta-objects must be handled by const reference. Also enabling polymorphic meta-objects can dramatically increase the compilation times and the resulting executable code size so unless this feature is really necessary it is suggested to keep it disabled. Also the Lagoon run-time layer may be a better option in such cases.


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.