【发布时间】:2014-05-09 18:46:35
【问题描述】:
我目前正在努力将原始点转换为std::unique_ptr。我唯一不明白的是为什么这段代码不起作用:
auto it = entities.begin();
while (it != entities.end()) {
int index = getIndex((*it)->getAABB());
if (index != -1) {
children.at(index)->insert(std::move(*it)); // Error
it = entities.erase(it);
}
else {
it++;
}
}
实体是:
typedef std::unordered_set<std::unique_ptr<QuadTreeObject>> EntityContainer;
EntityContainer entities;
错误提示std::unique_ptr cannot be referenced, it is a deleted function.
【问题讨论】:
-
你确定这是整个错误信息吗?似乎不完整。
-
我怀疑这与
std::unique_ptr可移动但不可复制这一事实有关。 -
children是什么类型?
标签: c++ pointers c++11 smart-pointers unique-ptr