[英]type does not provide a call operator
我有這個函數, order
,它返回vector<Node*>
vector<Node*> order(vector<string> nodes, vector<pair<string, string>> dependencies) {
Graph graph = buildGraph(nodes, dependencies);
vector<Node*> order = buildOrder(graph.getNodes());
return order;
}
我稱之為:
vector<Node*> order2 = order(nodes, deps);
但是,編譯器會出現此錯誤:
error: type 'std::__1::vector<Node *, std::__1::allocator<Node *> >' does not provide a call operator
vector<Node*> order2 = order(nodes, deps);
^~~~~
1 error generated.
出了什么問題? 'std::__1::vector<Node *, std::__1::allocator<Node *> >'
vector<Node*, <Node*>>
似乎暗示有一個vector<Node*, <Node*>>
或其他東西,但我可以似乎沒弄清楚這一點。
如果沒有發布更完整的代碼,有點難以辨別,但請考慮以下事項:
int order(int j, int k)
{
return 3;
}
int main(int argc, char *argv[])
{
char order;
// order(2, 3);
}
這段代碼很好。 但是,沒有評論
// order(2, 3);
導致它失敗,因為在main
, order
是一個字符,而不是一個函數。 從錯誤消息中,您可能會遇到類似的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.