c ++ función de comparación personalizada para std :: sort ()

Quiero crear una función de comparación personalizada para std :: sort (), para ordenar algunos pares clave-valor std :: pair

Aquí está mi función

 template <typename K, typename V>
 int comparePairs(const void* left, const void* right){
        if((((pair<K,V>*)left)->first) <= (((pair<K,V>*)right)->first))
            return 1;
        else 
            return -1;
    }

Luego, dentro de alguna clase tengo vector de pares miembro de clase:

vector<pair<K,V>> items;  

Y algún método para ordenar este vector por claves, usando std :: sort ()

std::sort(items.begin(), items.end(), comparePairs<K,V>);

Tengo errores de compilación dentro, que decía

"no se puede convertir el número de parámetro de 'std :: pair <_Ty1, _Ty2>' a 'const void *'"

. ¿Qué es un error?

Respuestas a la pregunta(3)

Su respuesta a la pregunta