Forse mi sto arrugginendo (di recente ho scritto in Python).cosa c'è di sbagliato nel dichiarare una variabile all'interno delle sue condizioni?
Perché questo non viene compilato?
if ((int i=f()) == 0)
senza il ()
intorno al int i=f()
ottengo un altro, molto più ragionevole errore di i
non è essere booleano. Ma è per questo che volevo le parentesi in primo luogo!
La mia ipotesi sarebbe che l'utilizzo delle parentesi lo trasformi in un'espressione e che le istruzioni di dichiarazione non siano consentite in un'espressione. È così? E se sì, è una delle stranezze della sintassi del C++?
A proposito, mi è stato effettivamente cercando di fare questo:
if ((Mymap::iterator it = m.find(name)) != m.end())
return it->second;
Cosa c'è che non va? Tutto –
@VJovic - Vago se hai ottenuto il punteggio della tua reputazione con risposte così elaborate e utili;) – davka
No, vorrei diventare negativo;) Ma seriamente, qualsiasi standard di codifica normale proibisce un codice così oscuro. –