std::expected<T,E>::value
cppreference.net에서
| 기본 템플릿 |
||
constexpr T& value() &;
|
(1) | (C++23부터) |
constexpr const T& value() const&;
|
(2) | (C++23부터) |
constexpr T&& value() &&;
|
(3) | (C++23부터) |
constexpr const T&& value() const&&;
|
(4) | (C++23부터) |
void 부분 특수화 |
||
constexpr void value() const&;
|
(5) | (C++23부터) |
constexpr void value() &&;
|
(6) | (C++23부터) |
만약 *this이 기댓값(expected value)을 포함하면, 포함된 값에 대한 참조를 반환합니다. void 부분 특수화에 대해서는 아무것도 반환하지 않습니다.
그렇지 않으면, std::bad_expected_access<std::decay_t<E>>의 복사본을 포함하는 error() 타입의 예외를 던집니다.
1,2) 만약
std::is_copy_constructible_v<E>이 false이면, 프로그램의 형식이 잘못되었습니다(ill-formed).3,4) 만약
std::is_copy_constructible_v<E> 또는 std::is_constructible_v<E, decltype(std::move(error()))>이 false이면, 프로그램의 형식이 잘못되었습니다.5) 만약
std::is_copy_constructible_v<E>이 false이면, 프로그램의 형식이 잘못되었습니다.6) 만약
std::is_move_constructible_v<E>이 false이면, 프로그램의 형식이 잘못되었습니다.반환값
1,2)
val
3,4)
std
::
move
(
val
)
예외
1,2,5)
std::
bad_expected_access
(
std::
as_const
(
error
(
)
)
)
를 발생시킵니다.
만약
*
this
가 예상치 못한 값을 포함하고 있을 경우.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3940 | C++23 |
E
가 복사/이동 생성 가능할 필요가 없었음
(5,6)
|
필요함 |
참고 항목
|
값이 존재하면 기대값을 반환하고, 그렇지 않으면 다른 값을 반환합니다
(public member function) |
|
|
기대값에 접근합니다
(public member function) |
|
|
예상치 못한 값을 반환합니다
(public member function) |
|
|
(C++23)
|
예상치 못한 값을 포함하는
expected
에 대한 검증된 접근을 나타내는 예외
(class template) |