0
所以, 我有一些代碼,看起來像這樣:包裝分配的輸出參數與scoped_ptr的/陣列
byte* ar;
foo(ar) // Allocates a new[] byte array for ar
...
delete[] ar;
爲了使這更安全,我用了一個scoped_array:
byte* arRaw;
scoped_array<byte> ar;
foo(arRaw);
ar.reset(arRaw);
...
// No delete[]
問題是,是否有任何現有的方法來使用scoped_array這樣做,而不使用臨時原始數組?
我大概可以寫一個就地「復位器」類,只是想知道功能是否存在,我錯過了它。
感謝, 丹
富給出了,我不想改變它。我想強調從調用foo的範圍開始的安全性。 – Danra 2010-04-11 08:29:16
我喜歡超載的建議,它提供了更多的封裝。謝謝! – Danra 2011-09-27 18:33:03