C++ 等待删除共享\u ptr的最佳方式?

C++ 等待删除共享\u ptr的最佳方式?,c++,C++,我有一个场景,其中创建为shared_ptrs的对象是资源,一些步骤必须等待这些资源完全释放 shared\u ptr具有成员函数use\u count(),但依赖该函数将意味着循环检查的效率不高 将shared_ptr封装在另一个类中是一个好主意吗?该类使用一个自定义的删除器来构造它,该删除器设置一个事件标志,该包装器的用户可以等待(使用条件_变量) 或者,创建我自己的共享\u ptr,简单地添加这样的wait\u for \u released()功能,这有意义吗?您可以使用由资源拥有对象锁

我有一个场景,其中创建为
shared_ptr
s的对象是资源,一些步骤必须等待这些资源完全释放

shared\u ptr
具有成员函数
use\u count()
,但依赖该函数将意味着循环检查的效率不高

shared_ptr
封装在另一个类中是一个好主意吗?该类使用一个自定义的删除器来构造它,该删除器设置一个事件标志,该包装器的用户可以等待(使用
条件_变量


或者,创建我自己的共享\u ptr,简单地添加这样的
wait\u for \u released()
功能,这有意义吗?

您可以使用由资源拥有对象锁定的互斥锁,它们可以从其析构函数中释放互斥锁。侍者等待的是互斥锁,而不是与共享指针直接相关的任何东西。

自定义删除程序听起来很合理,但有可能两个或多个内容被不必要地合并、混淆,而某些重新设计将允许您将相关资源声明为局部变量,在正确的时间自动销毁自己