我有以下錯誤的代碼,我想在VC2010中編譯,但我得到錯誤C2974這隻發生在我包含lambda表達式,所以我猜它有東西與此相關。C++ priority_queue與lambda比較錯誤
typedef pair<pair<int, int>, int> adjlist_edge;
priority_queue< adjlist_edge , vector<adjlist_edge>,
[](adjlist_edge a, adjlist_edge b) -> bool {
if(a.second > b.second){ return true; } else { return false; }
}> adjlist_pq;
我已經知道了模板的形式定義是正確的,因爲
priority_queue<int , vector<int>, greater<int>> pq;
按預期工作。任何想法我做錯了什麼? lambda看起來有什麼不對,我可能會忽略它嗎?謝謝閱讀!
的http://stackoverflow.com/questions/3867276/can-the-type-of-a-lambda-expression-be-expressed – 2011-04-28 09:12:17