首页 > 后端开发 > C++ > 为什么 C 标准库中没有'std::shared_ptr”?

为什么 C 标准库中没有'std::shared_ptr”?

Mary-Kate Olsen
发布: 2024-11-10 04:07:53
原创
520 人浏览过

Why isn't there a `std::shared_ptr` in the C   standard library?

深入探究 std::shared_ptr 的缺失

在 C 标准库中,存在一个用于数组的 std::unique_ptr 的专用版本 std::unique_ptr 可以在其析构函数中正确调用 delete[]。然而, std::shared_ptr 缺乏这样的专业化,因此需要使用像问题中展示的自定义删除器。

缺乏专业化的理由

缺少 std::shared_ptr ;源于多种因素的综合作用:

  • LWG 讨论: 库工作组 (LWG) 考虑了这个想法,但最终因围绕针对 shared_ptr.
  • 缺乏正式提案:尽管进行了非正式讨论,但尚未向 LWG 提交关于创建 std::shared_ptr 的正式提案;.

现状与未来展望

尽管存在历史性的犹豫,但最近的讨论重新点燃了 LWG 成员的兴趣。虽然原型已经实施,但正式提案仍然悬而未决。 std::shared_ptr 的可行性和最终采用仍不确定。

即将开发

open-std.org 草案 TS(技术规范)提出对 std::shared_ptr 的数组支持。如果采用该 TS,将引入 std::shared_ptr 。作为 C 标准的一部分。

C 17 更新

草案 TS 现已合并到 C 17 中,为 std::shared_ptr。详情请参考shared_ptr::shared_ptr()的情况3。

以上是为什么 C 标准库中没有'std::shared_ptr”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板