我有一个RepeatedPtrField<M::Table>
和一个protobuf消息,M为:
message M {
message Table {
optional string guid = 1;
optional int64 schema_version = 2;
optional int64 data_version = 3;
repeated Column column = 4;
}
repeated Table table = 1;
}
如何创建具有RepeatedPtrField内容的M实例。我可以编写一个for循环来显式复制数据,但是我目前正在寻找更简洁的方法,最好使用诸如优化之类的std::move()
。
答案 0 :(得分:1)
如果您正在使用Protobuf 3.6.0等新版本的Protobuf,则RepeatedPtrField
定义move构造函数,您可以调用std::move
来实现目标。
如果您使用的是旧版本,则必须调用Swap
来完成工作,如注释中所述。