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
가 trivially destructible이 아닌 경우(
std::is_trivially_destructible
참조), 포함된 값을 소멸자를 호출하여 파괴합니다. 다음과 같이 수행됩니다:
value
(
)
.
T
::
~T
(
)
.
그 외의 경우, 아무 작업도 수행하지 않습니다.
참고 사항
만약
T
가 trivially-destructible이면, 이 소멸자 또한 trivial하므로
std::
optional
<
T
>
또한 trivially-destructible입니다.
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_optional
|
202106L
|
(C++20)
(DR20) |
완전한 constexpr |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| P2231R1 | C++20 | 소멸자가 constexpr 가 아니었으나 C++20에서는 비트리비얼 소멸자들이 constexpr 일 수 있음 | constexpr 로 변경됨 |