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.Qi provides some Boost.Phoenix placeholders to important information from the Attrib and Context that are otherwise fiddly to extract.

Spirit.Qi specific Phoenix placeholders

_1, _2... , _N

Nth attribute of p


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 parser 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::qi as well.

For more detailed information about semantic actions see: here.