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

Generator Directive Duplicating Attributes (duplicate[])

Boost , Spirit 2.5.2 , Generator Directives

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
Description

Директива duplicate[] дублирует свой атрибут на все элементы встроенного генератора, если это генератор последовательностей. В противном случае он ничего не делает.

Header
// forwards to <boost/spirit/home/karma/directive/duplicate.hpp>
#include <boost/spirit/include/karma_duplicate.hpp>

Кроме того, см. Включить структуру .

Имя

boost::spirit::duplicate // alias: boost::spirit::karma::duplicate

Model of

Notation

a

Объект генератора

A

Expression Semantics

Семантика выражения определяется только там, где она отличается от или не определена в UnaryGenerator.

Выражение

Семантика

duplicate[a]

duplicate Директива дублирует заданный атрибут для всех элементов генератора встроенной последовательности. Для всех других типов встроенных генераторы не имеют эффекта. До тех пор, пока она встроена генератор не терпит неудачу.

Attributes

См. Сложная нотация атрибутов.

Выражение

Атрибут

duplicate[a]

a: A --> duplicate[a]: A
a: tuple<A, A, ...> --> duplicate[a]: A
a: Unused --> duplicate[a]: Unused

Если встроенный генератор директивы duplicate[] представляет собой последовательность, ожидается, что все элементы этой последовательности выставляют либо один и тот же тип атрибута, совместимый тип атрибута, либо неиспользованный . В этом случае директива duplicate[] раскрывает тип атрибута своего первого элемента. Поведение директивы duplicate[] не определено, если элементы встроенной последовательности не выставляют те же атрибуты. Скорее всего, соответствующее выражение не будет компилироваться.

Complexity

Общая сложность директивы duplicate[] зависит от сложности встроенного генератора.

Example
[Note]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);


PrevUpHomeNext

Статья Generator Directive Duplicating Attributes (duplicate[]) раздела Spirit 2.5.2 Generator Directives может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Generator Directives ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:09:19/0.0089869499206543/1