簡體   English   中英

type不提供調用操作符

[英]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);                     

導致它失敗,因為在mainorder是一個字符,而不是一個函數。 從錯誤消息中,您可能會遇到類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM