[class.dtor]/15 гласит, курсив мой:Что означает, что объект существует на C++?
После деструктор вызывается для объекта, объект больше не существует; поведение не определено, если деструктор вызывается для объекта, срок жизни которого закончился (3.8).
Однако, насколько я могу судить, это единственная ссылка в стандарте на объект «существующий». Это также, кажется, контрастирует с [basic.life], который является более конкретным:
Время жизни объекта типа
T
заканчивается, когда:
, если
T
является типом класса с в нетривиальный деструктор (12.4), начинается вызов деструктора, илиХранилище, которое объект занимает, используется повторно или освобождается.
У нас есть два различных формулировок здесь: «время жизни концов объекта» и «объект больше не существует», бывшие происходит только с нетривиальным деструктором и последние происходит с любыми деструктор. В чем смысл различия? Что означает, что объект больше не существует?
C++ 03 имеет ту же формулировку. Заставляет меня задаться вопросом, нужно ли просто подхалиму, нуждающемуся в некоторой очистке. –
Я думаю, что это всего лишь синонимы, но будет ждать и посмотреть, сможет ли кто-то, кто знает стандарт, лучше, чем я делаю трубы ... –
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active. html # 1285 –