定时指针存在吗?

Eme*_*pon 6 c++ smart-pointers c++11

在某些情况下,我希望有一些基于时间的智能指针,例如缓存一些庞大的对象,但如果不使用,会在一定时间后自动释放.当触摸(解除引用)指针时,重新开始倒计时,如果需要在计算期间"锁定"对象,则还可以停止倒计时.就像是:

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();
Run Code Online (Sandbox Code Playgroud)

在boost或其他库中是否存在此类任何内容?

Jas*_*son 0

我认为你会因为计时而失去智能指针的好处。只需让某个对象负责管理这些资源并在需要时向其请求资源即可。否则,您需要在使用指针之前检查资源是否仍然加载。这正是共享指针的问题,其中某些其他代码可能会使资源/内存无效,并且您必须始终在使用指针的资源之前验证它。