コードサンプルは次のとおりです。
// 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'
ます。
ここで何が間違っていますか?