Mirror reflection library - Lagoon run-time layer 0.5.13
Classes | Namespaces | Defines

lagoon/specifiers.hpp File Reference

Definitions of the specifiers and categorization tag values. More...

#include <lagoon/lagoon_fwd.hpp>
#include <lagoon/auxiliary/fwd.hpp>
#include <lagoon/utils.hpp>
#include <puddle/specifiers.hpp>
#include <mirror/specifier_tags.hpp>
#include <mirror/preprocessor.hpp>
Include dependency graph for specifiers.hpp:

Go to the source code of this file.

Classes

struct  lagoon::specifier
 Common base interface for various specifiers. More...

Namespaces

namespace  lagoon
 

The Lagoon run-time layer built on Mirror is defined in this namespace.


Defines

#define LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN_false(KIND)
#define LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN_true(KIND)
#define LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN(SPEC, KW, GRP, I, X)   LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN_##GRP(SPEC)
#define LAGOON_HELPER_MAKE_SPEC_KIND_IS_X_FN(SPEC, X)
#define LAGOON_HELPER_MAKE_SPEC_KIND_INTF_false(KIND)
#define LAGOON_HELPER_MAKE_SPEC_KIND_INTF_true(KIND)
#define LAGOON_HELPER_MAKE_SPEC_KIND_INTF(SPEC, KW, GRP, I, X)   LAGOON_HELPER_MAKE_SPEC_KIND_INTF_##GRP(SPEC)

Detailed Description

Definitions of the specifiers and categorization tag values.

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 LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN_true (   KIND)
Value:
bool is_ ## KIND ## _spec(void) \
    { \
        return is_a(specifier_category::spec_##KIND##_tag); \
    }
#define LAGOON_HELPER_MAKE_SPEC_KIND_INTF_true (   KIND)
Value:
struct KIND ## _specifier : public specifier \
{ \
private: \
    template <typename Specifier, typename Interface> \
    friend shared<Interface> aux::get_##KIND##_spec(void);\
\
    template <class Specifier> \
    KIND ## _specifier(Specifier spec) \
     : specifier(spec) \
    { } \
public: \
    MIRROR_FOR_EACH_SPECIFIER_TYPE( \
        KIND, \
        LAGOON_HELPER_MAKE_SPEC_KIND_IS_X_FN, \
        0, \
        MIRROR_PP_EMPTY \
    ) \
};
#define LAGOON_HELPER_MAKE_SPEC_KIND_IS_X_FN (   SPEC,
 
)
Value:
bool is_ ## SPEC(void) \
    { \
        return is_a(specifier_category::spec_## SPEC ##_tag);\
    }

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.