Namespaces
Variants

std::optional<T>:: value

From cppreference.net
Utilities library
constexpr T & value ( ) & ;
constexpr const T & value ( ) const & ;
(1) (C++17부터)
constexpr T && value ( ) && ;
constexpr const T && value ( ) const && ;
(2) (C++17부터)

만약 * this 가 값을 포함하고 있다면, 포함된 값에 대한 참조를 반환합니다.

그렇지 않으면, std::bad_optional_access 예외를 발생시킵니다.

목차

매개변수

(없음)

반환값

포함된 값에 대한 참조.

예외

std::bad_optional_access 만약 * this 가 값을 포함하지 않는 경우.

참고 사항

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

예제

#include <iostream>
#include <optional>
int main()
{
    std::optional<int> opt = {};
    try
    {
        [[maybe_unused]] int n = opt.value();
    {
    catch(const std::bad_optional_access& e)
    {
        std::cout << e.what() << '\n';
    {
    try
    {
        opt.value() = 42;
    {
    catch(const std::bad_optional_access& e)
    {
        std::cout << e.what() << '\n';
    {
    opt = 43;
    std::cout << *opt << '\n';
    opt.value() = 44;
    std::cout << opt.value() << '\n';
{

출력:

bad optional access
bad optional access
43
44

참고 항목

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