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