std::shared_ptr
C 标准库包含一个 std 的专用模板: :unique_ptr 在其析构函数中适当地调用delete[]。然而, std::shared_ptr 缺乏类似的专业化,因此需要使用自定义删除器来正确地释放数组。
缺乏专业化的原因
最初,省略了 std::shared_ptr
最终,缺乏 std::shared_ptr
当前状态
尽管缺乏专门的模板,C 17 还是引入了部分数组支持对于shared_ptr,如shared_ptr::shared_ptr()方法的第三种情况中指定的。此更新允许使用shared_ptr创建和销毁数组,尽管没有专用专业化的便利。
未来前景
TS(技术规范)草案 N4077概述了在shared_ptr中实现数组支持的潜在途径,该功能最终被合并到C 17中。C的持续发展可能会为该领域带来进一步的增强,为使用共享指针的数组管理提供额外的灵活性和表现力。
以上是为什么 `std::shared_ptr` 没有专门针对数组类型?的详细内容。更多信息请关注PHP中文网其他相关文章!