qi::int_[func0] >> "," >> qi::int_[func0]
Если func0 - это void func0(int _argument);, то всё нормально. Если func0 - это объект-функтор, где определён void operator()(int _argument);, то всё плохо - компилятор ругается, что сигнатура плохая: хочет передать не один аргумент типа int, а три аргумента: (int&, const boost::spirit::unused_type&, bool&). С чего бы он вдруг это хочет?