В моем коде у меня есть фактически следующее:
wchar_t* buffer = new wchar_t[size];
// bonus irrelevant code here
delete[] reinterpret_cast<char*>( buffer );
Типы, о которых идет речь, являются встроенными и поэтому имеют тривиальные деструкторы. В VС++ код выше работает полностью - new[]
просто выделяет память, тогда delete[]
просто освобождает его.
Это приемлемо в С++? Это поведение undefined?