TGViewer
C++ geek C++ geek @cpp_geek · 3.53K subscribers
Post #277 3.49K
std::variant

Это фича C++17, обеспечивающая типобезопасное объединение, позволяющее хранить и манипулировать значениями разных типов в одном объекте. Она является частью стандартной библиотеки C++ и определена в заголовке .

Шаблонный класс std::variant похож на упрощенную версию union, но с дополнительной безопасностью типов и поддержкой различных операций.

Основными функциями std::variant являются index(), valueless_by_exception(), operator=, emplace.

В этом примере мы создаем объект var, который может содержать значения типов int, float или std::string. Мы присваиваем var различные значения и получаем их с помощью std::get.

Однако, если мы попытаемся получить значение, используя неправильный тип (например, std::get(var), когда вариант содержит std::string, это вызовет исключение std::bad_variant_access.

➡️ @cpp_geek
  • 👍 7
  • 🔥 1
More from @cpp_geek
  1. Sep 29, 2026Dependency Injection Dependency Injection (DI) — это паттерн проектирования, который позво…
  2. Sep 24, 2026🎥 Вебинар по C++: Паттерн многопоточного программирования «Producer-Consumer» Когда неско…
  3. Sep 24, 2026Execution policy для параллельных алгоритмов Execution policy в C++ — это новшество, введе…
  4. Sep 17, 2026В чем разница между git fetch и git pull? Разница между этими командами заключается в том,…
  5. Sep 15, 2026std::tie std::tie — это функция, которая создает кортеж ссылок на lvalue из своих аргумент…
  6. Sep 11, 2026move constructor Move-конструктор — это специальный конструктор, который позволяет эффекти…
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 →