在FlatBuffer中使用自定义枚举

时间:2018-05-20 16:28:49

标签: c++ flatbuffers

我正在使用C++ API for FlatBuffers来存储和检索用Objective-C编写的macOS应用程序的首选项。

我正在存储的许多首选项都是我在整个应用程序中使用的typedef'd枚举。反正是否在FlatBuffer模式中使用那些现有的枚举,以便我可以将它们用作默认值?

例如,我想做以下事情:

  table Preferences {
    layout:int = FLLayoutModeList;
    sidebar:int = FLSidebarElementInspector;
  }

我的Objective-C中FLLayoutModeListFLSidebarElementInspector分别定义为FLLayoutModeFLSidebarElement枚举。

可以使用C ++本机类型接口完成吗?请注意,我只是从我自己的代码中读取和编写这个FlatBuffer。如果重要的话,它不与其他应用程序共享,也不需要任何跨语言支持。

1 个答案:

答案 0 :(得分:0)

架构无法包含非架构的定义,即C ++或Objective C代码。不必复制它们的唯一方法是在FlatBuffers模式中定义它们并使用从那里生成的代码。它反过来不起作用。

请注意,如果您使用Objective C(而不是Objective C ++),您可以使用flatcc模式编译器生成纯C,这可能会更好。