std::optional::~optional(3) | C++ Standard Libary | std::optional::~optional(3) |
NAME¶
std::optional::~optional - std::optional::~optional
Synopsis¶
~optional(); (since C++17)
(constexpr since C++20)
If the object contains a value and the type T is not trivially destructible
(see
std::is_trivially_destructible), destroys the contained value by calling its
destructor, as if by value().T::~T().
Otherwise, does nothing.
Notes¶
If T is trivially-destructible, then this destructor is also
trivial, so
std::optional<T> is also trivially-destructible.
Defect reports
The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.
DR Applied to Behavior as published Correct behavior
the destructor was not constexpr while
P2231R1 C++20 non-trivial destructors can be constexpr in made constexpr
C++20
2024.06.10 | http://cppreference.com |