![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_DEFBoost , ,
|
Front Page / Macros / Introspection / BOOST_MPL_HAS_XXX_TRAIT_DEF |
#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \ unspecified token sequence \ /**/
Расширяется в определение булевой унарМетафункцияимеет имяДля любого типаxимеет_имя< ;x>::value==Правдаесли и только еслихявляется классным типом и имеет вложенный тип мембераx:: Имя.
На неполноценных компиляторах, не имеющих возможности выполнить обнаружение,имеет_name
[править]Примечание:BOOST_MPL_HAS_XXX_TRAIT_DEF- упрощенный передний конецBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEFмакрос интроспекции —конец примечания
#include <boost/mpl/has_xxx.hpp>
Parameter | Requirement | Description |
---|---|---|
Имя | Юридический идентификатор Token | Имя члена обнаружено. |
Для любого юридического идентификатора C++имя:
BOOST_MPL_HAS_XXX_TRAIT_DEF(name)
Precondition: | Appears at namespace scope. |
---|---|
Return type: | None. |
Semantics: | Equivalent to BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF( BOOST_PP_CAT(has_,name), name, false ) |
BOOST_MPL_HAS_XXX_TRAIT_DEF(xxx) struct test1 {}; struct test2 { void xxx(); }; struct test3 { int xxx; }; struct test4 { static int xxx(); }; struct test5 { template< typename T > struct xxx {}; }; struct test6 { typedef int xxx; }; struct test7 { struct xxx; }; struct test8 { typedef void (*xxx)(); }; struct test9 { typedef void (xxx)(); }; BOOST_MPL_ASSERT_NOT(( has_xxx<test1> )); BOOST_MPL_ASSERT_NOT(( has_xxx<test2> )); BOOST_MPL_ASSERT_NOT(( has_xxx<test3> )); BOOST_MPL_ASSERT_NOT(( has_xxx<test4> )); BOOST_MPL_ASSERT_NOT(( has_xxx<test5> )); #if !defined(BOOST_MPL_CFG_NO_HAS_XXX) BOOST_MPL_ASSERT(( has_xxx<test6> )); BOOST_MPL_ASSERT(( has_xxx<test7> )); BOOST_MPL_ASSERT(( has_xxx<test8> )); BOOST_MPL_ASSERT(( has_xxx<test9> )); #endif BOOST_MPL_ASSERT(( has_xxx<test6,true_> )); BOOST_MPL_ASSERT(( has_xxx<test7,true_> )); BOOST_MPL_ASSERT(( has_xxx<test8,true_> )); BOOST_MPL_ASSERT(( has_xxx<test9,true_> ));
Статья The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_DEF раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |