以下代码在VS2013中无法编译。
#include <memory>
#include <vector>
struct Struct {
std::unique_ptr<int> data;
};
int main() {
std::vector<Struct> vec;
vec.emplace_back();
vec.emplace_back();
vec.front() = std::move(vec.back());
return 0;
}
我遇到了以下错误:
error C2280: attempting to reference a deleted function
看起来VS编译器尝试调用赋值运算符,而代码明确请求移动。这是一个bug吗?有没有解决这个问题的方法?