...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Semantic Actions may be attached to any generator as follows:
g[f]
where f
is a function with
the signatures:
void f(Attrib&); void f(Attrib&, Context&); void f(Attrib&, Context&, bool&);
You can use Boost.Bind to bind member functions. For function objects, the allowed signatures are:
void operator()(Attrib&, unused_type, unused_type) const; void operator()(Attrib&, Context&, unused_type) const; void operator()(Attrib&, Context&, bool&) const;
The unused_type
is used
in the signatures above to signify 'don't care'.
For more information see Semantic Actions.