引用已删除的函数数组
Referencing deleted function Array
我想 return 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;
}
我认为编译器与智能指针冲突。
这可能是一个相对容易解决的问题,但我不确定我做错了什么。问题可能比这更大,因为这个 class 是一个节点 class.
您不能共享唯一点数。
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;
}
我想 return 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;
}
我认为编译器与智能指针冲突。
这可能是一个相对容易解决的问题,但我不确定我做错了什么。问题可能比这更大,因为这个 class 是一个节点 class.
您不能共享唯一点数。
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;
}