c++ - 是否存在定时指针?

标签 c++ c++11 smart-pointers

<分区>

在某些情况下,我希望有某种基于时间的智能指针,例如缓存一些庞大的对象,但如果不使用它会在一定时间后自动释放。当指针被触摸(解除引用)时,倒计时将重新开始,如果您需要在计算期间“锁定”事件对象,您也可以停止倒计时。像这样的东西:

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 或其他库中是否存在此类内容?

最佳答案

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

关于c++ - 是否存在定时指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38111041/

相关文章:

c++ - 在 C++ 中创建具有多次重复的相同元素的数组

c++ - 是否可以从 qt QColumnView 中删除预览小部件?

c++ - 成员函数替代名称

C++ 使用 scoped_ptr 作为成员变量

c++ - 将 std::weak_ptr 传递给函数有用吗?

c++ - 一个唯一的 ptr 类应该如何将它的实例指针传递给它的成员对象

C++ 初始化列表 - 我不明白

c++ - 将 typedef 映射插入哈希表

c++ - 是否可以在编译时评估数组?

c++ - MyType 允许 std::atomic<MyType> 的确切要求是什么?