Mirror reflection library 0.5.13
Namespaces | Defines

mirror/meta_meta_object.hpp File Reference

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>
Include dependency graph for meta_meta_object.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.

Detailed Description

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 Documentation

#define MIRROR_HLPR_IMPLEMENT_MMO_NAMES (   OBJECT,
  I,
 
)
Value:
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; \
};

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.