用提升精神解析一对整体

mor*_*nvp 11 c++ parsing boost boost-spirit

我有以下代码:

std::string test("1.1");
std::pair<int, int> d;

bool r = qi::phrase_parse(
        test.begin(),
        test.end(),
        qi::int_ >> '.' >> qi::int_,
        space,
        d
        );
Run Code Online (Sandbox Code Playgroud)

所以我试图解析字符串测试并将结果放在std :: pair d中.但是它没有用,我怀疑它与复合属性规则有关.

有关如何使其工作的任何提示?

编译器错误如下:

错误:没有匹配函数来调用'std :: pair :: pair(const int&)'

hka*_*ser 21

它应该工作.人们经常忘记的是添加一个

#include <boost/fusion/include/std_pair.hpp>
Run Code Online (Sandbox Code Playgroud)

到他们的包含列表.这对于成为std::pair一名成熟的Fusion公民来说是必要的.

  • 完美有效..它是在文档中的某处写的吗?我找不到它,但也许我只是忽略了它. (2认同)