C++ named requirements: Destructible
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Указывает, что экземпляр типа может быть разрушен.
Требования
Тип
T
удовлетворяет требованиям
Destructible
если
Дано
-
u, выражение типаT.
Следующие выражения должны быть корректными и иметь указанные эффекты.
| Expression | Post-conditions |
|---|---|
| u.~T ( ) |
Все ресурсы, принадлежащие
u
, освобождаются, исключения не генерируются.
|
Примечания
Деструкторы вызываются неявно в конце времени жизни объекта , например, при выходе из области видимости или с помощью delete-expression . Явный вызов деструктора, как показано в таблице требований к типам, встречается редко.
Благодаря вызову псевдодеструктора , все скалярные типы удовлетворяют требованию Destructible , тогда как массивы и ссылочные типы — нет. Заметьте, что std::is_destructible допускает массивы и ссылочные типы.
Смотрите также
|
(C++11)
(C++11)
(C++11)
|
проверяет, имеет ли тип неудалённый деструктор
(шаблон класса) |
|
(C++20)
|
указывает, что объект типа может быть уничтожен
(концепт) |