В Visual C++ есть предупреждение C4150 для случаев, когда delete
применяется к указателю на неполный тип.
Такие случаи приводят к неопределенному поведению в соответствии со Стандартом. Насколько я знаю, в Visual C++ они приводят к функции operator delete()
по умолчанию, а деструктор не вызывается, что допускает многочисленные ошибки.
Теперь я мог бы использовать #prarma warning( error : 4150 )
в Visual C++, чтобы интерпретировать это предупреждение как ошибку. Я предполагаю, что есть причины, по которым это предупреждение, а не ошибка по умолчанию в Visual C++.
В каком коде реальной жизни я хотел бы разрешить такие случаи? Почему бы мне не переключить это предупреждение на ошибку компилятора?
void
неполным типом? Если да, это может иметь значение. :) - person Xeo   schedule 27.10.2011