0

除了捕获尝试在作为原始指针的指针上调用 shared_from_this() 时引发的 bad_weak_ptr 错误之外,还有没有办法测试对象是否被引用计数?

我有处理原始指针和共享指针的函数,我想确保在使用错误指针时错误很明显?我当然可以抓住错误,但我只是想知道是否有一种简单的方法可以测试这种特殊情况?

4

2 回答 2

2

std::enable_shared_from_this<T>::shared_from_this()对现有有效对象或指向它的指针的调用将永远不会失败。编辑: ...如果至少有一个std::shared_ptr<YourClass>where YourClassis的实例std::enable_shared_from_this<YourClass>。这是一个比第一个更严格的声明,如果被误解,我深表歉意。

shared_from_this()您可以通过仅创建shared_ptr类的实例来确保 的有效性。除了捕获异常之外,没有办法检查YourClass实例是否由 a 管理。shared_ptr

于 2010-11-03T18:49:41.027 回答
1

不要混合原始指针和托管指针。

于 2010-11-03T18:50:43.127 回答