std::optional<T>::~optional
From ru.cppreference.net
~optional();
|
(начиная с C++17) (constexpr начиная с C++20) |
|
Если объект содержит значение и тип T не является тривиально разрушаемым (см. std::is_trivially_destructible), уничтожает содержащееся значение вызовом его деструктора, как если бы было выполнено value().T::~T().
В противном случае ничего не делает.
Примечания
Если
T
является тривиально-разрушаемым, то этот деструктор также является тривиальным, поэтому
std::
optional
<
T
>
также является тривиально-разрушаемым.
| Макрос тестирования возможностей | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
Полностью constexpr |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| P2231R1 | C++20 | деструктор не был constexpr в то время как нетривиальные деструкторы могут быть constexpr в C++20 | сделан constexpr |