Mirror reflection library - Lagoon run-time layer 0.5.13
Defines

Lagoon - Configuration options

Defines

#define LAGOON_DYNAMIC_LINKING   0
 Enables the dynamic linking of Lagoon's meta-objects.
#define LAGOON_MMO_WITH_GENERALIZATIONS   0
 Enables the meta_meta_type's generalizations member function.
#define LAGOON_MNSO_WITH_LOCAL_NAME   0
 Enables the meta_named_scoped_objects's local_name member function.
#define LAGOON_ALL_TYPE_TRAITS   0
 Enables the type trait-related member function in the meta_type.
#define LAGOON_MT_WITH_DEFAULT   0
 Enables the meta_type's default_ member function.
#define LAGOON_MT_WITH_IS_DEFAULT_CONSTRUCTIBLE   0
 Enables the meta_type's is_default_constructible member function.
#define LAGOON_MT_WITH_IS_COPY_CONSTRUCTIBLE   0
 Enables the meta_type's is_copy_constructible member function.
#define LAGOON_MT_WITH_ALIGNMENT_OF   0
 Enables the meta_type's alignment_of member function.
#define LAGOON_MT_WITH_IS_ARRAY   0
 Enables the meta_type's is_array member function.
#define LAGOON_MT_WITH_IS_CONST   0
 Enables the meta_type's is_const member function.
#define LAGOON_MT_WITH_IS_POINTER   0
 Enables the meta_type's is_pointer member function.
#define LAGOON_MT_WITH_IS_REFERENCE   0
 Enables the meta_type's is_reference member function.
#define LAGOON_MT_WITH_IS_VOLATILE   0
 Enables the meta_type's is_volatile member function.
#define LAGOON_MT_WITH_ADD_CONST   0
 Enables the meta_type's add_const member function.
#define LAGOON_MT_WITH_ADD_CV   0
 Enables the meta_type's add_cv member function.
#define LAGOON_MT_WITH_ADD_VOLATILE   0
 Enables the meta_type's add_volatile member function.
#define LAGOON_MT_WITH_REMOVE_CONST   0
 Enables the meta_type's remove_const member function.
#define LAGOON_MT_WITH_REMOVE_CV   0
 Enables the meta_type's remove_cv member function.
#define LAGOON_MT_WITH_REMOVE_VOLATILE   0
 Enables the meta_type's remove_volatile member function.
#define LAGOON_MT_WITH_REMOVE_POINTER   0
 Enables the meta_type's remove_pointer member function.
#define LAGOON_MT_WITH_REMOVE_REFERENCE   0
 Enables the meta_type's remove_reference member function.
#define LAGOON_MT_WITH_REMOVE_EXTENT   0
 Enables the meta_type's remove_extent member function.
#define LAGOON_MT_WITH_MAKE_FACTORY   0
 Enables the meta_type's make_factory member function.
#define LAGOON_MT_WITH_NEW   1
 Enables the meta_type's new_ member function.
#define LAGOON_MT_WITH_NEW_COPY   0
 Enables the meta_type's new_copy member function.
#define LAGOON_MT_WITH_DELETE   1
 Enables the meta_type's delete_ member function.
#define LAGOON_MT_WITH_MAKE_SHARED   0
 Enables the meta_type's make_shared member function.
#define LAGOON_MT_WITH_MAKE_UNIQUE   0
 Enables the meta_type's make_unique member function.
#define LAGOON_MC_WITH_ALL_MEMBER_VARIABLES   0
 Enables the meta_class' all_member_variables member function.
#define LAGOON_FACT_WITH_CREATE   0
 Enables the polymorph_factory's create member function.
#define LAGOON_NO_NAMESPACE_MEMBERS   0
 Disables the traversal of namespace members.
#define LAGOON_NO_ENUM_MEMBERS   0
 Disables the enum values traversal via members()

Detailed Description

The polymorphic nature of the interfaces and their implementations makes Lagoon-using applications prone to have long compilation times and large resulting executables. Lagoon is however highly configurable via preprocessor options, and lets the user preciselly specify which features should be included in the interfaces 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 LAGOON_ALL_TYPE_TRAITS   0

Enables the type trait-related member function in the meta_type.

Setting this to a non-zero value enables all supported type traits member functions in the meta_type interface. Otherwise the individual traits can be enabled separatelly by setting the appropriate preprocessor switches (listed below).

Set to zero (disabled) by default.

See also:
LAGOON_MT_WITH_DEFAULT
LAGOON_MT_WITH_IS_DEFAULT_CONSTRUCTIBLE
LAGOON_MT_WITH_IS_COPY_CONSTRUCTIBLE
LAGOON_MT_WITH_ALIGNMENT_OF
LAGOON_MT_WITH_IS_ARRAY
LAGOON_MT_WITH_IS_CONST
LAGOON_MT_WITH_IS_VOLATILE
LAGOON_MT_WITH_IS_POINTER
LAGOON_MT_WITH_IS_REFERENCE
LAGOON_MT_WITH_ADD_CONST
LAGOON_MT_WITH_ADD_CV
LAGOON_MT_WITH_ADD_VOLATILE
LAGOON_MT_WITH_REMOVE_CONST
LAGOON_MT_WITH_REMOVE_CV
LAGOON_MT_WITH_REMOVE_VOLATILE
LAGOON_MT_WITH_REMOVE_POINTER
LAGOON_MT_WITH_REMOVE_REFERENCE
LAGOON_MT_WITH_REMOVE_EXTENT
#define LAGOON_DYNAMIC_LINKING   0

Enables the dynamic linking of Lagoon's meta-objects.

Setting this symbol to a zero vs. nonzero integer value switches between the header-only statically linked and the dynamically linked meta-objects respectivelly.

TODO: elaborate on what's the difference

#define LAGOON_FACT_WITH_CREATE   0

Enables the polymorph_factory's create member function.

Setting this to a nonzero integer value enables the create member function in the polymorphic_factory interface.

#define LAGOON_MC_WITH_ALL_MEMBER_VARIABLES   0

Enables the meta_class' all_member_variables member function.

Setting this to a nonzero integer value enables the all_member_variables member function in the meta_class interface.

#define LAGOON_MMO_WITH_GENERALIZATIONS   0

Enables the meta_meta_type's generalizations member function.

Setting this to a nonzero integer value enables the generalizations member function in the meta_meta_type interface.

#define LAGOON_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 the meta_named_scoped_object interface.

#define LAGOON_MT_WITH_ADD_CONST   0

Enables the meta_type's add_const member function.

Setting this to a nonzero integer value enables the add_const member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_ADD_CV   0

Enables the meta_type's add_cv member function.

Setting this to a nonzero integer value enables the add_cv member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_ADD_VOLATILE   0

Enables the meta_type's add_volatile member function.

Setting this to a nonzero integer value enables the add_volatile member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_ALIGNMENT_OF   0

Enables the meta_type's alignment_of member function.

Setting this to a nonzero integer value enables the alignment_of member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_DEFAULT   0

Enables the meta_type's default_ member function.

Setting this to a nonzero integer value enables the default_ member function in the meta_type interface.

#define LAGOON_MT_WITH_DELETE   1

Enables the meta_type's delete_ member function.

Setting this to non-zero integral value enables the delete_ member function in the meta_type interface.

See also:
LAGOON_MT_WITH_NEW
LAGOON_MT_WITH_NEW_COPY
LAGOON_MT_WITH_MAKE_SHARED
LAGOON_MT_WITH_MAKE_UNIQUE
#define LAGOON_MT_WITH_IS_ARRAY   0

Enables the meta_type's is_array member function.

Setting this to a nonzero integer value enables the is_array member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_CONST   0

Enables the meta_type's is_const member function.

Setting this to a nonzero integer value enables the is_const member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_COPY_CONSTRUCTIBLE   0

Enables the meta_type's is_copy_constructible member function.

Setting this to a nonzero integer value enables the is_copy_constructible member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_DEFAULT_CONSTRUCTIBLE   0

Enables the meta_type's is_default_constructible member function.

Setting this to a nonzero integer value enables the is_default_constructible member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_POINTER   0

Enables the meta_type's is_pointer member function.

Setting this to a nonzero integer value enables the is_pointer member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_REFERENCE   0

Enables the meta_type's is_reference member function.

Setting this to a nonzero integer value enables the is_reference member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_IS_VOLATILE   0

Enables the meta_type's is_volatile member function.

Setting this to a nonzero integer value enables the is_volatile member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_MAKE_FACTORY   0

Enables the meta_type's make_factory member function.

Setting this switch to a non-zero value enables the meta_type's make_factory member function, which can be used to build factories creating instances of the type reflected by meta-type.

#define LAGOON_MT_WITH_MAKE_SHARED   0

Enables the meta_type's make_shared member function.

Setting this to a nonzero integer value enables the make_shared member function in the meta_type interface.

See also:
LAGOON_MT_WITH_MAKE_SHARED
LAGOON_MT_WITH_DELETE
#define LAGOON_MT_WITH_MAKE_UNIQUE   0

Enables the meta_type's make_unique member function.

Setting this to a nonzero integer value enables the make_unique member function in the meta_type interface.

See also:
LAGOON_MT_WITH_MAKE_SHARED
LAGOON_MT_WITH_DELETE
#define LAGOON_MT_WITH_NEW   1

Enables the meta_type's new_ member function.

Setting this to non-zero integral value enables the new_ member function in the meta_type interface.

See also:
LAGOON_MT_WITH_NEW_COPY
LAGOON_MT_WITH_DELETE
LAGOON_MT_WITH_MAKE_SHARED
LAGOON_MT_WITH_MAKE_UNIQUE
#define LAGOON_MT_WITH_NEW_COPY   0

Enables the meta_type's new_copy member function.

Setting this to non-zero integral value enables the new_copy member function in the meta_type interface.

See also:
LAGOON_MT_WITH_NEW
LAGOON_MT_WITH_DELETE
LAGOON_MT_WITH_MAKE_SHARED
LAGOON_MT_WITH_MAKE_UNIQUE
#define LAGOON_MT_WITH_REMOVE_CONST   0

Enables the meta_type's remove_const member function.

Setting this to a nonzero integer value enables the remove_const member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_REMOVE_CV   0

Enables the meta_type's remove_cv member function.

Setting this to a nonzero integer value enables the remove_cv member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_REMOVE_EXTENT   0

Enables the meta_type's remove_extent member function.

Setting this to a nonzero integer value enables the remove_extent member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_REMOVE_POINTER   0

Enables the meta_type's remove_pointer member function.

Setting this to a nonzero integer value enables the remove_pointer member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_REMOVE_REFERENCE   0

Enables the meta_type's remove_reference member function.

Setting this to a nonzero integer value enables the remove_reference member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_MT_WITH_REMOVE_VOLATILE   0

Enables the meta_type's remove_volatile member function.

Setting this to a nonzero integer value enables the remove_volatile member function in the meta_type interface.

See also:
LAGOON_ALL_TYPE_TRAITS
#define LAGOON_NO_ENUM_MEMBERS   0

Disables the enum values traversal via members()

If this is defined as zero then enumeration value can be iterated. Otherwise the members() function for meta-enum returns an empty range. This, however does not disable the meta-enum's size, value, value_by_name, name_by_value, etc. member functions.

Setting this to a non-zero value can improve compilation times if this manner of enum value traversal is not needed.

#define LAGOON_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.


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.