Namespaces
Variants

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

From cppreference.net
Utilities library
기본 템플릿
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 가 기대값을 포함하고 있다면, 포함된 값에 대한 참조를 반환합니다. void 부분 특수화에 대해서는 아무것도 반환하지 않습니다.

그렇지 않으면, std:: bad_expected_access < std:: decay_t < E >> 타입의 예외를 발생시키며, 이 예외는 error() 의 사본을 포함합니다.

1,2) 만약 std:: is_copy_constructible_v < E > false 인 경우, 프로그램의 형식이 올바르지 않습니다.
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)