Если память мне не изменяет, g ++ имеет неудачную привычку выдавать ошибки unused variable
по-разному в зависимости от настроек оптимизации, поскольку обнаружение работает на уровне оптимизатора.
То есть код оптимизируется вФорма SSA, и если оптимизатор обнаружит, что переменная после оптимизации не используется, то она может выдать предупреждение (я очень предпочитаю анализ Clang для этого ...).
Поэтому, вероятно, это вопрособнаружение того, что делает деструктор.Интересно, будет ли применяться консервативный подход, когда определение деструктора находится в автономном режиме, я бы предположил, что это приравнивает вызов функции и что this
квалифицируется как использование переменной.