std::bad_variant_access
| 헤더 <variant>
|
||
class bad_variant_access : public std::exception
|
(C++17부터)에 정의됨 | |
std::bad_variant_access 은(는) 다음 상황에서 발생하는 예외의 타입입니다:
- std::get(std::variant) 가 현재 활성화된 대체 항목과 일치하지 않는 인덱스 또는 타입으로 호출된 경우.
std::visit가valueless_by_exception인 variant를 방문하기 위해 호출된 경우.
|
(C++26부터) |
멤버 함수
|
(생성자)
|
새로운
bad_variant_access
객체를 생성함
(public 멤버 함수) |
|
operator=
|
bad_variant_access
객체를 대체함
(public 멤버 함수) |
|
what
|
설명 문자열을 반환함
(public 멤버 함수) |
std::bad_variant_access:: bad_variant_access
|
bad_variant_access
(
)
noexcept
;
|
(1) |
(C++17부터)
(C++26부터 constexpr) |
|
bad_variant_access
(
const
bad_variant_access
&
other
)
noexcept
;
|
(2) |
(C++17부터)
(C++26부터 constexpr) |
bad_variant_access
객체를 생성합니다. 구현에서 정의된 null-terminated byte string을 포함하며, 이는
what()
을 통해 접근할 수 있습니다.
std::bad_variant_access
인 경우
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
입니다.
매개변수
| other | - | 복사할 다른 예외 객체 |
std::bad_variant_access:: operator=
|
bad_variant_access
&
operator
=
(
const
bad_variant_access
&
other
)
noexcept
;
|
(C++17부터)
(C++26부터 constexpr) |
|
other
의 내용을 할당합니다.
*
this
와
other
모두 동적 타입
std::bad_variant_access
를 가지고 있다면, 할당 후
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
입니다.
매개변수
| other | - | 할당할 다른 예외 객체 |
반환 값
* this
std::bad_variant_access:: what
|
virtual
const
char
*
what
(
)
const
noexcept
;
|
(C++17부터)
(constexpr since C++26) |
|
설명 문자열을 반환합니다.
반환값
설명 정보를 포함하는 구현 정의 널 종료 문자열에 대한 포인터입니다. 이 문자열은 std::wstring 으로 변환 및 표시하기에 적합합니다. 이 포인터는 최소한 해당 포인터를 얻은 예외 객체가 파괴되거나, 예외 객체의 비상수 멤버 함수(예: 복사 할당 연산자)가 호출되기 전까지 유효함이 보장됩니다.
|
상수 평가 중에는 반환된 문자열이 일반 리터럴 인코딩으로 인코딩됩니다. |
(C++26부터) |
참고
구현체는
what()
을 재정의할 수 있지만 필수는 아닙니다.
std:: exception 로부터 상속됨
멤버 함수
|
[virtual]
|
예외 객체를 파괴함
(
std::exception
의 virtual public 멤버 함수)
|
|
[virtual]
|
설명 문자열을 반환함
(
std::exception
의 virtual public 멤버 함수)
|
예제
#include <iostream> #include <variant> int main() { std::variant<int, float> v; v = 12; try { std::get<float>(v); } catch (const std::bad_variant_access& e) { std::cout << e.what() << '\n'; } }
가능한 출력:
bad_variant_access
참고 항목
|
(C++17)
|
인덱스나 타입(타입이 고유한 경우)으로 variant의 값을 읽어오며, 오류 시 예외를 발생시킴
(함수 템플릿) |
|
(C++17)
|
하나 이상의
variant
가 보유한 인자들로 제공된 함수자를 호출함
(함수 템플릿) |
|
(C++26)
|
variant
가 보유한 인자로 제공된 함수자를 호출함
(public member function) |
|
(C++17)
|
값을 포함하지 않는 optional에 대한 검사된 접근을 나타내는 예외
(클래스) |
|
(C++23)
|
예상치 못한 값을 포함하는
expected
에 대한 검사된 접근을 나타내는 예외
(클래스 템플릿) |