我有,需要一个指针的指针,并填补了值的函数:填充的std ::后来的unique_ptr
void GetSensor(Sensor **sensor);
通常情况下,我必须这样做以创建传感器和无它:
Sensor *sensor;
GetSensor(&sensor);
// Do something with the sensor
delete sensor;
现在我想为同一个任务使用std :: unique_ptr。我知道我能做到这一点:
std::unique_ptr<Sensor> safe_sensor;
Sensor *sensor;
GetSensor(&sensor);
safe_sensor.reset(sensor);
// Do something with the sensor
// safe_sensor will free the sensor pointer
我可以以某种方式避免与临时传感器变量步骤?这会工作吗?
std::unique_ptr<Sensor> safe_sensor;
GetSensor(&safe_sensor.get());
// Do something with the sensor
// Will the free work correctly here?
'unique_ptr :: get'返回一个指针,不是对指针的引用 –
@Angew:不,不是故意的。应该修复 –
@PiotrSkotnicki你是对的...我想这就是其中一个问题。 –