Предположим, я есть шаблон типа параметра T.Размещение новых в std :: aligned_storage?
И предположим, у меня есть std::aligned_storage
следующим образом:
typename std::aligned_storage<sizeof(T), alignof(T)>::type storage;
Я хочу размещения новых Т в storage
.
Каково стандартное значение/тип указателя для перехода к новому оператору размещения и как получить его с storage
?
new (& ???) T(a,b,c);
Например:
new (&storage) T(a,b,c);
new (static_cast<void*>(&storage)) T(a,b,c);
new (reinterpret_cast<T*>(&storage)) T(a,b,c);
new (static_cast<T*>(static_cast<void*>(&storage));
Какой из выше (если таковые имеются) соответствуют, и если нет, то, что это лучший способ?
ОК, +1 для чистого уровня паранойи. Если я когда-либо приступаю к написанию реализации Hell ++, я попрошу вас сотрудничать :-) – Angew