我一直在思索使用unique_ptrVS shared_ptrVS own_solution.我已经贴现后,我几乎肯定会弄错了,但我有一个问题,都unique_ptr和shared_ptr中,无论是捕捉恰恰就是我想要的.我想创建一个显式拥有资源的资源管理器,但是我希望资源管理器也能分发对资源的引用.
如果我unique_ptr在资源管理器中使用并分发原始指针,那么他们可能会逃到其他地方(尽管这会违反我认为的类"合同").如果我使用shared_ptr和分发weak_ptr,那么没有什么能阻止调用者将其转换weak_ptr为a shared_ptr并存储它,从而可能创建一个循环或更糟的是,资源生存在资源管理器的生命周期之外.因此,我认为我正在寻找的是一种weak_ptr无法转化为无法实现的shared_ptr.
或者我只是想在代码中使用一些措辞强烈的评论强制执行合同?
感谢您对此可能有的任何想法.