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" \ )