std::optional<T>::~optional
来自cppreference.com
~optional(); |
(C++17 起) (C++20 前) |
|
constexpr ~optional(); |
(C++20 起) | |
若对象含值且类型 T
非可平凡析构(见 std::is_trivially_destructible ),则如同以 value().T::~T() 一般,通过调用其析构函数销毁所含值。
否则,不做任何事。
注解
若 T
为可平凡析构,则此析构函数亦为平凡,故 std::optional<T> 亦为可平凡析构。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2231R1 | C++20 | 析构函数不是 constexpr ,而非平凡析构函数在 C++20 中能为 constexpr | 使之为 constexpr |