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()