std::optional<T>:: ~optional
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
optional::~optional
|
||||
| Observers | ||||
| Iterators | ||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Monadic operations | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Modifiers | ||||
| Non-member functions | ||||
| Deduction guides | ||||
| Helper classes | ||||
| Helper objects | ||||
|
~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 |