Destructible
Specifies that an instance of the type can be destructed.
Requirements
Section titled “Requirements”The type T satisfies Destructible if
Given
-
u, an expression of typeT. -
u, an lvalue expression of typeKey.
| Expression | Post-Conditions |
|---|---|
u.~T() | All resources owned by u are reclaimed, no exceptions are thrown. |
Destructors are called implicitly at the end of object lifetime such as when leaving scope or by the delete-expression. Explicit destructor call as shown in the type requirement table is rare.
Thanks to pseudo destructor call, all scalar types meet the requirement of Destructible, while array types and reference types do not. Note that std::is_destructible allows arrays and reference types.
See also
Section titled “See also”std::is_destructible std::is_trivially_destructible std::is_nothrow_destructible checks if a type has a non-deleted destructor
(class template)
destructible specifies that an object of the type can be destroyed
(concept)