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...

Содержание

Параметры

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 (начиная с нуля)
(публичная функция-член)
читает значение variant по индексу или типу (если тип уникален), генерирует исключение при ошибке
(шаблон функции)