![]() |
![]() ![]() ![]() ![]() |
![]() |
Iterator Based Generator APIBoost , Spirit 2.5.2 , Generator API
|
|||||||||||||||||||||||||||||
|
Имя |
|---|
< |
< |
< |
< |
namespace boost { namespace spirit { namespace karma { template <typename OutputIterator, typename Expr> inline bool generate( OutputIterator& sink , Expr const& expr); template <typename OutputIterator, typename Expr , typename Attr1, typename Attr2, ..., typename AttrN> inline bool generate( OutputIterator& sink , Expr const& expr , Attr1 const& attr1, Attr2 const& attr2, ..., AttrN const& attrN); template <typename OutputIterator, typename Expr, typename Delimiter> inline bool generate_delimited( OutputIterator& sink , Expr const& expr , Delimiter const& delimiter , BOOST_SCOPED_ENUM(delimit_flag) pre_delimit = delimit_flag::dont_predelimit); template <typename OutputIterator, typename Expr, typename Delimiter , typename Attr1, typename Attr2, ..., typename AttrN> inline bool generate_delimited( OutputIterator& sink , Expr const& expr , Delimiter const& delimiter , Attr1 const& attr1, Attr2 const& attr2, ..., AttrN const& attrN); template <typename OutputIterator, typename Expr, typename Delimiter , typename Attr1, typename Attr2, ..., typename AttrN> inline bool generate_delimited( OutputIterator& sink , Expr const& expr , Delimiter const& delimiter , BOOST_SCOPED_ENUM(delimit_flag) pre_delimit , Attr1 const& attr1, Attr2 const& attr2, ..., AttrN const& attrN); }}}
![]() |
Note |
|---|---|
Начиная сSpiritV2.5 (распределяется с Boost V1.47) заполнитель< |
Spirit.KarmaФункции генератора API, основанные на автоматическом создании соответствующего типа генератора:
namespace boost { namespace spirit { namespace karma { template <typename OutputIterator, typename Attr, typename Delimiter> inline bool generate_delimited( OutputIterator& sink , Attr const& attr , Delimiter const& delimiter , BOOST_SCOPED_ENUM(delimit_flag) pre_delimit = delimit_flag::dont_predelimit); template <typename OutputIterator, typename Attr> inline bool generate( OutputIterator& sink , Attr const& attr); }}}
Все функции выше возвращают<true>, если ни один из задействованных компонентов генератора не вышел из строя, и<false>в противном случае. Если в процессе генерации выходного потока базовый выходной поток сообщает об ошибке, то значение возврата также будет<false>.
Максимальное количество поддерживаемых аргументов ограничено константой препроцессора<SPIRIT_ARGUMENTS_LIMIT>. Эта постоянная по умолчанию соответствует значению, определенному константой препроцессора<PHOENIX_LIMIT>(которая, в свою очередь, по умолчанию равна<10>).
![]() |
Note |
|---|---|
Вариадные функции с двумя или более атрибутами внутренне объединяют (постоянные) ссылки на все переданные атрибуты в< |
Функции<generate_delimited>, не принимающие явного<delimit_flag>, как один из их аргументов, не вызывают принятый делимитер, прежде чем начать генерировать выход из экспрессии генератора. Это можно сделать, используя другую версию этой функции при переходе<delimit_flag::predelimit>к соответствующему аргументу.
|
Параметр |
Описание |
|---|---|
< |
< |
< |
50 Выражение, которое может быть преобразовано в генератор кармы. |
< |
Генератор используется для разграничения вывода компонентов выражения. |
< |
Тип атрибута, используемый для создания соответствующего типа генератора. |
< |
Один или несколько атрибутов. |
Статья Iterator Based Generator API раздела Spirit 2.5.2 Generator API может быть полезна для разработчиков на c++ и boost.
:: Главная :: Generator API ::
реклама |