首页 > 后端开发 > C++ > 为什么 C 没有非原子 `std::shared_ptr`?

为什么 C 没有非原子 `std::shared_ptr`?

Linda Hamilton
发布: 2024-11-01 01:21:02
原创
882 人浏览过

 Why Doesn't C   Have a Non-Atomic `std::shared_ptr`?

std::shared_ptr 的非原子等价物以及为什么它在

std::shared_ptr 已获得突出地位原子递增和递减共享所有权智能指针。然而,问题是是否存在非原子等价物。

1。非原子替代选项

尽管对<内存>进行了广泛的检查,但标头,没有可以轻松访问 std::shared_ptr 的非原子等效项。然而,也有一些超出标准的解决方案。

2.为什么 C 11 中不包含非原子 std::shared_ptr

C 11 中缺少非原子版本源于 2010 年 Rapperswil 会议期间进行的讨论。

反对非原子选项的原因:

  • 未原子性编写的代码稍后与线程一起使用时可能会出现问题,从而导致调试挑战。
  • 优点具有跨库行为一致的通用shared_ptr。
  • 原子性对性能的影响最小,可以通过高效的移动构造和移动分配操作来缓解。
  • 自定义非原子共享的可用性如果需要,可以使用指针。

基于这些论点,语言工作组 (LWG) 决定不在 C 11 中引入 share_ptr 的非原子变体。

以上是为什么 C 没有非原子 `std::shared_ptr`?的详细内容。更多信息请关注PHP中文网其他相关文章!

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