C++ 在c+中使用“从”启用“共享”时,检查现有的共享\u ptr+;?
除了捕获当试图从作为原始指针的指针上的_this()调用shared_时抛出的坏_弱_ptr错误外,还有什么方法可以测试对象是否被引用计数C++ 在c+中使用“从”启用“共享”时,检查现有的共享\u ptr+;?,c++,boost,shared-ptr,reference-counting,C++,Boost,Shared Ptr,Reference Counting,除了捕获当试图从作为原始指针的指针上的_this()调用shared_时抛出的坏_弱_ptr错误外,还有什么方法可以测试对象是否被引用计数 我有一些处理原始指针和共享指针的函数,我想确保在使用错误的指针时错误是明显的?我当然可以捕捉到错误,但我只是想知道是否有一种简单的方法来测试这种特殊情况?从\u this::shared\u from\u this()调用std::enable\u shared\u决不会对现有的有效对象或指向它的指针失败。编辑:。。。如果至少有一个std::shared\u
我有一些处理原始指针和共享指针的函数,我想确保在使用错误的指针时错误是明显的?我当然可以捕捉到错误,但我只是想知道是否有一种简单的方法来测试这种特殊情况?从\u this::shared\u from\u this()调用
std::enable\u shared\u决不会对现有的有效对象或指向它的指针失败。编辑:。。。如果至少有一个std::shared\u ptr
实例,其中YourClass
是std::enable\u shared\u from\u this
。这是一个比第一个更严格的声明,如果被误解,我道歉
通过只创建类的shared\u ptr
实例,您可以确保shared\u from\u this()
的有效性。除了捕获异常之外,无法检查YourClass
实例是否由shared\u ptr
管理。调用std::enable\u shared\u from\u this()
对于现有的有效对象或指向它的指针,永远不会失败。编辑:。。。如果至少有一个std::shared\u ptr
实例,其中YourClass
是std::enable\u shared\u from\u this
。这是一个比第一个更严格的声明,如果被误解,我道歉
通过只创建类的shared\u ptr
实例,您可以确保shared\u from\u this()
的有效性。除了捕获异常之外,无法检查YourClass
实例是否由共享\u ptr
管理。不要混合原始指针和托管指针。不要混合原始指针和托管指针。听起来像是糟糕的设计。也许可以考虑发布你的代码。在YACC/BISY中的%Union只允许POD类型,所以我必须使用指针(这个QS谈论这个:),但是我希望使用AST所形成的“模型”的智能指针,因此我必须混合它们。听起来像是坏设计。也许可以考虑发布你的代码。在YACC/BISY中的%Union只允许POD类型,所以我必须使用指针(这个QS谈论这个:),但是我希望使用AST所形成的“模型”的智能指针,因此我必须混合它们。我别无选择,见上面的评论。我没有选择,见上面的评论。