Quizás me estoy poniendo oxidado (he estado escribiendo en Python recientemente).¿qué hay de malo en declarar una variable dentro de la condición de si?
¿Por qué no se compila?
if ((int i=f()) == 0)
sin la ()
alrededor del int i=f()
consigo otro, mucho más razonable de error de i
no está siendo booleano. ¡Pero es por eso que quería el paréntesis en primer lugar!
Supongo que al usar los paréntesis se convierte en una expresión y las declaraciones de declaración no se permiten en una expresión. ¿Es tan? Y si es así, ¿es una de las peculiaridades de sintaxis de C++?
Por cierto, en realidad estaba tratando de hacer esto:
if ((Mymap::iterator it = m.find(name)) != m.end())
return it->second;
¿Qué pasa? Todo –
@VJovic - Vago si obtuviste tu puntaje de reputación con respuestas tan elaboradas y útiles;) – davka
No, sería negativo;) Pero en serio, cualquier estándar de codificación normal prohíbe ese código oscuro. –