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

时间:2017-08-16 02:34:58

标签: c++ c++11 c++14 shared-ptr unique-ptr

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

1 个答案:

答案 0 :(得分:1)

删除者不是这里提到的。

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

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

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

gcc,至少似乎是这样做的(至少std::default_delete): https://godbolt.org/g/nbENL7

相关问题