boost::shared_ptr
当它是类的成员变量时,我在初始化 a 时遇到问题。我看到了这个以前的问题:
但是我仍然有一个编译器错误。快速示例代码:
class A
{
public:
A();
};
class B
{
public:
B();
private:
boost::shared_ptr<A> mA;
foo() {
// the line below generates a compiler error
mA(new A()); // ERROR
// below will work....
boost::shared_ptr<A> tmp(new A()); //OK
mA = tmp;
}
};
编译器抱怨:
error: no match for call to "(boost::shared_ptr<A>) (A*)"
但是创建一个 tmpshared_ptr
然后将其分配给mA
编译很好。我正在为 Intel Edison 的 Ubuntu 14.04 机器上进行交叉编译。
我错过了什么?