c++ - 调用protocol buffer方法报错: 2 overloads have no legal conversion for this pointer,

标签 c++ protocol-buffers

有人能帮我解决这个错误 C2663: MediaSetting::mutable_mediamessage: 2 overloads have no legal conversion for this pointer 发生在 mutable_mediamessage() 被调用时以下代码。

class MediaSetting : public ::google::protobuf::Message {
 public:
  inline ::MSG::MediaMessage* mutable_mediamessage(int index);
  inline ::google::protobuf::RepeatedPtrField< ::MSG::MediaMessage >* mutable_mediamessage();
}

inline ::MSG::MediaMessage* MediaSetting::mutable_mediamessage(int index) {
  return mediamessage_.Mutable(index);
}

inline ::google::protobuf::RepeatedPtrField< ::MSG::MediaMessage >*
MediaSetting::mutable_mediamessage() {
  return &mediamessage_;
}

// my test codes
// ...
const ::MSG::MediaSetting& media = config.mediasetting();
::google::protobuf::RepeatedPtrField<::MSG::MediaMessage>* pmedia = media.mutable_mediamessage(); // Error C2663 is here

环境:VS2008

最佳答案

您正试图通过常量引用访问非常量成员函数。

关于c++ - 调用protocol buffer方法报错: 2 overloads have no legal conversion for this pointer,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30730630/

相关文章:

c++ - 为什么用指针调用 GetWindowRect 会导致异常但地址不会

c++ - 为类中的枚举重载 () 运算符 - C++

c++ - ProtoBuf 编译链接 GCC

python - Protobuf,在python3.6中编译后导入报错

java - 使用 GPB,如何使我的包装类停止接受不适合它们的二进制消息?

c++ - x64 的简单 Windows 回调 thunk

c++ - 稀疏矩阵上的 block 操作 - Eigen Toolbox - C++

php - 我如何制作在线编译和运行C++程序的网站

go - Proto3 for Go 的可选支持

java - 使用 protobuf 写入数据的最佳实践