Здравствуйте, Sm0ke, Вы писали:
S>S>return reinterpret_cast<pointer>(
S> ::operator new(s_size * p_reserve, s_align, std::nothrow)
S>);
S>
Вообще, этот фрагмент настораживает. Здесь ты выполняешь преобразование указаетля на просто кусок памяти к указателю на объект, что небезопасно в общем случае. Если Т — это нетривиально конструируемый тип, то время жизни объекта в этой точке еще не началось и любая попытка обращения к этому объекту порождает неопределенное поведение. Использовать данный кусок памяти как объект типа Т можно будет только после выполнения placement new. Но в таком случае и никаких преобразований не понадобится, ибо placement new сразу возвратит указатель нужного типа.