如何在FlatBuffers C++的根结构中构建结构



似乎平面缓冲区的作者错过了Monster中Equipment结构的一个例子,这在这里会有所帮助。

我在根结构(MyProjectRootMessage(中有一个结构(Message(。这似乎是monster.fbs例子中的方法。

enum MyProjectMsgType : byte { Message1=0, Message2 }
union Message { Message1, Message2 }
table MyProjectRootMessage {
msg_type:MyProjectMsgType;
message:Message;
}
table Message1 {
}
table Message2 {
}

但我正试图用C++构建它,但消息类型出现了错误。它说messageOffset<Message1>类型,而它应该是Message类型。

flatbuffers::FlatBufferBuilder builder;
auto message = Message1Builder(builder).Finish();
auto rootMessage = CreateMyProjectRootMessage(builder, MyProjectMsgType_Message1, message); // complains on message here

您不需要enum MyProjectMsgTypeunion已经为您生成了一个类型枚举。

Offset<Message1>有一个方法,可以将其转换为适用于并集的通用偏移量。

最新更新