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

Attributes of Primitive Components

Boost , Spirit 2.5.2 , Attributes

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

Полностью отнесены парсеры и генераторы в Spirit. Spirit.Qi парсеры всегда экспонируют атрибут, специфичный для их типа. Это называется синтезированным атрибутом , поскольку он возвращается из успешного матча, представляющего согласованную входную последовательность. Например, числовые парсеры, такие как int_ или double_, возвращают значение int или double, преобразованное из согласованной входной последовательности. Другие примитивные парсерные компоненты имеют другие интуитивные типы атрибутов, такие как, например, int_, который имеет int, или ascii::char_, который имеет char. Для примитивных парсеров применяются обычные правила конвертируемости C++: вы можете использовать любой тип C++ для получения парсированного значения при условии, что тип атрибута парсера конвертируется в предоставленный тип. Следующий пример показывает, как синтезированный атрибут парсера (значение int) извлекается путем вызова функции API qi::parse:

int value = 0;
std::string str("123");
std::string::iterator strbegin = str.begin();
qi::parse(strbegin, str.end(), int_, value);   // value == 123

Тип атрибута генератора определяет, какие типы данных этот генератор способен потреблять для того, чтобы производить свой выход. Spirit.Karma Генераторы всегда Ожидают атрибут, специфичный для их типа. Это называется потребляемый атрибут и, как ожидается, будет передан генератору. Потребляемый атрибут - это большую часть времени значение, для которого генератор предназначен для выделения выходной мощности. Для примитивных генераторов применяются обычные правила конвертируемости C++. Любой тип данных, конвертируемый в тип атрибута примитивного генератора, может быть использован для предоставления данных для генерации. Приведем аналогичный пример, приведенный выше, на этот раз потребленный атрибут генератора int_ (значение int) передается функции API karma::generate:

int value = 123;
std::string str;
std::back_insert_iterator<std::string> out(str);
karma::generate(out, int_, value);                // str == "123"

Другие примитивные компоненты генератора имеют другие интуитивные типы атрибутов, очень похожие на соответствующие компоненты парсера. Например, генератор ascii::char_ имеет char в качестве потребляемого атрибута. Полный список доступных примитивов парсера и генератора и их типов атрибутов см. в разделах Qi Parsers и Karma Generators.


PrevUpHomeNext

Статья Attributes of Primitive Components раздела Spirit 2.5.2 Attributes может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Attributes ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 03:10:05/0.0055291652679443/1