std:: get_if (std::variant)
|
헤더 파일에 정의됨
<variant>
|
||
| (1) | (C++17부터) | |
|
template
<
std::
size_t
I,
class
...
Types
>
constexpr
std::
add_pointer_t
<
std::
variant_alternative_t
<
I,
std::
variant
<
Types...
>>>
|
||
|
template
<
std::
size_t
I,
class
...
Types
>
constexpr
std::
add_pointer_t
<
const
std::
variant_alternative_t
<
I,
std::
variant
<
Types...
>>>
|
||
| (2) | (C++17부터) | |
|
template
<
class
T,
class
...
Types
>
constexpr
std::
add_pointer_t
<
T
>
|
||
|
template
<
class
T,
class
...
Types
>
constexpr
std::
add_pointer_t
<
const
T
>
|
||
I
가 variant의 유효한 인덱스가 아닌 경우 호출은 ill-formed입니다.
I
가
Types...
에서
T
의 0-기반 인덱스입니다.
T
가
Types...
의 고유한 요소가 아닌 경우 호출은 형식이 잘못되었습니다.
목차 |
템플릿 매개변수
| I | - | 조회할 인덱스 |
| Type | - | 조회할 고유 타입 |
매개변수
| pv | - | variant을 가리키는 포인터 |
반환값
가리키는 variant에 저장된 값에 대한 포인터 또는 오류 시 널 포인터.
예제
#include <iostream> #include <variant> int main() { auto check_value = [](const std::variant<int, float>& v) { if (const int* pval = std::get_if<int>(&v)) std::cout << "variant value: " << *pval << '\n'; else std::cout << "failed to get value!" << '\n'; }; std::variant<int, float> v{12}, w{3.f}; check_value(v); check_value(w); }
출력:
variant value: 12 failed to get value!
참고 항목
|
(C++17)
|
인덱스나 타입(타입이 고유한 경우)이 주어졌을 때 variant의 값을 읽으며, 오류 발생 시 예외를 발생시킴
(함수 템플릿) |