为什么 qi::phrase_parsefalse 返回 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/

10-11 22:51