在Google协议缓冲区中设置重复字段时出错

时间:2013-09-07 17:41:00

标签: c++ protocol-buffers

我有一个消息类:

message Foo {
     repeated Foo2 field = 1;
}
//Foo2 is another message

并在我的cpp文件中:

Foo* ci1;
Foo* ci2;
//call some function to to assign values to ci1->field(0)
function( ci1 )
//try to copy ci1-field(0) to ci2->field(0)
ci2->set_field( 0, ci1->field(0) );

但是我收到一条错误消息: 错误:'Foo'没有名为'set_field'的成员 为什么将set_field作为成员而不是函数set_成员字段? 我是协议缓冲区的新手,所以任何帮助都将受到赞赏!

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试*ci2->add_field() = ci1->field(0)

更一般地说,您需要了解protobuf如何映射到类,以及如何处理每种类型的字段。详细信息位于the documentation