Вот пример кода:
// file main.cpp
#include <iostream>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
#include <boost/spirit/include/qi.hpp>
int main()
{
std::string s( "1 A" );
boost::tuple<double, char> p;
complex_matrix_parser::iterator b = s.begin();
complex_matrix_parser::iterator e = s.end();
qi::phrase_parse( b, e,
( qi::double_ >> qi::char_('A') ),
qi::space, qi::skip_flag::postskip, p );
std::cerr << "==== " << p << std::endl;
return 0;
}
Это должно напечатать ==== (1 A)
верно? Но он печатает ==== (1 )
, поэтому пропускает символ 'A'
.
Что я здесь не так делаю?