|
Mirror reflection library 0.5.13
|
Boolean meta-function checking if a MetaObject is a model of a specified concept. More...
#include <mirror/meta_prog/forward_decl.hpp>#include <mirror/meta_prog/not.hpp>#include <type_traits>
Go to the source code of this file.
Classes | |
| struct | mirror::mp::is_a< MetaObject, Concept > |
| Returns a boolean constant based on whether the MetaObject is the Concept. More... | |
| struct | mirror::mp::is_not_a< MetaObject, Concept > |
| Returns a boolean constant based on whether the MetaObject isn't the Concept. More... | |
Namespaces | |
| namespace | mirror |
All Mirror's types, classes, functions, etc. are defined in this namespace. | |
| namespace | mirror::mp |
Contains the meta-programming utilities. | |
Defines | |
| #define | MIRROR_ASSERT_IS_A_META(OBJECT, EXPR, NAME) |
| #define | MIRROR_ASSERT_RETURNS_META(OBJECT, X) MIRROR_ASSERT_IS_A_META(OBJECT, typename X::type, X) |
Functions | |
| void * | mirror::mp::aux::is_a_hlpr_fn (...) |
| template<typename X > | |
| void * | mirror::mp::aux::is_a_hlpr_fn2 (X *, X *) |
| template<typename X , typename Y > | |
| X::type | mirror::mp::aux::is_a_hlpr_fn2 (X *, Y *) |
| template<typename X > | |
| auto | mirror::mp::aux::is_a_hlpr_fn (X *x, typename X::type *y=nullptr)-> decltype(is_a_hlpr_fn2(x |
Variables | |
| auto | mirror::mp::aux::y |
Boolean meta-function checking if a MetaObject is a model of a specified concept.
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_ASSERT_IS_A_META | ( | OBJECT, | |
| EXPR, | |||
| NAME | |||
| ) |
static_assert( \
mirror::mp::is_a< \
EXPR, \
typename mirror::meta_##OBJECT##_tag \
>::value, \
#NAME " is not a Meta" \
MIRROR_META_OBJECT_NICE_NAME_STR(OBJECT) \
" expression" \
)