C++17: if 문에서의 초기화 구문 (if statement with initializer)

eomcri·2025년 4월 4일

C++17부터 if 문 안에서도 변수를 선언하고, 그 값을 조건으로 사용할 수 있는 초기화 구문(initializer statement) 이 추가되었습니다. 이는 가독성과 범위(scope) 관리 측면에서 매우 유용하다.


기존 방식 (C++17 이전)

int Value = GetSomeValue();
if (Value > 0)
{
    UE_LOG(LogTemp, Log, TEXT("Value is positive: %d"), Value);
}

이 방식은 Value의 유효 범위가 if 문 바깥까지 이어지기 때문에 불필요한 범위 확장을 초래할 수 있다.


C++17 이후: if 문 안에서 변수 선언

if (int Value = GetSomeValue(); Value > 0)
{
    UE_LOG(LogTemp, Log, TEXT("Value is positive: %d"), Value);
}
  • int Value = GetSomeValue()는 조건을 검사하기 전에 실행됨.
  • Value > 0이 조건식
  • 이 경우 Value의 유효 범위는 if 블록 내부로 제한됨.
profile
게임 개발자가 꿈인 게이머

0개의 댓글