#include #include #include #include struct SomeState { }; namespace qi = boost::spirit::qi; /* * Prototype of the grammar where the error is appearing */ template struct CommandsGrammar: boost::spirit::qi::grammar { CommandsGrammar() : CommandsGrammar::base_type(commands) { commands = ( "subcommand1" | ( "subcommand2" > qi::uint_) | ( qi::uint_ > qi::uint_ > qi::uint_ > qi::uint_ ) )[qi::_val = qi::_r1]; } qi::rule commands; }; /* Explicit instantiation of the template to show that the problem * occurs just in the grammar itself */ template CommandsGrammar::CommandsGrammar(); int main() { }