C++17부터 if 문 안에서도 변수를 선언하고, 그 값을 조건으로 사용할 수 있는 초기화 구문(initializer statement) 이 추가되었습니다. 이는 가독성과 범위(scope) 관리 측면에서 매우 유용하다.
int Value = GetSomeValue();
if (Value > 0)
{
UE_LOG(LogTemp, Log, TEXT("Value is positive: %d"), Value);
}
이 방식은 Value의 유효 범위가 if 문 바깥까지 이어지기 때문에 불필요한 범위 확장을 초래할 수 있다.
if (int Value = GetSomeValue(); Value > 0)
{
UE_LOG(LogTemp, Log, TEXT("Value is positive: %d"), Value);
}