我遇到一个奇怪的问题,当我向前声明一个类并运行它时,它成功调用了构造函数,但是当它尝试与shared_ptr一起使用时,它将在{{1}上的__exchange_and_add
内进行段错误}向前声明的类构造函数。
我们要使用的类位于链接的共享对象中。
例如:
return __atomic_fetch_add
但是,如果我这样做:
class MyForwardDeclaredClass {
public:
MyForwardDeclaredClass();
}
namespace MyNamespace
{
class MyClass
{
public:
MyClass() { _myForwardDeclaredClass.reset(new MyForwardDeclaredClass()); }
std::shared_ptr<MyForwardDeclaredClass> _myForwardDeclaredClass;
}
}
它正常工作。