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

Alignment Generator Directives (left_align[], center[], right_align[])

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

Директивы выравнивания позволяют левому выравниванию, правому выравниванию или центральному выходу, испускаемому другими генераторами в колонны заданной ширины при использовании произвольного генератора для создания прокладки.

Header

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

// forwards to <boost/spirit/home/karma/directive/left_alignment.hpp>
#include <boost/spirit/include/karma_left_alignment.hpp>

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

// forwards to <boost/spirit/home/karma/directive/center_alignment.hpp>
#include <boost/spirit/include/karma_center_alignment.hpp>

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

// forwards to <boost/spirit/home/karma/directive/right_alignment.hpp>
#include <boost/spirit/include/karma_right_alignment.hpp>

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

Namespace

Имя

boost::spirit::left_align // alias: boost::spirit::karma::left_align

boost::::center //lias: boost::spirit::karma::center

boost::::right_align //lias: boost::spirit::karma::right_align

Model of

Notation

a

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

pad

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

A, Pad

Типы атрибутов генераторов a и pad

width

Буквальное число, любое неподписанное целочисленное значение или Ленивый аргумент , который оценивает неподписанное целочисленное значение

Expression Semantics

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

Выражение

Семантика

left_align[a

Генерировать a слева, выровненным в столбце ширины, как определено константой препроцессора BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании space для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенный генератор a не выходит из строя (если основной выходной поток не сообщает об ошибке).

left_align(ширина[3>a]

Генерировать a, выровненный в столбце данного ширина, при использовании пространство для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенный генератор a не выходит из строя (если основной выходной поток не сообщает об ошибке).

left_align(pad)[a]

Генерировать a слева, выровненным в столбце ширины, как определено константой препроцессора BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании генератора pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (за исключением случаев, когда основной выходной поток сообщает об ошибке).

left_align(width, pad][3>a]

Генерировать a слева, выровненным в столбце данного ширина, при использовании генератора pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (если основной выходной поток не сообщает об ошибке).

center[a

Генерировать a центрированным в столбце шириной, определяемой константой препроцессора BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании space для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенный генератор a не выходит из строя (если основной выходной поток не сообщает об ошибке).

center(width)[a]

Генерировать a центрированным в столбце данного ширина, при этом используя пространство для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенный генератор a не выходит из строя (если основной выходной поток не сообщает об ошибке).

center(pad[3>a]

Генерировать a центрированным в столбце шириной, определяемой константой препроцессора BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании генератора pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (за исключением случаев, когда основной выходной поток сообщает об ошибке).

центр(ширина, pad][3>a]

Генерировать a центрированным в столбце данного ширина, при этом используя генератор pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (если основной выходной поток не сообщает об ошибке).

right_align[a

a право выровнено в столбце ширины, как определено предпроцессором постоянная BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании space чтобы излучать необходимые падинги. Этот генератор работает так долго как его встроенный генератор a не потерпит неудачу (если только не основные отчеты потокового потока ошибка).

right_align(ширина[3>a]

Генерировать a правильно выровненным в столбце данного ширина, при этом используя пространство для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенный генератор a не выходит из строя (если основной выходной поток не сообщает об ошибке).

right_align(pad[3>a]

Генерировать a правильно выровненным в столбце ширины, как определено константой препроцессора BOOST_KARMA_DEFAULT_FIELD_LENGTH (по умолчанию: 10), при использовании генератора pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (за исключением случаев, когда основной выходной поток сообщает об ошибке).

right_align(ширина, pad][3>a]

Генерировать a правильно выровненным в колонке данного ширина, при этом используя генератор pad для испускания необходимой прокладки. Этот генератор работает до тех пор, пока его встроенные и накладные генераторы a и pad не выходят из строя (если основной выходной поток не сообщает об ошибке).

[Note]Note

Ни одна из перечисленных выше директив генератора не ограничивает испускаемый выход до соответствующей ширины колонки. Если испускаемый выход длиннее указанной (или подразумеваемой) ширины колонки, генерируемый выход переполняет колонку вправо.

Если выход должен быть ограничен заданной шириной столбца, используйте директиву maxwidth[], например:

maxwidth(8)[right_align(12)["1234567890"]]

которые будут производиться (без котировок):

"  123456"

Attributes

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

Выражение

Атрибут

left_align[3>

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

left_align(width]

a: A --> left_align(width)[a]: A
a: Unused --> left_align(width)[a]: Unused

left_align(pad]

a: A, pad: Pad --> left_align(pad)[a]: A
a: Unused, pad: Pad --> left_align(pad)[a]: Unused

left_align(pad, ширина][]

a: A, pad: Pad --> left_align(pad, width)[a]: A
a: Unused, pad: Pad --> left_align(pad, width)[a]: Unused

a: A, pad: Pad --> left_align(pad, width)[a]: A
a: Unused, pad: Pad --> left_align(pad, width)[a]: Unused

[ORIG_END] -->

центр[3>

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

центр(ширина)[]

a: A --> center(width)[a]: A
a: Unused --> center(width)[a]: Unused

a: A --> center(width)[a]: A
a: Unused --> center(width)[a]: Unused

[ORIG_END] -->
center(pad)[]

a: A, pad: Pad --> center(pad)[a]: A
a: Unused, pad: Pad --> center(pad)[a]: Unused

a: A, pad: Pad --> center(pad)[a]: A
a: Unused, pad: Pad --> center(pad)[a]: Unused

[ORIG_END] -->

центр(pad, ширина][]

a: A, pad: Pad --> center(pad, width)[a]: A
a: Unused, pad: Pad --> center(pad, width)[a]: Unused

a: A, pad: Pad --> center(pad, width)[a]: A
a: Unused, pad: Pad --> center(pad, width)[a]: Unused

[ORIG_END] -->

right_align[3>

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

right_align(ширина]

a: A --> right_align(width)[a]: A
a: Unused --> right_align(width)[a]: Unused

right_align(pad]

a: A, pad: Pad --> right_align(pad)[a]: A
a: Unused, pad: Pad --> right_align(pad)[a]: Unused

right_align(pad, width)[]

a: A, pad: Pad --> right_align(pad, width)[a]: A
a: Unused, pad: Pad --> right_align(pad, width)[a]: Unused

a: A, pad: Pad --> right_align(pad, width)[a]: A
a: Unused, pad: Pad --> right_align(pad, width)[a]: Unused

[ORIG_END] -->
Complexity

Общая сложность директивы генератора выравнивания определяется сложностью его встроенного и навесного генератора. Сложность самого генератора директив левого выравнивания O(1). Сложность генераторов директив центра и правильного выравнивания O(N), где N - количество символов, излучаемых встроенными и накладными генераторами.

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::left_align;
using boost::spirit::karma::center;
using boost::spirit::karma::right_align;

Базовое использование генераторов выравнивания:

std::pair<double, double> p (1.0, 2.0);
test_generator_attr("1.0     |2.0", left_align(8)[double_] << '|' << double_, p);
test_generator_attr("   1.0  |2.0", center(8)[double_] << '|' << double_, p);
test_generator_attr("     1.0|2.0", right_align(8)[double_] << '|' << double_, p);


PrevUpHomeNext

Статья Alignment Generator Directives (left_align[], center[], right_align[]) раздела Spirit 2.5.2 Generator Directives может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 21:53:22/0.0087399482727051/0