std::shared_ptr
C 标准库包含数组的 std::unique_ptr 特化,它可以从其析构函数中正确调用 delete[]。然而,std::shared_ptr 显然不存在类似的专门化。此行为需要用户手动提供显式调用delete[]的删除器。
这种遗漏是疏忽还是有意为之?
缺席原因
C 库工作组 (LWG) 已考虑 std::shared_ptr
具体来说,std::shared_ptr
近期进展
非正式地,该主题再次在LWG,并且已经开发出原型。虽然此功能有可能成为一个有价值的工具,但它是否包含在标准中仍然不确定。
当前状态
从 C 11 开始,std:: Shared_ptr
更新 (2017)
C 17 标准包括支持对于 std::shared_ptr 中的数组(shared_ptr::shared_ptr() 的情况 3)。
以上是为什么 C 中没有 std::shared_ptr 专业化?的详细内容。更多信息请关注PHP中文网其他相关文章!