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

Функция any_cast

Функция any_cast используется для извлечения значения из объекта any. В первый параметр мы передаем объект any, из которого нужно извлечь значение. Функция выполняет проверку типа и возвращает копию хранимого значения. Если тип не совпадает, генерируется исключение bad_any_cast.

Синтаксис

any_cast<T>(any_obj)

Пример

Давайте извлечем целое число из объекта any:

#include <iostream> #include <any> using namespace std; int main() { any a = 123; int res = any_cast<int>(a); cout << res << endl; return 0; }

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

123

Пример

Давайте извлечем строку из объекта any:

#include <iostream> #include <any> #include <string> using namespace std; int main() { any a = string("abcde"); string res = any_cast<string>(a); cout << res << endl; return 0; }

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

"abcde"

Пример

Давайте попробуем извлечь число как строку, что вызовет исключение:

#include <iostream> #include <any> #include <string> using namespace std; int main() { any a = 123; try { string res = any_cast<string>(a); cout << res << endl; } catch (const bad_any_cast& e) { cout << "Bad any_cast: " << e.what() << endl; } return 0; }

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

"Bad any_cast: bad any_cast"

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

  • функция make_any,
    которая создает объект any
  • оператор static_cast,
    который выполняет явное преобразование типов
  • оператор dynamic_cast,
    который выполняет безопасное преобразование полиморфных типов
  • оператор const_cast,
    который снимает или добавляет константность
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить