variant_holds_alternative
variant_holds_alternative (variant가 특정 타입을 보유하는지 확인)
이 페이지는 C++ 표준 라이브러리의 std::variant 관련 함수인 variant_holds_alternative에 대해 설명해요. 이 함수는 주어진 variant 객체가 특정 타입의 값을 현재 보유하고 있는지를 컴파일 타임에 검사하는 데 사용돼요. C++17부터 사용할 수 있어요.
출처: cppreference
본문
함수 선언
template < class T , class ... Types > constexpr bool holds_alternative ( const std :: variant < Types ... >& v ) noexcept ;
C++17부터 사용 가능해요.
설명
variant v가 대체 타입 T를 보유하고 있는지 확인해요. 만약 T가 Types...에 정확히 한 번 나타나지 않으면 이 호출은 ill-formed(형식이 잘못된) 코드가 돼요.
매개변수
| v | - | 검사할 variant |
|---|
반환값
variant가 현재 대체 타입 T를 보유하고 있으면 true, 그렇지 않으면 false를 반환해요.
예제
#include <cassert>
#include <string>
#include <variant>
int main()
{
std::variant<int, std::string> v = "abc";
assert(not std::holds_alternative<int>(v));
assert(std::holds_alternative<std::string>(v));
}
같이 보기
| index | variant가 보유한 대체 타입의 0부터 시작하는 인덱스를 반환해요 (공개 멤버 함수) |
|---|---|
| get (std::variant) (C++17) | 인덱스나 타입(타입이 유일한 경우)으로 variant의 값을 읽어요. 오류가 있으면 예외를 던져요 (함수 템플릿) |