std::optional<T>:: ~optional
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
optional::~optional
|
||||
| Observers | ||||
| Iterators | ||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Monadic operations | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Modifiers | ||||
| Non-member functions | ||||
| Deduction guides | ||||
| Helper classes | ||||
| Helper objects | ||||
|
~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, als ob durch
value
(
)
.
T
::
~T
(
)
.
Andernfalls tut es nichts.
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 |