我有一個函數需要根據一些輸入參數返回一個排序列表。我已選擇一個std::priority_queue
來保存此列表。用自定義比較器返回priority_queue
但編譯器給我一個我不認識的錯誤。下面是我的代碼:
struct DepthCompare {
bool operator()
(const struct inst *&lhs, const struct inst *&rhs) const
{
return lhs->depth < rhs->depth;
}
};
typedef priority_queue<struct inst*> HeuristicList;
HeuristicList getHeuristicList(struct BasicBlock &) {
HeuristicList ret(DepthCompare);
return ret;
}
編譯器說,在return語句的線路conversion from 'HeuristicList (*)(DepthCompare)' to non-scalar type 'HeuristicList' requested
。
它看起來不像我試圖返回一個指針。出了什麼問題?
謝謝。爲了理解這一切,我有更多的閱讀需要做。來自Java,我幾次繞過匿名對象,並認爲C++將是相同的方式。當然,爲了清楚起見,我省略了`getHeuristicList()`的主體,所以我不會立即返回它。 我也需要手冊來解釋gcc的錯誤信息! – Mike 2010-12-04 17:45:57