std::variant 共 5 篇文章

C++ std::variant的visitor模式与模式匹配实现
2026-06-14 21:39:26
C++ std::variant的visitor模式与模式匹配实现 std::variant是C++17引入的一种安全、可辨识的联合体,用于在固定类型集合中存储其中一个值。与传统的union相比,它更安全,且能自动管理生命周期。然而,要处理其内部存储的具体类型,就需要“访问”机制。本文将手把手教你从
C++17 std::variant visitor模式
64 0
C++ std::variant 为什么比传统 union 更类型安全
2026-05-28 06:23:35
C++ std::variant 为什么比传统 union 更类型安全 问题源头:传统 union 的“裸”内存共享 传统 C 风格的 union 让你在同一个内存位置存储不同类型的数据,但不提供任何类型跟踪机制。写入一个成员后,读取另一个未被初始化的成员,会触发未定义行为(UB)。编译器无法检测这
std::variant 类型安全
96 0
C++ std::variant的valueless_by_exception状态处理
2026-05-03 04:17:09
C++ std::variant的valuelessbyexception状态处理 std::variant 是 C++17 引入的类型安全联合体。它通常用来存储多种类型中的任意一种,但在极少数异常情况下,它会进入一个特殊的“无效”状态,即 valuelessbyexception。如果不处理这种状
C++编程 std::variant 异常处理
91 0
C++ std::variant的std::monostate作为默认无值状态
2026-04-26 05:14:59
C++ std::variant的std::monostate作为默认无值状态 C++17 引入了 std::variant,作为类型安全的 union 替代品。然而,与可以指向 nullptr 的指针或具有 std::nullopt 的 std::optional 不同,std::variant
C++ C++17 stdvariant
106 0
C++ std::variant的std::visit访问者模式实现
2026-04-23 15:17:30
C++ std::variant的std::visit访问者模式实现 std::variant是C++17引入的类型安全联合类型替代方案,它允许在同一个对象中存储不同类型的数据。访问者模式是一种设计模式,允许在不修改原有类结构的情况下添加新操作。将std::variant与std::visit结合使
C++17 std::variant 访问者模式
100 0