Boost.Spirit:为什么在解析eol时,phrase_parse的行为与解析不同?

时间:2016-02-09 21:07:51

标签: c++ boost boost-spirit

为什么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

1 个答案:

答案 0 :(得分:4)

船长跳过空白。

空白包括eol

因此,eol永远不会匹配。

提示:将blank用于 eol以外的空白