#include #include #include template< typename Iterator > struct basic_grammar { typedef Iterator iterator; basic_grammar () { rule_ %= boost::spirit::qi::int_; } boost::spirit::qi::rule< Iterator, int () > rule_; }; typedef basic_grammar< const char * > grammar; int main (int argc, const char *const argv[]) { grammar g; int i; const char input[] = "hello world"; grammar::iterator head = input; grammar::iterator tail = input + sizeof (input) / sizeof (*input); parse (head, tail, g.rule_, i); return 0; }