tipoRicerca non è parametro template, come può cambiare tipo?
E in ogni caso mi pare il modo sbagliato di impostare una funzione del genere, in un caso del genere probabilmente avresti un parametro bool che dice se fare un confronto in termini di maggiore o minore.
---EDIT---
Forse intendevi
codice:
template<class TPRic, class T>
bool confronta(TPRic& tipoRicerca, T& primoElemento, T& secondoElemento){
if(tipoRicerca=='1' || tipoRicerca=='3') return (primoElemento <= secondoElemento);
if(tipoRicerca=='2' || tipoRicerca=='4') return (primoElemento >= secondoElemento);
else return false;
}
?