主要区别
类型安全:std::variant 提供类型安全,而 union 不提供。
内存管理:std::variant 管理哪种类型当前被存储,而 union 需要程序员手动管理。
使用方便:std::variant 提供了更现代、更方便的接口,包括访问控制、类型安全检查等。
性能开销:由于额外的类型安全和类型跟踪,std::variant 在某些情况下可能比 union 有更多的性能开销。
总的来说,std::variant 是对传统 union 的现代、类型安全的替代,适用于需要类型安全和灵活性的场景。而 union 则更适用于那些对内存使用和性能有严格要求的低级编程场景。
【 在 mango7788 的大作中提到: 】
: 这货和 union 究竟有啥不同。。。
--
FROM 114.249.28.*