Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Macro BOOST_TTI_TRAIT_HAS_TEMPLATE

Boost , Chapter 1. The Type Traits Introspection Library , Header <boost/tti/has_template.hpp>

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Macro BOOST_TTI_TRAIT_HAS_TEMPLATE

BOOST_TTI_TRAIT_HAS_TEMPLATE — Expands to a metafunction which tests whether an inner class template with a particular name exists.

Synopsis

// In header: <boost/tti/has_template.hpp>
BOOST_TTI_TRAIT_HAS_TEMPLATE(trait, ...)

Description

trait = название метафункции. ... = переменные параметры. Первый вариадный параметр — это название шаблона внутреннего класса. Следующие вариадные параметры являются необязательными. Если не существует следующих вариадных параметров, то интроспектируемым шаблоном внутреннего класса должны быть все параметры типа шаблона (параметры шаблона, начинающиеся с «класса» или «имя типа»), и может произойти любое количество параметров типа шаблона. Если второй вариадный параметр является BOOST_PP_NIL и не указан другой вариадный параметр, то, как и в предыдущем случае, интроспектируемый шаблон внутреннего класса должен иметь все параметры типа шаблона (параметры шаблона, начинающиеся с «класса» или «имя типа»), и может произойти любое количество параметров типа шаблона. Эта форма допускается для согласования с использованием невариадной формы этого макроса. Если второй вариадный параметр представляет собой массив библиотеки предварительного процессора Boost, и никакой другой вариадный параметр не дается, то шаблон внутреннего класса должен иметь свои шаблонные параметры, соответствующие последовательности в кортежной части массива Boost PP. Эта форма допускается для согласования с использованием невариадной формы этого макроса. В противном случае шаблон внутреннего класса должен иметь свои шаблонные параметры, соответствующие последовательности необязательных вариадных параметров.

Он генерирует метафункцию, называемую чертой, где черта является первым макропараметром. шаблонstruct trait { static const value = unspecified; typedef mpl::bool_type; }; Типы метафункций и возврат: BOOST_TTI_TP_T = прилагаемый тип, в котором искать наше «имя». возврат = «значение» является истинным, если шаблон «имя» существует в прилагаемом типе, в противном случае «значение» является ложным.

Примеры:

1) Поиск шаблона внутреннего класса под названием "MyTemplate" со всеми параметрами типов шаблонов, вложенных в класс "MyClass" с использованием метафункции "MyMeta".

BOOST_TTI_TRAIT_HAS_TEMPLATE (MyMeta, MyTemplate)

или

BOOST_TTI_TRAIT_HAS_TEMPLATE(MyMeta,MyTemplate,BOOST_PP_NIL) // Невариадная макроформа

MyMeta::value

Это составная временная булева постоянная, которая является либо «истинной», либо «ложной», если вложенный шаблон существует.

2) Поиск шаблона внутреннего класса под названием "MyTemplate" с параметрами шаблона "class T,int x,templateclass U", вложенного в класс "MyClass" с использованием метафункционального названия "MyMeta".

BOOST_TTI_TRAIT_HAS_TEMPLATE(MyMeta,MyTemplate,class,int,templateclass)

или

BOOST_TTI_TRAIT_HAS_TEMPLATE(MyMeta,MyTemplate,(3,(class,int,templateclass))) // Невариадная макроформа

MyMeta::value

Это составная временная булева постоянная, которая является либо «истинной», либо «ложной», если вложенный шаблон существует.


PrevUpHomeNext

Статья Macro BOOST_TTI_TRAIT_HAS_TEMPLATE раздела Chapter 1. The Type Traits Introspection Library Header <boost/tti/has_template.hpp> может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Header <boost/tti/has_template.hpp> ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 06:45:58/0.0036830902099609/0