std::optional<T>::~optional
~optional();
|
(depuis C++17) (constexpr depuis C++20) |
|
Si l'objet contient une valeur et que le type T n'est pas trivialement destructible (voir std::is_trivially_destructible), détruit la valeur contenue en appelant son destructeur, comme par value().T::~T().
Sinon, ne fait rien.
Notes
Si
T
est trivialement destructible, alors ce destructeur est également trivial, donc
std::
optional
<
T
>
est également trivialement destructible.
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
Complètement constexpr |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| P2231R1 | C++20 | le destructeur n'était pas constexpr alors que les destructeurs non triviaux peuvent être constexpr en C++20 | rendu constexpr |