【发布时间】:2018-12-04 16:59:47
【问题描述】:
我在创建枚举向量时遇到了麻烦。 IE。给定以下架构文件:
enum Month : short
{
January,
February,
March,
}
table SpecificMonths
{
Months:[Month];
}
root_type SpecificMonths;
我正在尝试创建 SpecificMonths 类型的对象:
flatbuffers::FlatBufferBuilder builder;
Month months[] = {Month_January, Month_March};
auto monthsVector = builder.CreateVector(months, 2);
auto specificMonths = CreateSpecificMonths(builder, monthsVector);
但它会抛出错误:
error C2664: 'flatbuffers::Offset<SpecificMonths> CreateSpecificMonths(flatbuffers::FlatBufferBuilder &,flatbuffers::Offset<flatbuffers::Vector<int16_t>>)': cannot convert argument 2 from 'flatbuffers::Offset<flatbuffers::Vector<Month>>' to 'flatbuffers::Offset<flatbuffers::Vector<int16_t>>'
note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
有什么办法吗?我更喜欢没有 std::vector 的解决方案(无分配)。
【问题讨论】:
标签: c++ flatbuffers