Это функция C++17, которая предоставляет безопасный с точки зрения типов контейнер для единичных значений любого типа. Она позволяет хранить и манипулировать значениями разных типов в одном объекте, подобно
std::variant. Однако, в отличие от std::variant, который требует явного указания допустимых типов, std::any может хранить значения любого типа.Класс
std::any является частью стандартной библиотеки C++ и определяется в заголовке <any>. std::any предоставляет функции, такие как type(), has_value(), reset(), emplace() и другие, которые позволяют манипулировать и запрашивать хранимое значение.В этом примере мы создаем объект
val, который может хранить значения любого типа. Мы присваиваем val различные значения и извлекаем их с помощью std::any_cast и проверки типа с помощью typeid.Однако при попытке извлечь значение, используя неправильный тип (в данном случае
std::any_cast<int>), возникает исключение std::bad_any_cast, которое можно обработать с помощью try-catch.
