非原子智能指针:探索 C 标准中的缺失
在 C 内存管理领域,std::shared_ptr由于其原子操作,它是一种特殊的智能指针。这就提出了一个问题:为什么标准内存库中没有非原子对应项?
1。 std::shared_ptr 的非原子替代品
虽然 std::shared_ptr 提供原子行为,但某些场景可能不需要这样的开销。为了解决这个问题,出现了外部库,提供非原子引用计数智能指针。然而,标准内存库本身缺乏这样的功能。
2. C 11 中的缺席:原因和争论
尽管被认为有用,但在 C 11 标准化过程中,关于 std::shared_ptr 非原子版本的提议被拒绝了。有几个论点促成了这一决定:
结论
中缺少非原子 std::shared_ptr C 标准是基于对潜在误用、一致性、性能和定制灵活性的担忧而深思熟虑的决定的结果。虽然外部库可以提供此类替代方案,但标准本身优先考虑了用于内存管理的通用原子智能指针的好处。
以上是为什么 C 标准不包含非原子 `std::shared_ptr`?的详细内容。更多信息请关注PHP中文网其他相关文章!