Так, У меня есть некоторый код, который выглядит следующим образом:Оберточные выделяются выходные параметры с 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, без использования временного массива?
Возможно, я могу написать собственный класс «resetter», просто задаваясь вопросом, существует ли функциональность, и я ее не хватает.
Спасибо, Dan
Foo дается, и я не хочу, чтобы изменить его. Я хочу обеспечить безопасность из сферы действия, вызывающей foo. – Danra
Мне нравится предложение перегрузки, оно обеспечивает больше инкапсуляции. Благодаря! – Danra