【问题标题】:Manipulate data structures in protobuf using c++使用 C++ 在 protobuf 中操作数据结构
【发布时间】:2017-12-21 19:12:01
【问题描述】:

我想修改protobuf中定义的数据结构,proto是这样的:

message DoubleMap {
   map<string, double> double_map = 1
}

message DoubleVector {
   map<string, DoubleMap> double_vector = 1
}

message Data {
   repeated DoubleVector data = 1
}

我需要对 Data 进行新建、修改和删除,如果数据结构是用 C++ 定义的,那会容易得多。我的问题是我是否需要一个加载器来接受 protobuf 输入并在 C++ 中构建数据结构?还是基于 protobuf 生成的函数构建我自己的辅助函数?

【问题讨论】:

  • protoc 编译器根据您的 .proto 定义生成的 C++ 类有什么问题?他们缺少哪些你认为需要的东西?
  • “我需要”你希望别人如何告诉你你需要什么?
  • 如果给定Data d,我想访问DoubleMap 中的一个双精度值,例如d.data.double_vector.double_map["key"]。然后,如果我只是在 protoc 生成的代码中使用辅助函数,那么它是超长的。

标签: c++ protocol-buffers protobuf-c


【解决方案1】:

根据protobuf doc,google 鼓励您编写包装器:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多