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