我一直试图解决这个问题好几个小时,因为我无法获得一个删除指针的指针,所以我创建了一个基于文本的程序来进行调试。为什么这不起作用?
#include <iostream>
#include <memory>
#include <vector>
using namespace std;
class A {};
int main() {
vector<A> as;
std::auto_ptr<A> a(new A);
as.push_back(std::move(a));
return 0;
}
答案 0 :(得分:1)
考虑到向量包含A
个对象,您需要as.push_back(*a)
。您不需要std::move
,临时*a
已经可以移动。