std::optional은 C++17에 추가된 유틸리티
도입 이유
전통적으로 값이 없음을 표현하기 위해 nullptr이나 특별한 값을 사용했으나 값이 유효한지 확인하는 과정에서 실수를 줄이기 위해 도입
주요 기능
값이 없을 때 객체를 생성하지 않아도 됨
값이 없을 수 있는 객체임을 명시적으로 이해할 수 있음
값이 없는 상태를 명시적으로 처리하기 위해 std::nullopt 사용
operator bool이 구현되어 있어 값이 존재하는지 확인
사용 예시
#include <optional>
#include <iostream>
using namespace std;
optional<int> divide(int a, int b)
{
if (b == 0)
return nullopt;
return a / b;
}
int main()
{
optional<int> result = divide(10, 2);
if (result)
cout << "Result : " << *result; // 값이 있을 때
else
cout << "Division by zero"; // 값이 없을 때
}
'C++' 카테고리의 다른 글
C++ 람다 (1) | 2024.11.15 |
---|---|
C++ 구조체, 클래스의 패딩 바이트 (0) | 2024.10.11 |
C++ std::bitset (1) | 2024.09.25 |
C++ std::function (0) | 2024.09.23 |
C++ atomic (0) | 2024.09.18 |