Namespaces
Variants

std::experimental::optional<T>:: value

From cppreference.net
constexpr T & value ( ) & ;
constexpr const T & value ( ) const & ;
(1) (라이브러리 fundamentals TS)
constexpr T && value ( ) && ;
constexpr const T && value ( ) const && ;
(2) (라이브러리 fundamentals TS)

포함된 값을 반환합니다.

1) 다음에 해당함 return bool ( * this ) ? * val : throw bad_optional_access ( ) ; .
2) 다음에 해당함 return bool ( * this ) ? std :: move ( * val ) : throw bad_optional_access ( ) ; .

목차

매개변수

(없음)

반환값

포함된 값에 대한 참조.

예외

std::experimental::bad_optional_access * this 가 값을 포함하지 않는 경우 발생합니다.

참고 사항

역참조 연산자 operator*() 는 이 optional이 값을 포함하는지 확인하지 않으며, 이는 value() 보다 더 효율적일 수 있습니다.

예제

#include <experimental/optional>
#include <iostream>
int main()
{
    std::experimental::optional<int> opt = {};
    try
    {
        int n = opt.value();
    }
    catch (const std::logic_error& e)
    {
        std::cout << e.what() << '\n';
    }
}

가능한 출력:

optional<T>::value: not engaged

참고 항목

사용 가능한 경우 포함된 값을 반환하고, 그렇지 않으면 다른 값을 반환합니다
(public member function)
포함된 값에 접근합니다
(public member function)
(library fundamentals TS)
값을 포함하지 않는 optional에 대한 검사된 접근을 나타내는 예외
(class)