std::variant与类型安全联合
请比较union和std::variant。variant如何实现类型安全?
回答
专业代码师
union问题:UB访问非活跃成员、不自动管理生命周期、不跟踪当前类型。 std::variant:类型安全、自动生命周期管理、index()跟踪当前类型、std::visit访问器模式。 大小:variant=最大成员+索引(多1-8字节)。
请比较union和std::variant。variant如何实现类型安全?
union问题:UB访问非活跃成员、不自动管理生命周期、不跟踪当前类型。 std::variant:类型安全、自动生命周期管理、index()跟踪当前类型、std::visit访问器模式。 大小:variant=最大成员+索引(多1-8字节)。