Ecco infatti stavo venendo a scrivere che avevo scoperto un errore grosso come la germania.
La classe in questione aveva un costruttore con un float, quindi quando a un certo punto si trovava di fronte a
codice:
Class nome{
nome(float x);
bool operator==(const nome& other);
};
//...…
nome a,b,c,d;
if (a==b==c==d)
//lui lo trasformava in
if (a==b==nome(1.0)). //o 0, dipende dal risultato
lui vedeva il bool come intero, convertiva in float e paragonava la classe costruita con quel valore... Una cosa tremenda.
Quindi rigiriamo la domanda: avevo visto delle funzioni dello standard che prendevano un numero indeterminato di argomenti (con l'operatore due punti ..), potrei scrivere delle funzioni in questo modo per i tre tipici casi di concatenazione? (tutti uguali, in ordine crescente, o decrescente)