Dopo aver sbattuto la testa per un bel pò e grazie all'aiuto di gente che ne sa più di me..(il che non è difficile), siamo giunti alla soluzione del problema:
Bisognava modificare la funzione "bool operator"... riporto qui di seguito il codice:

codice:
template <typename T>
struct MyArrayCompare {
	 bool operator()(const T& a,const T& b) const{
             
		return (a[2] < b[2]);
	}
};
insomma bastava aggiungere il modificatore "const" alla firma del metodo.
A volte odio la programmazione, basta un'errore se pur banale per andare a picco.

Grazie1000
Beppe.