tg-me.com/cpp_geek/277
Last Update:
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
BY C++ geek

Share with your friend now:
tg-me.com/cpp_geek/277