在某些情况下,我希望有一些基于时间的智能指针,例如缓存一些笨重的对象,但如果不使用,会在一定时间后自动释放。当触摸(解除引用)指针时,重新开始倒计时,如果您需要锁定“倒计时”,也可以停止倒计时。对象计算的持续时间。类似的东西:
timed_ptr<Type,30> p = new Type(); \\object is deleted after 30 seconds, and pointer set to a checkable 'null' state
...
p.stop_count_down();
// do something with the object, guaranteed it won't expire while we still need it.
p.start_count_down();
在boost或其他库中是否存在此类任何内容?
答案 0 :(得分:0)
我认为你通过计时来失去智能指针的好处。只需要一些对象负责管理这些资源,并在需要时从中请求资源。否则,在使用指针之前,您需要检查资源是否仍然加载。这是共享指针的确切问题,其中一些其他代码可能使资源/内存无效,并且在使用之前必须始终验证指针的资源。