我有以下错误的代码,我想在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