gpt4 book ai didi

c++ - Boost Spirit X3 和 std::unordered_map

转载 作者:行者123 更新时间:2023-11-28 05:33:21 25 4
gpt4 key购买 nike

我想解析成一个std::unordered_map

示例代码:

struct Base
{
int item1;
int item2;
};

BOOST_FUSION_ADAPT_STRUCT(Base, item1, item2)

namespace grammar
{
using namespace boost::spirit::x3;

auto base_ = rule<struct base_, Base>{"base"}
= repeat(2)[ int_ ];

auto start = rule<struct start, std::unordered_map<std::int32_t, Base>>{"start"}
= (id_ >> base_) % eol;
}

主要有以下内容:

namespace ios = boost::iostreams;
namespace fs = boost::filesystem;
namespace x3 = boost::spirit::x3;

int main()
{
std::unordered_map<std::int32_t, Base> bases;

ios::mapped_file mmf("example.dat");

auto beg = std::begin(mmf);
auto end = std::end(mmf);

auto ret = x3::phrase_parse(beg, end, grammar::start, x3::char_(','), bases);

if (ret && beg == end)
{
std::cout << "Parse ok\n";
}

mmf.close();

return 0;
}

和一个示例文件:

1,2,3
2,3,4
3,4,5

编译器错误信息是:

.... ‘class std::unordered_map<int, Base>’ has no member named ‘push_back’

下一步做什么,有没有办法适应std::unordered_map

最佳答案

就像 jv_ 假设的那样,更新我的 boost 版本解决了这个问题。

关于c++ - Boost Spirit X3 和 std::unordered_map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com