У меня есть следующий ошибочный код, который я пытаюсь скомпилировать в VC2010, но я получаю ошибку C2974 это происходит только тогда, когда я включаю лямбда-выражение, поэтому я предполагаю, что оно что-то имеетчто делать с этим.
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;
Работает, как и ожидалось.Есть идеи, что я делаю не так?Есть ли что-то явно не так с лямбда, которая выглядит неправильно, что я мог бы пропустить?Спасибо за чтение!