[英]Referencing deleted function Array
我想在std::vector
返回一個實體,但是編譯器告訴我我正在引用一個已刪除的函數。
vector<unique_ptr<Node>> children; //member of a class
unique_ptr<Node> Node::selectNext() { //function for a class
for (int i = 0; i < children.size(); i++) {
if (children[i]->getUI().mouseSelect())
return children[i]; //Problem is in this return statement
}
return nullptr;
}
我相信編譯器與智能指針沖突。
這可能是一個相對容易解決的問題,但是我不確定我做錯了什么。 問題可能大於此,因為此類是節點類。
您不能共享唯一的ptrs。
Node* Node::selectNext() { //function for a class
for (int i = 0; i < children.size(); i++) {
if (children[i]->getUI().mouseSelect())
return children[i].get();
}
return nullptr;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.