Mirror reflection library - Rubber type-erasure utility 0.5.13
Namespaces | Defines | Functions

rubber/wrap.hpp File Reference

Compile-time meta-object wrappers. More...

#include <rubber/config.hpp>
#include <puddle/categories.hpp>
Include dependency graph for wrap.hpp:

Go to the source code of this file.

Namespaces

namespace  rubber
 

The Rubber type-erasure utility for the Mirror meta-objects is defined in this namespace.


Defines

#define RUBBER_HELPER_MAKE_TAG_TO_META_OBJECT_MAP(OBJECT, I, X)

Functions

template<typename Wrapper >
puddle::meta_object_category rubber::categorize_wrapper (Wrapper *)
template<class TypeErased , class MirrorMetaObject >
aux::return_value< TypeErased >
::type 
rubber::wrap_into (const MirrorMetaObject &mo)
template<class MetaObjectTag , class MirrorMetaObject >
aux::return_value< typename
wrapper_by_tag< MetaObjectTag >
::type >::type 
rubber::wrap_by_tag (const MirrorMetaObject &mo)
template<class MirrorMetaObject >
aux::return_value< typename
wrapper_by_tag< typename
mirror::meta_object_category
< MirrorMetaObject >::type >
::type >::type 
rubber::wrap (void)
template<class MirrorMetaObject , class TypeErased >
aux::return_value< TypeErased >
::type 
rubber::wrap_shaped (void)

Detailed Description

Compile-time meta-object wrappers.

Copyright 2008-2011 Matus Chochlik. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Define Documentation

#define RUBBER_HELPER_MAKE_TAG_TO_META_OBJECT_MAP (   OBJECT,
  I,
 
)
Value:
class meta_ ## OBJECT; \
template <> \
struct wrapper_by_tag<mirror::meta_ ## OBJECT ## _tag> \
{ \
    typedef meta_ ## OBJECT type; \
}; \
template <> \
struct tag_by_wrapper<meta_ ## OBJECT> \
{ \
    typedef mirror::meta_ ## OBJECT ## _tag type; \
}; \

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.