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 <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, отсчитываемый от нуля (функция-член класса) |
|
|
(C++17) | читает значение варианта по индексу или типу (если тип уникален); при ошибке выбрасывает исключение (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/variant/holds_alternative