我有一个函数,它接受一个指向指针的指针,并填充值:
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
返回一个指针,而不是指向指针的引用。 - Piotr Skotnicki