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