我有以下代码
class A {
public:
A(){}
~A(){}
private:
std::vector<std::unique_ptr<double> > x;
};
A f() {
A a;
return a;
}
int main() {
A a=f();
return 0;
}
除非我注释掉析构函数,否则它无法编译(gcc 4.7)。实际上,我在我的代码中并不真正需要这个析构函数,我只是想将其用于调试目的。
然而,我不明白正在发生什么,因此我担心自己做错了些什么。这里到底发生了什么?