代码之家  ›  专栏  ›  技术社区  ›  peter55555

使用protobuf序列化boost::variant

  •  -1
  • peter55555  · 技术社区  · 7 年前

    我必须连载 std::queue boost::variant . 变种有大约20种不同的结构。 在proto3中,什么是更好/更喜欢的表示变量的方法?我是说,我应该用 oneof any ? 他们的表现如何?

    我不知道怎样做才是最好的解决办法。

    1 回复  |  直到 7 年前
        1
  •  0
  •   bazza    7 年前

    你从另一个方向开始。你写了一个.proto文件来定义(在谷歌的protobuf模式语言中)你想要定义的“消息”。其中一个可以是包含许多其他内容的“One of”。然后使用协议缓冲区编译器编译.PROTO文件,最后使用C++源代码实现这些消息,作为来自基类库的C++类。这些类具有内置的序列化例程。在任何时候,你都不使用Boost或手写C++类。

    variant很可能相当于protobuf的“one of”,但您不会使用它来包含不同的protobuf消息,因为“one of”对您是这样的。将Boost::variant与GPB自己的做事风格混合在一起可能会导致代码混乱。