![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Generator Directive Duplicating Attributes (duplicate[])Boost , Spirit 2.5.2 , Generator Directives
|
Имя |
---|
boost::spirit::duplicate //
alias: boost::spirit::karma::duplicate |
Notation
a
Объект генератора
A
Семантика выражения определяется только там, где она отличается от или не определена в UnaryGenerator
.
Выражение |
Семантика |
---|---|
duplicate[a] | duplicate
Директива дублирует заданный атрибут для всех элементов
генератора встроенной последовательности. Для всех других типов встроенных
генераторы не имеют эффекта. До тех пор, пока она встроена
генератор не терпит неудачу.
|
См. Сложная нотация атрибутов.
Выражение |
Атрибут |
---|---|
duplicate[a] |
a: A --> duplicate[a]: A a: tuple<A, A, ...> --> duplicate[a]: A a: Unused --> duplicate[a]: Unused
|
Если встроенный генератор директивы duplicate[]
представляет собой последовательность, ожидается, что все элементы этой последовательности выставляют либо один и тот же тип атрибута, совместимый тип атрибута, либо неиспользованный
. В этом случае директива duplicate[]
раскрывает тип атрибута своего первого элемента. Поведение директивы duplicate[]
не определено, если элементы встроенной последовательности не выставляют те же атрибуты. Скорее всего, соответствующее выражение не будет компилироваться.
Общая сложность директивы
duplicate[]
зависит от сложности встроенного генератора.
![]() | Note |
---|---|
Испытательный ремень для примера (примеров) ниже представлен в разделе Основные примеры. |
Некоторые включают:
#include <boost/spirit/include/karma.hpp> #include <boost/spirit/include/support_utree.hpp> #include <boost/spirit/include/phoenix_core.hpp> #include <boost/spirit/include/phoenix_operator.hpp> #include <boost/fusion/include/std_pair.hpp> #include <iostream> #include <string>
Некоторые используют декларации:
using boost::spirit::karma::double_; using boost::spirit::karma::duplicate; using boost::spirit::karma::space;
Базовое использование генераторов duplicate
:
test_generator_attr("2.02.0", duplicate[double_ << double_], 2.0); test_generator_attr_delim("2.0 2.0 ", duplicate[double_ << double_], space, 2.0);
Статья Generator Directive Duplicating Attributes (duplicate[]) раздела Spirit 2.5.2 Generator Directives может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Generator Directives ::
реклама |