std::holds_alternative
Определено в заголовочном файле <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 <variant>
#include <string>
#include <iostream>
int main()
{
std::variant<int, std::string> v = "abc";
std::cout << std::boolalpha
<< "variant holds int? "
<< std::holds_alternative<int>(v) << '\n'
<< "variant holds string? "
<< std::holds_alternative<std::string>(v) << '\n';
}Вывод:
variant holds int? false variant holds string? true
См. также
| возвращает нулево-основанный индекс альтернативы, содержащейся в варианте (публичный член-функция) |
|
|
(C++17) | считывает значение варианта, заданного по индексу или типу (если тип уникален), выбрасывает исключение при ошибке (шаблонная функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/variant/holds_alternative