我想返回一個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;
}
我相信編譯器與智能指針衝突。
這可能是一個相對容易解決的問題,但我不確定我做錯了什麼。這個問題可能比這個更大,因爲這個類是一個節點類。
您需要給我們*完整*代碼來重現此問題。編譯器錯誤也是你應該包含的一個非常基本的東西。我們看不到您的顯示器。 – cdhowie
您正在嘗試複製不可能的指針。修復取決於你實際需要的東西。 – Sopel