我有以下代码
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),除非我注释掉析构函数。实际上,我的代码中并不需要这个析构函数,我只是想将它用于调试目的。
但是,我不明白发生了什么,因此我担心我做错了什么。这里发生了什么?