Предположим, у меня есть указатель на динамически выделенный массив из 10 элементов:
T* p = new T[10];
Позже я хочу выпустить этот массив:
delete[] p;
Что произойдет, если один из деструкторов T
выдает исключение? Остальные элементы все еще разрушаются? Выйдет ли память? Будет ли распространено исключение или будет завершено выполнение программы?
Аналогично, что происходит, когда a std::vector<T>
уничтожается и один из деструкторов T
бросает?