Segfault尝试在正向声明的类中与shared_ptr一起使用

时间:2018-11-13 21:10:07

标签: c++ shared-ptr forward-declaration

我遇到一个奇怪的问题,当我向前声明一个类并运行它时,它成功调用了构造函数,但是当它尝试与shared_ptr一起使用时,它将在{{1}上的__exchange_and_add内进行段错误}向前声明的类构造函数。

我们要使用的类位于链接的共享对象中。

例如:

return __atomic_fetch_add

enter image description here

但是,如果我这样做:

class MyForwardDeclaredClass {
    public:
          MyForwardDeclaredClass();
}

namespace MyNamespace
{
    class MyClass
    {
        public:
            MyClass() { _myForwardDeclaredClass.reset(new MyForwardDeclaredClass()); }

            std::shared_ptr<MyForwardDeclaredClass> _myForwardDeclaredClass;
    }
}

它正常工作。

0 个答案:

没有答案