TGViewer
Senior C++ Developer Senior C++ Developer @seniorcpp · 11.6K subscribers
Post #2508 3.12K
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.
More from @seniorcpp
  1. Oct 9, 2026init внутри if и switch Эта возможность C++17 мне полюбилась сразу же, как только я узнал…
  2. Oct 8, 2026Сортировка пузырьком Определите, сколько обменов сделает алгоритм пузырьковой сортировки п…
  3. Oct 6, 2026#вопросы_с_собеседований Что такое чисто виртуальный метод и абстрактный класс? Ответ: Чис…
  4. Oct 5, 2026#вопросы_с_собеседований В чем отличие vector от deque? Ответ: Здесь вспоминают о наличии…
  5. Oct 4, 2026Избавляемся от макросов В целом, разработчики стандарта стараются исключить препроцессор.…
  6. Oct 1, 2026malloc стал безопасен В предыдущих версиях использование низкоуровневых функций, унаследов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →