【发布时间】:2016-08-09 04:23:43
【问题描述】:
我有一个这样的向量:
std::vector<std::unique_ptr<Service> > m_vec;
我可以这样运行 push_back:
m_vec.push_back(std::make_unique<Service>());
但是当我这样运行它时:
std::unique_ptr<Service> pt = std::make_unique<Service>();
m_vec.push_back(pt);
我收到错误no matching function for call to ‘std::vector<std::unique_ptr<Service> >::push_back(std::unique_ptr<Service>&)
& 是否意味着我正在推送对向量的引用?如果是这样,为什么我不能推送参考?
【问题讨论】:
-
您的第二个示例尝试制作
pt的副本,但由于unique_ptr的复制构造函数已被删除,这将无法正常工作。