资我具有从enable_shared_from_this派生的类和其通过调用shared_from_this返回一个共享指针()的方法。我想在该方法中检测对象是否由shared_ptr拥有,如果不是抛出。我试过这样的事情:检测是否一个目的是通过一个智能指针
shared_ptr<T> getPointer() {
shared_ptr<T> ptr(shared_from_this()));
if(!ptr)
throw "Not owned by smart pointer"
return ptr;
}
虽然这不起作用,因为在构建ptr期间引发了一个糟糕的弱指针异常。有没有另一种方法。在标准接口
你不能捕获异常? – jterrace 2012-01-04 23:05:05
对不起,我可能是愚蠢的,但它听起来像是你没有一个问题:你想扔在某种情况异常,然后你发现一个异常已经在这种情况下抛出,所以你实际上并不需要做任何特别的事情。没有? – ruakh 2012-01-04 23:09:47
我真的不喜欢在图书馆尝试catch块。就像应用程序的包装一样。 – stas 2012-01-04 23:11:20