【发布时间】:2013-03-07 07:45:09
【问题描述】:
我有以下代码
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)。实际上,我的代码中并不需要这个析构函数,我只是想将它用于调试目的。
但是,我不明白发生了什么,因此我担心我做错了什么。这里发生了什么?
【问题讨论】:
-
当询问为什么某些东西无法编译时,包含错误消息总是有帮助的。
-
@user2183861 不,那里没有回答。问题完全不同
标签: c++ c++11 unique-ptr