un tipico operatore di uguaglianza è scritto come segue
codice:
class class
{
bool operator==(const class& x2) const;
};
a destra ed a sinistra ha due membri dello stesso tipo e restituisce un bool.

Allora la domanda è: perchè si può concatenare?
quando si scrive per esempio:
codice:
a1==a2==a3
a2==a3 restituisce un bool, allora a1 non dovrebbe vedere alla propria destra il risultato di questa operazione? Dando errore di compilazione in quanto non esiste una definizione di questo operatore che veda alla propria destra un bool?