Есть ли принятая идиома для выделения хранилища резервных копий для объекта на месте, но не для его инициализации? Вот мое наивное решение:C++ Выделить хранилище для объекта без его инициализации?
#include <utility>
template<typename T>
union Slot {
T inst;
Slot() {}
~Slot() {}
template<typename... Args>
T* init(Args&&... args) { return new(&inst) T(std::forward<Args>(args) ...); }
void release() { inst.~T(); }
};
Мой непосредственный случай использования для объекта пула, но он также будет более полезным в целом.
Я думаю, что вы хотите, называется [размещение новых] (http://en.wikipedia.org/wiki/Placement_syntax). – TypeIA
@ dvnrrs Он использует размещение нового. Этот код выглядит хорошо для меня. – user3286380
@ пользователь3286380 действительно ... извините. Я не очень внимательно смотрел на код. Тогда в чем вопрос? Существует много способов выделения памяти. – TypeIA