Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards



Boost.Phoenix makes it easier to attach semantic actions. You just inline your lambda expressions:


Spirit.Karma provides some Boost.Phoenix placeholders to access important information from the Attrib and Context that are otherwise fiddly to extract.

Spirit.Karma specific Phoenix placeholders

_1, _2, ... , _N

Nth attribute of g


The enclosing rule's synthesized attribute.

_r1, _r2, ... , _rN

The enclosing rule's Nth inherited attribute.

_a, _b, ... , _j

The enclosing rule's local variables (_a refers to the first).


Assign false to _pass to force a generator failure.

[Important] Important

All placeholders mentioned above are defined in the namespace boost::spirit and, for your convenience, are available in the namespace boost::spirit::karma as well.

For more information see Semantic Actions.