tgoop.com/seniorcpp/2508
Last Update:
std::any
Это функция 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.
BY Senior C++ Developer

Share with your friend now:
tgoop.com/seniorcpp/2508