![]() |
![]() ![]() ![]() ![]() |
![]() |
Lazy Generator (lazy)Boost , Spirit 2.5.2 , Auxiliary Generators
|
|||||||||||||||||||||||
|
Имя |
|---|
< |
Notation
fgФункция или объект функции, который оценивает объект генератора (объект, подвергающий).<Generator>. Эта функция будет задействована во время генерации.
Подпись<fg>ожидается
G f(Unused, Context)
где<G>, возвращаемое значение функции, является типом генератора, на который следует ссылаться, и<Context>является типом контекста генератора (первый аргумент<unused>, чтобы сделать<Context>вторым аргументом). Это делается для единообразиясемантических действий.
Семантика выражения определяется только там, где она отличается от или не определена в<Generator>.
|
выражение |
Семантика |
|---|---|
< | Объект функцииBoost.Phoenix< |
< | Функция или объект функции будут вызываться во время генерации. Ожидается, что он вернет экземпляр генератора (обратите внимание, что эта версия< |
|
выражение |
атрибут |
|---|---|
< | Тип атрибута< |
< | Тип атрибута< |
Сложность компонента<lazy>определяется сложностью генератора, возвращаемого из<fg>.
![]() | 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"]);
Статья Lazy Generator (lazy) раздела Spirit 2.5.2 Auxiliary Generators может быть полезна для разработчиков на c++ и boost.
:: Главная :: Auxiliary Generators ::
реклама |