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의 값을 읽어요. 오류가 있으면 예외를 던져요 (함수 템플릿)

더 알아보기 (Learn more)

cppreference