Mirror reflection library - Lagoon run-time layer 0.5.13
|
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>
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) |
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 LAGOON_HELPER_MAKE_IS_SPEC_GROUP_FN_true | ( | KIND | ) |
bool is_ ## KIND ## _spec(void) \ { \ return is_a(specifier_category::spec_##KIND##_tag); \ }
#define LAGOON_HELPER_MAKE_SPEC_KIND_INTF_true | ( | KIND | ) |
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, | |
X | |||
) |
bool is_ ## SPEC(void) \ { \ return is_a(specifier_category::spec_## SPEC ##_tag);\ }