短而有效下面的例子:如何將唯一指針傳遞給函數中所需的特定參數?
std::unique_ptr<float> x(new float[whatever_size]);
我有一個函數原型有:
void function(float*&);
我該如何去通過傳遞在x調用它。 我想:
function(x.get()); // complains no argument matches float*&
function(&x.get()); // complains requires lvalue.
與解釋一個簡單的回答將是巨大的。 謝謝!
你應該爲數組使用'std :: unique_ptr'(或者更好地使用一個向量)。 –
Galik
與您的直接問題無關,但您的'x'應該聲明爲'std :: unique_ptr' - 否則您的代碼將顯示未定義的行爲,因爲數組被刪除而不是delete []'。 –
爲什麼函數需要一個'float *&'而不是'float *'?它是否真的修改了它的論點,如果是的話,它會做什麼? –