У меня есть следующий ошибочный код, который я пытаюсь скомпилировать в VC2010, но я Я получаю сообщение об ошибке C2974 это происходит только тогда, когда я включаю лямбда-выражение, поэтому я предполагаю, что это как-то связано с этим.
typedef pair, int> adjlist_edge;
priority_queue< adjlist_edge , vector,
[](adjlist_edge a, adjlist_edge b) -> bool {
if(a.second > b.second){ return true; } else { return false; }
}> adjlist_pq;
Я знаю, что форма определения шаблона верна, как
priority_queue, greater> pq;
Работает как положено. Есть идеи, что я делаю не так? Что-то явно не так с лямбдой, которая выглядит не так, что я мог бы упустить? Спасибо за чтение!