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

Lazy Generator (lazy)

Boost , Spirit 2.5.2 , Auxiliary Generators

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

Семейство компонентов<lazy>позволяет использовать динамически возвращаемый компонент генератора для генерации выходных данных. Он называет предоставленную функцию или объект функции в момент генерации, используя его возвращаемое значение в качестве фактического генератора для получения вывода.

Header
// forwards to <boost/spirit/home/karma/auxiliary/lazy.hpp>
#include <boost/spirit/include/karma_lazy.hpp>

См. такжеВключите структуру.

Namespace

Имя

<boost::spirit::lazy// alias: boost::spirit::karma::lazy>

Model of

Notation

fg

Функция или объект функции, который оценивает объект генератора (объект, подвергающий).<Generator>. Эта функция будет задействована во время генерации.

Подпись<fg>ожидается

G f(Unused, Context)

где<G>, возвращаемое значение функции, является типом генератора, на который следует ссылаться, и<Context>является типом контекста генератора (первый аргумент<unused>, чтобы сделать<Context>вторым аргументом). Это делается для единообразиясемантических действий.

Expression Semantics

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

выражение

Семантика

<fg>

Объект функцииBoost.Phoenix<fg>будет вызываться во время генерации. Ожидается возврат экземпляра генератора. Затем этот генератор вызывается для того, чтобы генерировать выход. Этот генератор будет иметь успех до тех пор, пока вызываемый генерируемый также преуспевает (если основной выходной поток не сообщает об ошибке).

<lazy(fg)>

Функция или объект функции будут вызываться во время генерации. Ожидается, что он вернет экземпляр генератора (обратите внимание, что эта версия<lazy>не требует<fg>бытьобъектом функции Boost.Phoenix). Затем этот генератор вызывается для того, чтобы генерировать выход. Этот генератор будет иметь успех до тех пор, пока сгенерированный результат также будет успешным (за исключением случаев, когда основной выходной поток сообщает об ошибке).

Attributes

выражение

атрибут

<fg>

Тип атрибута<G>, выставленный генератором<g>, вернулся из<fg>

.

<lazy(fg)>

Тип атрибута<G>, выставленный генератором<g>, вернулся из<fg>

.
Complexity

Сложность компонента<lazy>определяется сложностью генератора, возвращаемого из<fg>.

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>

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

namespace karma = boost::spirit::karma;
using boost::spirit::karma::_1;
using boost::spirit::ascii::string;
using boost::phoenix::val;

Использование генератора<lazy>:

test_generator_attr("abc", karma::lazy(val(string)), "abc");
test_generator("abc", karma::lazy(val(string))[_1 = "abc"]);


PrevUpHomeNext

Статья Lazy Generator (lazy) раздела Spirit 2.5.2 Auxiliary Generators может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Auxiliary Generators ::


реклама


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

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