Почему среда выполнения не может решить применить delete или delete [] вместо программатора?

Я читал, что delete [] Оператор необходим, потому что среда выполнения не хранит информацию о том, является ли выделенный блок массивом объектов, требующих вызова деструктора или нет, но на самом деле он хранит информацию о том, где в памяти хранится выделенный блок, а также, конечно, размер блока.
Потребуется еще один бит метаданных, чтобы запомнить, нужно ли вызывать деструкторы при удалении или нет, так почему бы просто не сделать это?

Я почти уверен, что есть хорошее объяснение, я не подвергаю его сомнению, я просто хочу его знать.

18
задан Unihedron 10 August 2014 в 15:40
поделиться