дважды вызвать деструктор trivially destructible типов, ведь рассматривая сгенерированный код https://godbolt.org/z/bTMEGY даже без оптимизаций не генерируются какие-либо действия, хотя в стандарте я упоминания этого найти не могу (что для trivial destructor не генерируется код).
Стандарт ясно говорит http://eel.is/c++draft/class.dtor#19, но вкладывая мой смысл, для trivial, хотя может быть call ~T(), вызова (invoke) просто нет.
Можете что-либо сказать по этому поводу?
стандарт описывает свойства и поведение объектов, время жизни которых началось и не закончилось (basic.life#4), поэтому если вы вызвали деструктор дважды и оно не сломалось, то вам просто везет
В этом же самом пункте указывается, вне времени жизни есть существенные ограничения, часть которых описана тут http://eel.is/c++draft/class.cdtor Первый пункт утверждает, For an object with a non-trivial destructor, referring to any non-static member or base class of the object after the destructor finishes execution results in undefined behavior
это никак не противоречит тому, что я сказал
Обсуждают сегодня