Non mi pare sia possibile creare overload di operatori per puntatori (e in generale per tipi primitivi); piuttosto, creati un functore di confronto e passa quello come parametro della sorte. In effetti, per confrontare container di puntatori e simili si può creare un generico functore template che di fatto faccia return *lhs < *rhs.