为什么`std :: shared_ptr`存储一个类型擦除的删除器

时间:2017-01-05 07:06:56

标签: c++ c++11 shared-ptr atomic type-erasure

为什么std::shared_ptr接受删除器作为构造函数参数而不是模板参数?存储类型擦除删除器似乎违背了C ++哲学,即不向标准库组件添加任何不必要的开销。

我可以看到的唯一逻辑是,由于引用计数的原子增量成本太高,因此忽略了通过类型擦除的间接成本。但它似乎仍然是不必要的开销。

0 个答案:

没有答案