与shared_ptr相比,更小的运行时数据结构和更快的代码可实现独特的_ptr

smaller runtime data structures and faster code for unique _ptr compared to shared_ptr

本文关键字:ptr 代码 可实现 相比 shared 运行时 数据结构      更新时间:2023-10-16

对于unique_ptr来说,删除器的类型是智能指针的一部分,但是与shared_ptr相比,这如何帮助编译器生成更小的运行时数据结构和更快的代码以获得独特的_ptr?

删除器不是这里所指的。

shared_ptr<>需要为每个分配的对象分配(除其他事项外(两个额外的数字(强引用计数和弱引用计数(。

如果使用std::make_shared(),它们将与对象本身一起存储,否则,需要为其单独分配。

此外,请记住,unique_ptr<>可以利用空类优化来消除非有状态删除程序的任何开销。

至少,GCC似乎这样做了(至少在std::default_delete(: https://godbolt.org/g/nbENL7