有什么方法可以将protobuf对象传递给shared_ptr吗?

问题描述

我要将protobuf msg“ SmConfig”复制到如下所示的shared_ptr:

SignalMachine::SignalMachine(SmConfig* sm_config) {
  sm_config_ = std::make_shared<SmConfig>();
  sm_config_.copyFrom(*sm_config);
}

class SignalMachine {
 private:
  std::shared_ptr<SmConfig> sm_config_;
}

因为我需要将SmConfig(protobuf)保留在“ SignalMachine类”中,所以我使用了上面的方法,这合理吗?实际上,我没有在官方文件中找到相应的描述。

解决方法

您可以使用复制构造函数:

AppComponent