![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Transform an Attribute to a Different Type (Qi and Karma)Boost , Spirit 2.5.2 , Customization of Spirit's Attribute Handling
|
![]() |
Note |
---|---|
Интерфейс этой точки настройки был изменен с помощью Boost V1.44. Мы добавили< |
#include <boost/spirit/home/support/attributes.hpp>
См. такжеВключить структуру.
![]() |
Note |
---|---|
Этот файл заголовка не должен быть включен непосредственно какой-либо пользовательской программой, поскольку он обычно включается другими файлами заголовка Spirit, основанными на его содержании. |
Имя |
---|
< |
template <typename Exposed, typename Transformed, typename Domain, typename Enable> struct transform_attribute { typedef <unspecified> type; static type pre(Exposed& val); static void post(Exposed& val, type attr); // Qi only static void fail(Exposed&); // Qi only };
Параметр |
Описание |
по умолчанию |
---|---|---|
< |
Тип атрибута подается на компонент, который должен быть преобразован. |
Нет |
< |
Тип атрибута, ожидаемый компонентом в результате преобразования. |
Нет |
< |
Домен подбиблиотеки шаблон инстанцируется в. Обычно это либо< |
Нет |
< |
Параметр шаблона помощника, используемый для выборочного включения или отключения определенных специализаций< |
< |
Notation
Exposed
Тип<Exposed
>является типом атрибута, переданного пользователем.
Transformed
<Transformed
>— тип атрибута, передаваемого в правую сторону<rule
>(встроенный компонент<attr_cast
>).
Domain
Домен подбиблиотеки шаблон инстанцируется в. Как правило, это<qi::domain
>или<karma::domain
>.
exposed
Пример типа<Exposed
>.
transformed
Пример типа<Transformed
>.
выражение |
Семантика |
---|---|
< |
Оценивает тип, который будет использоваться в результате преобразования (для передачи на правую сторону< |
<typetransform_attribute<Exposed,Transformed,Domain>::pre(exposed)> |
Делайте< |
<voidtransform_attribute<Exposed,Transformed,Domain>::post(exposed,transformed)> |
Do< |
<voidtransform_attribute<Exposed,Transformed,Domain>::fail(exposed)> |
Обработка неисправных операций разбора правого бокового компонента для< |
Параметры шаблона |
Семантика |
---|---|
< |
< |
< |
< |
< |
< |
< |
< |
< |
(вКарматолько)< |
< |
(вКарматолько)< |
< |
(вКарматолько)< |
< |
< |
< |
< |
Точка настройки<transform_attribute
>должна быть реализована для конкретной пары типов, когда тип атрибута, поставляемый в<rule
>или<attr_cast
>, не может автоматически трансформироваться в тип атрибута, ожидаемый правой стороной<rule
>(встроенный компонент<attr_cast
>), поскольку реализация по умолчанию, как показано выше, не применима. Примером может служить то, что тип<Transformed
>не может быть построен из типа<Exposed
>.
Статья Transform an Attribute to a Different Type (Qi and Karma) раздела Spirit 2.5.2 Customization of Spirit's Attribute Handling может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Customization of Spirit's Attribute Handling ::
реклама |