C++ std::optional

OpenJR·2022년 12월 31일
0

std::optional

std::optional<>는 값이 있을 때 없을 때를 체크해주는 기능을 제공한다.

예제

#include <iostream>
#include <optional>
#include <string>

std::optional<std::string> get(bool flag) {
    if (flag) {
        return "Is True";
    } else {
        return std::nullopt;
    }
}


int main()
{
    std::optional<std::string> value = get(true);
    // std::optional<std::string> value = get(false);
    std::cout << value.has_value() << std::endl;;
    if(value) {
        std::cout << *value << std::endl;;
    } else {
        std::cout << "No value" << std::endl;;
    }

    return 0;
}

True일 시, has_value()는 1을 반환하고 if문으로 값을 출력한다.
False일 시, has_value()는 0을 반환하고 else문으로 "No value"를 출력한다.
값을 불러오는 방법은 총 2가지이다.
1. *value
2. value.value()

profile
Jacob

0개의 댓글