У меня странная проблема: когда я перенаправляю объявление класса и запускаю его, он успешно вызывает конструктор, но когда он пытается работать с 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;
}
}
Но если я сделаю это:
#include <MyForwardDeclaredClass.hpp>
namespace MyNamespace
{
class MyClass
{
public:
MyClass() { _myForwardDeclaredClass.reset(new MyForwardDeclaredClass()); }
std::shared_ptr<MyForwardDeclaredClass> _myForwardDeclaredClass;
}
}
Работает нормально.