Mirror reflection library 0.5.13
|
Reflection of meta-objects. More...
#include <mirror/mirror_fwd.hpp>
#include <mirror/meta_object_tags.hpp>
#include <mirror/preprocessor.hpp>
#include <mirror/auxiliary/scoped_named.hpp>
#include <mirror/meta_prog/range.hpp>
#include <mirror/ct_string/basic_string.hpp>
Go to the source code of this file.
Namespaces | |
namespace | mirror |
All Mirror's types, classes, functions, etc. are defined in this namespace. | |
Defines | |
#define | MIRROR_HLPR_MAKE_META_OBJECT_NICE_NAME(OBJECT, PREFIX) PREFIX #OBJECT |
#define | MIRROR_HLPR_META_OBJECT_TAG(OBJECT, X) meta_ ## OBJECT ## _tag |
#define | MIRROR_HLPR_IMPLEMENT_MMO_NAMES(OBJECT, I, X) |
#define | MIRRORED_META_OBJECT(META_OBJECT) mirror::MetaMetaObject |
Reflects the meta_object passed as the META_OBJECT argument. |
Reflection of meta-objects.
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 MIRROR_HLPR_IMPLEMENT_MMO_NAMES | ( | OBJECT, | |
I, | |||
X | |||
) |
template <> \ struct meta_meta_object_base<meta_## OBJECT ##_tag> \ { \ protected: \ struct ctrt \ { \ MIRROR_IMPLEMENT_META_OBJECT_NAME_FUNCTIONS(#OBJECT) \ }; \ struct base \ { \ MIRROR_IMPLEMENT_META_OBJECT_NAME_FUNCTIONS( \ MIRROR_META_OBJECT_NICE_NAME( \ OBJECT, \ MIRROR_HLPR_MAKE_META_OBJECT_NICE_NAME, \ "Meta" \ ) \ ) \ };\ public: \ typedef mirror::mp::range< \ MIRROR_FOR_EACH_META_OBJECT_BASE( \ OBJECT, \ MIRROR_HLPR_META_OBJECT_TAG, \ _, \ MIRROR_PP_COMMA \ ) \ > gens; \ };