Tengo el siguiente código erróneo que estoy tratando de compilar en VC2010, pero me sale el error C2974 esto solo ocurre cuando incluyo la expresión lambda, entonces supongo que tiene algo para hacer con eso.C++ priority_queue con lambda comparator error
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;
sé la forma de la definición de plantilla es correcta
priority_queue<int , vector<int>, greater<int>> pq;
funciona como se espera. ¿Alguna idea de lo que estoy haciendo mal? ¿Hay algo obviamente mal con la lambda que se ve mal que podría estar pasando por alto? ¡Gracias por leer!
duplicado potencial de http://stackoverflow.com/questions/3867276/can-the-type-of-a-lambda-expression-be-expressed –