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

+ Recent posts

목차