std::optional<T>::~optional
De es.cppreference.net
~optional();
|
(desde C++17) (constexpr desde C++20) |
|
Si el objeto contiene un valor y el tipo T no es trivialmente destructible (véase std::is_trivially_destructible), destruye el valor contenido llamando a su destructor, como si fuera value().T::~T().
En caso contrario, no hace nada.
Notas
Si
T
es trivialmente-destructible, entonces este destructor también es trivial, por lo que
std::
optional
<
T
>
también es trivialmente-destructible.
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
Completamente constexpr |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| P2231R1 | C++20 | el destructor no era constexpr mientras que los destructores no triviales pueden ser constexpr en C++20 | hecho constexpr |