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

Generator Directives Controlling Automatic Delimiting (verbatim[], no_delimit[], delimit[])

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

Директивы delimit[], no_delimit[] и verbatim[] могут использоваться для управления автоматическим разграничением. Директивы дословно [] и no_delimit[] отключают любое автоматическое разграничение, в то время как директива delimit[] (re-) обеспечивает автоматическое разграничение.

Header

Для директивы дословно[]:

// forwards to <boost/spirit/home/karma/directive/verbatim.hpp>
#include <boost/spirit/include/karma_verbatim.hpp>

Для директивы no_delimit[]:

// forwards to <boost/spirit/home/karma/directive/no_delimit.hpp>
#include <boost/spirit/include/karma_no_delimit.hpp>

Для директивы delimit[]:

// forwards to <boost/spirit/home/karma/directive/delimit.hpp>
#include <boost/spirit/include/karma_delimit.hpp>

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

Namespace

Имя

boost::spirit::verbatim // alias: boost::spirit::karma::verbatim

boost::spirit::no_delimit // alias: boost::spirit::karma::no_delimit

boost::spirit::delimit // alias: boost::spirit::karma::delimit

Model of

Notation

a

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

d

Объект-генератор или Ленивый аргумент , который оценивает объект-генератор

A, D

Expression Semantics

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

Выражение

Семантика

delimit[a]

Включить автоматическое разграничение для встроенного генератора a при использовании генератора пространства в качестве разграничительного генератора. Если используется внутри директивы дословно [], то вместо этого используется генератор делимитера дословно []. Директива работает до тех пор, пока встроенный генератор работает (если основной выходной поток не сообщает об ошибке).

delimit(d)[a]

verbatim[a]

no_delimit[a

Отключить автоматическое разграничение для встроенного генератора a. Директива работает до тех пор, пока встроенный генератор работает (если основной выходной поток не сообщает об ошибке). Эта директива не имеет никакого эффекта, если она используется, когда никакое разграничение не является активным. При активном разграничении эта директива не выполняет постделимитный шаг (который отличается от поведения дословно [].

Attributes

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

Выражение

Атрибут

delimit[a]

a: A --> delimit[a]: A
a: Unused --> delimit[a]: Unused

a: A --> delimit[a]: A
a: Unused --> delimit[a]: Unused

[ORIG_END] -->
delimit(d)[a]

a: A, d: D --> delimit(d)[a]: A
a: Unused, d: D --> delimit(d)[a]: Unused

a: A, d: D --> delimit(d)[a]: A
a: Unused, d: D --> delimit(d)[a]: Unused

[ORIG_END] -->
verbatim[a]

a: A --> verbatim[a]: A
a: Unused --> verbatim[a]: Unused

no_delimit[a

a: A --> no_delimit[a]: A
a: Unused --> no_delimit[a]: Unused

a: A --> no_delimit[a]: A
a: Unused --> no_delimit[a]: Unused

[ORIG_END] -->
Complexity

Общая сложность директив генератора delimit[], verbatim[] и no_delimit[] определяется сложностью его встроенных генераторов. Сложность самих директив — O(1).

Example
[Note]Note

Испытательный ремень для примера (примеров) ниже представлен в разделе Основные примеры.

Некоторые включают:

#include <boost/spirit/include/karma.hpp>
#include <iostream>
#include <string>

Некоторые используют декларации:

using boost::spirit::karma::double_;
using boost::spirit::karma::delimit;
using boost::spirit::karma::verbatim;

Основное использование директивы генератора delimit:

test_generator_attr("[ 2.0 , 4.3 ] ",
    delimit['[' << double_ << ',' << double_ << ']'], 2.0, 4.3);
test_generator_attr("[*2.0*,*4.3*]*",
    delimit('*')['[' << double_ << ',' << double_ << ']'], 2.0, 4.3);
test_generator_attr("[2.0, 4.3 ] ",
    delimit[verbatim['[' << double_ << ','] << double_ << ']'], 2.0, 4.3);


PrevUpHomeNext

Статья Generator Directives Controlling Automatic Delimiting (verbatim[], no_delimit[], delimit[]) раздела Spirit 2.5.2 Generator Directives может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:34:15/0.0070991516113281/0