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

Compound Attribute Rules

Boost , Spirit 2.5.2 , Quick Reference

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
Notation

Используемая нами нотация имеет вид:

a: A, b: B, ... --> composite-expression: composite-attribute

<a>,<b>и т.д. — операнды.<A>,<B>и т.д. являются атрибутами операнда.<composite-expression>является выражением, включающим операнды, и<composite-attribute>является результирующим типом атрибута составного выражения.

Например:

a: A, b: B --> (a << b): tuple<A, B>

<a>и<b>являются генераторами,<A>является типом атрибута<a>, и<B>является типом атрибута<b>, тогда тип атрибута<a<< b>будет<tuple<A,B>>.

[Important] Important

В таблицах атрибутов мы будем использовать<vector<A>>и<tuple<A,B...>>только в качестве заполнителей. Нотация<vector<A>>означаетлюбойSTLконтейнер, удерживающий элементы типа<A>, а нотация<tuple<A,B...>>означаетлюбойBoost.Fusionпоследовательность, удерживающий<A>,<B>и т.д. элементы.<variant<A,B,...>>обозначаетBoost.Variant, способный удерживать<A>,<B>, ... и т.д. элементы. И, наконец,<Unused>означает<unused_type>.

Compound Generator Attribute Types

выражение

атрибут

Последовательность<<<><a<< b>

<
a:A,b:B-->(a<<b):tuple<A,B>
a:A,b:Unused-->(a<<b):A
a:Unused,b:B-->(a<<b):B
a:Unused,b:Unused-->(a<<b):Unused
a:A,b:A-->(a<<b):vector<A>
a:vector<A>,b:A-->(a<<b):vector<A>
a:A,b:vector<A>-->(a<<b):vector<A>
a:vector<A>,b:vector<A>-->(a<<b):vector<A>
>

Альтернатива<|><a| b>

<
a:A,b:B-->(a|b):variant<A,B>
a:A,b:Unused-->(a|b):A
a:Unused,b:B-->(a|b):B
a:Unused,b:Unused-->(a|b):Unused
a:A,b:A-->(a|b):A
>

Клин<*a>

<
a:A-->*a:vector<A>
a:Unused-->*a:Unused
>

Плюс<+><+a>

<
a:A-->+a:vector<A>
a:Unused-->+a:Unused
>

Список<%><a %b>

<
a:A,b:B-->(a%b):vector<A>
a:Unused,b:B-->(a%b):Unused
>

Повторение<repeat[]>

<
a:A-->repeat(...,...)[a]:vector<A>
a:Unused-->repeat(...,...)[a]:Unused
>

Факультативный<-><-a>

<
a:A-->-a:optional<A>
a:Unused-->-a:Unused
>

И предикат (унар.<&>)<&a>

<a: A--> &a:A>

Не предикат (унар.<!>)<!a>

<a: A--> !a:A>


PrevUpHomeNext

Статья Compound Attribute Rules раздела Spirit 2.5.2 Quick Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Quick Reference ::


реклама


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

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