std::any 的性能开销:基于 libstd++ 源码分析
C++17 中引入了 std::any,可以非常方便地将任意类型的变量放到其中,做到安全的类型擦除。然而万物皆有代价,这种灵活性背后必然伴随着性能取舍。 std::any 的实现本身也并不复杂,本文将基于 libstd++ 标准库源码 深入解析其实现机制与性能开销。 底层存储 std::any...
C++17 引入的 std::any 允许存储任意类型,但灵活性带来了性能开销。其通过 _Storage 存储数据和 _M_manager 管理类型信息,采用小对象优化以提升性能。尽管方便,std::any 仍存在内存浪费和额外开销。
