РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
450 of 815 menu

Функция holds_alternative

Функция holds_alternative проверяет, содержит ли объект std::variant значение указанного типа. Она принимает объект variant и возвращает true, если в данный момент variant хранит значение именно этого типа, и false в противном случае. Тип передаётся в качестве шаблонного параметра.

Синтаксис

std::holds_alternative<T>(v)

Пример

Давайте создадим variant, который может хранить int, double или string, и проверим, какой тип хранится в нём сейчас:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, double, string> v = 123; cout << boolalpha; cout << holds_alternative<int>(v) << endl; cout << holds_alternative<double>(v) << endl; cout << holds_alternative<string>(v) << endl; return 0; }

Результат выполнения кода:

true false false

Пример

Давайте изменим значение variant на строку и снова проверим тип:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, double, string> v = "abcde"; cout << boolalpha; cout << holds_alternative<int>(v) << endl; cout << holds_alternative<string>(v) << endl; return 0; }

Результат выполнения кода:

false true

Пример

Давайте используем holds_alternative вместе с if для выбора действий в зависимости от хранимого типа:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, string> v = 123; if (holds_alternative<int>(v)) { cout << "int: " << get<int>(v) << endl; } else if (holds_alternative<string>(v)) { cout << "string: " << get<string>(v) << endl; } return 0; }

Результат выполнения кода:

"int: 123"

Смотрите также

  • класс variant,
    который хранит значение одного из нескольких типов
  • функция get,
    которая возвращает значение из variant
  • функция get_if,
    которая возвращает указатель на значение из variant
  • метод index,
    который возвращает индекс текущей альтернативы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить