【发布时间】:2015-01-28 22:02:37
【问题描述】:
我在这里缺少什么?为什么我不能将向量作为类构造函数的一部分移动?从构造函数中删除 const 也无济于事。
#include <iostream>
#include <vector>
#include <memory>
using namespace std;
class Bar
{
public:
Bar(const vector<unique_ptr<char>> vec);
vector<unique_ptr<char>> vec_;
};
Bar::Bar(const vector<unique_ptr<char>> vec) :
vec_(move(vec)) //not ok
{
}
int main()
{
vector<unique_ptr<char>> vec;
vec.push_back(unique_ptr<char>(new char('a')));
vec.push_back(unique_ptr<char>(new char('b')));
vec.push_back(unique_ptr<char>(new char('c')));
vector<unique_ptr<char>> vec1 (move(vec)); //ok
Bar bar(vec1);
return 0;
}
【问题讨论】:
-
从您的问题中不清楚您遇到了什么问题;如果代码无法编译,则发布编译器错误消息
标签: c++ constructor containers move unique-ptr