为什么qi::phrase_parse
会为false
返回qi::eol
?我希望它会true
返回qi::parse
。
using namespace boost::spirit;
const std::string s = "\n";
auto it = s.begin();
bool match = qi::phrase_parse(it, s.end(), qi::eol, ascii::space);
std::cout << std::boolalpha << match << '\n';
it = s.begin();
match = qi::parse(it, s.end(), qi::eol);
std::cout << std::boolalpha << match << '\n';
结果:
false
true
答案 0 :(得分:4)
船长跳过空白。
空白包括eol
。
因此,eol
永远不会匹配。
提示:将blank
用于 eol
以外的空白