为什么 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
最佳答案
skipper 跳过空格。
空格包括 eol
。
因此,eol
永远不会匹配。
提示:对 blank
以外的空白使用 eol
关于c++ - Boost.Spirit : Why does phrase_parse behave differently to parse when parsing eol?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35302217/