Leí que en C ++ 17 podemos inicializar variables en if
declaraciones como esta
if (int length = 2; length == 2)
//execute something
En vez de
int length = 2;
if (length == 2)
//do something
Aunque es más corto, afecta la legibilidad del código (especialmente para las personas que no conocen esta nueva característica), lo que supongo que es una mala práctica de codificación para el desarrollo de software grande.
¿Existe alguna ventaja de utilizar esta función además de acortar el código?