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에 할당해요. *this와 other 모두 동적 타입이 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의 가상 공개 멤버 함수) |