std::optional<T>::~optional
Von de.cppreference.net
~optional();
|
(seit C++17) (constexpr seit C++20) |
|
Wenn das Objekt einen Wert enthält und der Typ T nicht trivial destruierbar ist (siehe std::is_trivially_destructible), wird der enthaltene Wert durch Aufruf seines Destruktors zerstört, wie durch value().T::~T().
Andernfalls wird nichts getan.
Hinweise
Wenn
T
trivial zerstörbar ist, dann ist dieser Destruktor ebenfalls trivial, also ist
std::
optional
<
T
>
ebenfalls trivial zerstörbar.
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
Vollständig constexpr |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| P2231R1 | C++20 | der Destruktor war nicht constexpr während nicht-triviale Destruktoren in C++20 constexpr sein können | als constexpr festgelegt |