Segfault пытается работать с shared_ptr в объявленном вперед классе - PullRequest
0 голосов
/ 14 ноября 2018

У меня странная проблема: когда я перенаправляю объявление класса и запускаю его, он успешно вызывает конструктор, но когда он пытается работать с shared_ptr, он вызывает ошибки в объявленном классе __exchange_and_add on return __atomic_fetch_add forwardКонструктор.

Класс, который мы пытаемся использовать, находится в связанном общем объекте.

Например:

class MyForwardDeclaredClass {
    public:
          MyForwardDeclaredClass();
}

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

            std::shared_ptr<MyForwardDeclaredClass> _myForwardDeclaredClass;
    }
}

enter image description here

Но если я сделаю это:

#include <MyForwardDeclaredClass.hpp>

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

            std::shared_ptr<MyForwardDeclaredClass> _myForwardDeclaredClass;
    }
}

Работает нормально.

...