【发布时间】:2017-05-22 14:42:13
【问题描述】:
在简单的引用计数智能指针实现中,引用计数器可能会溢出。在 C++ 标准库实现中如何避免或处理这种溢出?
【问题讨论】:
-
我不确定您是否会溢出引用计数。如果他们使用
size_t,那么他们应该无法分配足够的指针来溢出它。 -
std::shared_ptr的函数返回引用计数器returns along,所以我猜这是“软”限制。 -
这是一个真正的问题。如果您每纳秒生成一个新引用,您将在不到 600 年的时间内溢出 64 位计数。
-
@stark 和您的指针会消耗比 64 位指针可以寻址的更多内存 :)
-
如果你的程序溢出了一个引用计数器,你应该得到它。
标签: c++ automatic-ref-counting smart-pointers integer-overflow refcounting