История изменений
Исправление fsb4000, (текущая версия) :
Если так можно делать, значит это нужно
Вызывать деструктор самостоятельно нужно, когда он иначе не будет вызван.
https://gcc.godbolt.org/z/bWM3h7
Как видно в примере, для класса в union деструктор не вызывается, и нужно вызывать самостоятельно.
Нечто похожее делают реализаторы стандартной библиотеки компилятора для std::variant.
Исходная версия fsb4000, :
Если так можно делать, значит это нужно
Вызывать деструктор самостоятельно нужно, когда он иначе не будет вызван.