Я читав, що в C ++ 17 ми можемо ініціалізувати змінні в if
таких операторах
if (int length = 2; length == 2)
//execute something
Замість
int length = 2;
if (length == 2)
//do something
Незважаючи на те, що він коротший, він впливає на читабельність коду (особливо для людей, які не знають цієї нової функції), що, на мою думку, є поганою практикою кодування для розробки великого програмного забезпечення.
Чи є якась перевага використання цієї функції, крім скорочення коду?