ci sono problemi di comprensione/manutenibilità che derivano da codice comeSi tratta di un uso ragionevole dell'operatore ternario?
inVar1 == 0 ? NULL : v.push_back(inVar1);
inVar2 == 0 ? NULL : v.push_back(inVar2);
e così via.
L'idea forse confusa è l'utilizzo dell'operatore ternario per il flusso del programma piuttosto che l'assegnazione di variabili, che è la spiegazione normale.
Non ho visto gli standard di codifica sul lavoro che affrontano questo utilizzo, quindi mentre mi sento a mio agio nel farlo vorrei sapere se c'è una buona ragione per non farlo.
e nota che la tua cosa è anche sbagliata in C++. se un operando è vuoto, allora l'altro deve essere troppo, o deve lanciare: inVar1 == 0? (void) NULL: v.push_back (inVar1); basta usare un semplice se :) –
Non sono d'accordo con "sbagliato" - VisualStudio 2003 e 2005 lo consentono. Forse possiamo discutere su cosa "sbagliato" significa ...? – user63572
significa sbagliato quando il tuo codice non è valido C++, ovviamente. un ramo ha tipo zero e un altro ha tipo int, long o così. non è valido vuoto e int bite. forse vC++ ha un'estensione che permette questo - non lo so. –