std::optional<T>::~optional
来自 zh.cppreference.net
~optional();
|
(C++17 起) (C++20 起为 constexpr) |
|
如果对象包含值,且类型 T 并非平凡可析构(参见 std::is_trivially_destructible),则通过调用其析构函数来销毁所含值,如同通过 value().T::~T()。
否则,什么都不做。
注释
如果
T
是平凡可析构的,那么此析构函数也是平凡的,因此
std::
optional
<
T
>
也是平凡可析构的。
| 功能测试宏 | 值 | 标准 | 功能特性 |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
完全 constexpr 化 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
| P2231R1 | C++20 | 析构函数未声明为 constexpr ,但C++20允许非平凡析构函数为 constexpr | 已改为 constexpr |