有什么方法可以将 protobuf 对象传递给 shared_ptr?
Is there any method to pass protobuf object to shared_ptr?
我想将 protobuf 消息“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_;
}
因为我需要在“classSignalMachine”中保留SmConfig(protobuf),所以我使用了上面的方法,是否合理?其实我并没有在官方文档中找到对应的描述
你可以使用复制构造函数:
SignalMachine::SignalMachine(SmConfig* sm_config) {
if (sm_config != nullptr)
sm_config_ = std::make_shared<SmConfig>(*sm_config);
// else error handling
}
我想将 protobuf 消息“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_;
}
因为我需要在“classSignalMachine”中保留SmConfig(protobuf),所以我使用了上面的方法,是否合理?其实我并没有在官方文档中找到对应的描述
你可以使用复制构造函数:
SignalMachine::SignalMachine(SmConfig* sm_config) {
if (sm_config != nullptr)
sm_config_ = std::make_shared<SmConfig>(*sm_config);
// else error handling
}