Namespaces
Variants

std:: holds_alternative

From cppreference.net
Utilities library
ヘッダーで定義 <variant>
template < class T, class ... Types >
constexpr bool holds_alternative ( const std:: variant < Types... > & v ) noexcept ;
(C++17以降)

バリアント v が代替型 T を保持しているかどうかをチェックします。 T Types... 内に正確に1回出現しない場合、この呼び出しは不適格となります。

目次

パラメータ

v - 検査するバリアント

戻り値

true バリアントが現在 T の代替型を保持している場合、 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));
}

関連項目

variant が保持する代替案の0ベースのインデックスを返す
(public member function)
インデックスまたは型(型が一意の場合)を指定してvariantの値を読み取り、エラー時には例外をスローする
(function template)