Se lo puoi fare come metodo che confronta due posizioni lo puoi fare come operatore in overloading su due posizioni; peraltro nulla ti impedisce di creare l'operatore in questione solo per i tipi-posizione con cui ti è comodo fare questo lavoro.Originariamente inviato da Neptune
L'unico modo che mi viene in mente a questo punto è quello di svilupparlo come un metodo normale in cui gli passo due posizioni, e non come il sovraccarico di un operatore.
Se hai una lista a puntatori per confrontare due elementi dovrai percorrere la lista cercando l'altro elemento. Questa è un'operazione piuttosto costosa, e non a caso la STL per le liste fornisce iteratori non confrontabili per distanza, ma solo per uguaglianza/differenza; se proprio serve sapere chi viene prima, viene fornito l'algoritmo distance (che opera su qualunque tipo di iteratore) che fornisce la distanza tra due iteratori.