Вы не должны вызывать деструктор вручную - он вызывается, когда s
выходит из области видимости в конце '}'
Ошибка подтверждения означает, что что-то называется assert(somecondition)
, а какое-то условие было ложным.Это метод, используемый для проверки ваших предположений - если ваш код зависит от того, что какое-то конкретное условие является истинным, и это условие действительно должно быть истинным, если у вас нет ошибки, тогда вы вставляете утверждение.
Затем вы можете выбрать компиляцию с включенными утверждениями - это означает, что вы получите такую ошибку, если ваше предположение было неверным.Для сборки выпуска вы часто отключаете утверждения - для оператора assert не генерируется код и нет дополнительных затрат времени выполнения.
Бывают случаи, когда корректно вручную вызывать деструктор - вам это не понадобитсяпока вы не узнаете и не используете "размещение новых".