除了捕获尝试在作为原始指针的指针上调用 shared_from_this() 时引发的 bad_weak_ptr 错误之外,还有没有办法测试对象是否被引用计数?
我有处理原始指针和共享指针的函数,我想确保在使用错误指针时错误很明显?我当然可以抓住错误,但我只是想知道是否有一种简单的方法可以测试这种特殊情况?
除了捕获尝试在作为原始指针的指针上调用 shared_from_this() 时引发的 bad_weak_ptr 错误之外,还有没有办法测试对象是否被引用计数?
我有处理原始指针和共享指针的函数,我想确保在使用错误指针时错误很明显?我当然可以抓住错误,但我只是想知道是否有一种简单的方法可以测试这种特殊情况?
std::enable_shared_from_this<T>::shared_from_this()
对现有有效对象或指向它的指针的调用将永远不会失败。编辑: ...如果至少有一个std::shared_ptr<YourClass>
where YourClass
is的实例std::enable_shared_from_this<YourClass>
。这是一个比第一个更严格的声明,如果被误解,我深表歉意。
shared_from_this()
您可以通过仅创建shared_ptr
类的实例来确保 的有效性。除了捕获异常之外,没有办法检查YourClass
实例是否由 a 管理。shared_ptr
不要混合原始指针和托管指针。