optional_bad_optional_access

optional_bad_optional_access (std::optional 접근 예외)

이 페이지에서는 std::bad_optional_access 예외 클래스에 대해 설명해요. 이 예외는 std::optional 객체에 값이 없는데 value()로 접근할 때 던져져요. C++17부터 사용할 수 있어요.

출처: cppreference

본문

정의

<optional> 헤더에 정의되어 있어요.

정의
class bad_optional_access; (since C++17)

이 클래스는 값을 포함하지 않는 optional 객체에 std::optional::value()로 접근할 때 던져질 객체의 타입을 정의해요.

상속 다이어그램

std::exception에서 파생되는 예외 클래스예요.

멤버 함수

멤버 함수 설명
(constructor) 새로운 bad_optional_access 객체를 생성해요 (공개 멤버 함수)
operator= bad_optional_access 객체를 교체해요 (공개 멤버 함수)
what 설명 문자열을 반환해요 (공개 멤버 함수)

std::bad_optional_access::bad_optional_access

(1) (since C++17)
bad_optional_access() noexcept;
(2) (since C++17)
bad_optional_access(const bad_optional_access& other) noexcept;

what()로 접근할 수 있는 구현 정의된 null 종료 바이트 문자열을 사용해 새로운 bad_optional_access 객체를 생성해요.

매개변수

other - 복사할 다른 예외 객체

std::bad_optional_access::operator=

(since C++17)
bad_optional_access& operator=(const bad_optional_access& other) noexcept;

other의 내용을 *this에 할당해요. *thisother 모두 동적 타입이 std::bad_optional_access라면, 할당 후 std::strcmp(what(), other.what()) == 0이 돼요.

매개변수

other - 할당할 다른 예외 객체

반환값

*this

std::bad_optional_access::what

(since C++17)
virtual const char* what() const noexcept;

설명 문자열을 반환해요.

반환값

설명 정보가 담긴 구현 정의된 null 종료 문자열을 가리키는 포인터를 반환해요. 이 문자열은 std::wstring으로 변환하고 표시하기에 적합해요. 포인터는 적어도 해당 예외 객체가 파괴될 때까지 또는 예외 객체에 대해 비-const 멤버 함수(예: 복사 할당 연산자)가 호출될 때까지 유효함이 보장돼요.

(since C++26)
반환된 문자열은 상수 평가 중에 일반 리터럴 인코딩으로 인코딩돼요.

참고

구현은 what()을 재정의할 수 있지만 필수는 아니에요.

std::exception에서 상속받은 멤버 함수

멤버 함수 설명
(destructor) [virtual] 예외 객체를 파괴해요 (std::exception의 가상 공개 멤버 함수)
what [virtual] 설명 문자열을 반환해요 (std::exception의 가상 공개 멤버 함수)

더 알아보기 (Learn more)

cppreference