Namespaces
Variants

std::expected<T,E>::value

cppreference.net에서
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐기됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
Swap 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
기본 템플릿
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 가 예상치 못한 값을 포함하고 있을 경우.
3,4,6) std:: bad_expected_access ( std :: move ( error ( ) ) ) 을 발생시킵니다 * this 가 예상치 못한 값을 포함하는 경우.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3940 C++23 E 가 복사/이동 생성 가능할 필요가 없었음 (5,6) 필요함

참고 항목

값이 존재하면 기대값을 반환하고, 그렇지 않으면 다른 값을 반환합니다
(public member function)
기대값에 접근합니다
(public member function)
예상치 못한 값을 반환합니다
(public member function)
예상치 못한 값을 포함하는 expected 에 대한 검증된 접근을 나타내는 예외
(class template)