ATV*_*ATV 7 c++ smart-pointers shared-ptr c++11 c++14
在我们的应用程序中,我们即将(最终......)从原始指针切换到使用C++ 11 smart_ptr模板.
我们的应用程序中偶尔会出现一些错误,其中(非C++)对象在访问then-dealloc'd对象时仍然保留对我们的C++对象的引用,导致过去崩溃.
不确定这是否是一个愚蠢的问题 - 但是有没有办法利用这些smart_ptr对象并" 转储 "仍然保留在C++对象上的对象,而这些对象不再需要持有对它的引用?
我想我要求的是一种smart_ptr<MyClass>在某个时间点列出所有业主的方法.
任何建议非常感谢!
不可以。如果不创建自己的智能指针类来包装std::unique_ptr并std::shared_ptr(忽略已弃用的std::auto_ptr)跟踪此信息,则无法做到这一点。标准类本身不跟踪此信息(成本太高)。
另一种选择是修改标准库实现的代码以跟踪该信息。由于您可以继续使用标准名称,因此对您的代码的侵入性较小。但可能比仅仅包装类并使用包装器更棘手。
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |