c++ - 在 FlatBuffer 中使用自定义枚举

标签 c++ flatbuffers

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

我存储的许多首选项都是我在整个应用程序中使用的类型定义的枚举。无论如何在 FlatBuffer 模式中使用那些现有的枚举,以便我可以将它们用作默认值?

例如,我想做以下事情:

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

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

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

最佳答案

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

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

关于c++ - 在 FlatBuffer 中使用自定义枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50437008/

相关文章:

c++ - 将 (string, object * ) 插入哈希表 (C++)

c++ - 使用 std::thread 和良好实践并行化循环

c++ - 如何获得表格的大小

angular - 在 Angular 5 中加载二进制文件

C++继承维度计算器程序错误: "function call missing argument list"

c++ - 函数模板特化 - 错误 - ISO C++ 禁止声明没有类型的 ‘parameter’

c++ - 如何用C++调用LabVIEW构建的DLL

go - 动态 FlatBuffers 分隔符

c++ - flatbuffer unio 只生成枚举

protocol-buffers - 如何使用 flatbuffer 模式重写 protobuf 方案?