std::optional<T>::~optional
Von cppreference.com
| ~optional(); |
(seit C++17) (constexpr seit C++20) |
|
Wenn das Objekt einen Wert enthält und der Typ T nicht trivial zerstörbar ist (siehe std::is_trivially_destructible), zerstört es den enthaltenen Wert, indem es seinen Destruktor aufruft, als ob durch value().T::~T().
Andernfalls tut es nichts.
[bearbeiten] Anmerkungen
Wenn T trivial zerstörbar ist, dann ist dieser Destruktor ebenfalls trivial, sodass std::optional<T> ebenfalls trivial zerstörbar ist.
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_optional |
202106L |
(C++20) (DR20) |
Vollständig constexpr |
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| P2231R1 | C++20 | der Destruktor war nicht constexpr während nicht-triviale Destruktoren in C++20 constexpr sein können | zu constexpr gemacht |