본문 바로가기
카테고리 없음

[C++] syntax sugar, if와 switch문의 초기화

by 트럼프 2022. 4. 24.

기준은 C++ 17이다

 

1. if

이전

// C++ 17 이전

auto var(init_val);
if(condition)
{
	// condition 1
    	// 접근 가능
}
else
{
	// condition 2
	// 접근 가능
}
// 접근 가능

if와 else 내에서 var에 접근 가능하다.

뿐만 아니라 auto var이 조건문 밖에서 정의되어있기 때문에

if와 else 밖에서도 var 접근이 가능하다.

 

이후

// c++ 17 이후

if(auto var(init_val); condition)
{
	// conditon 1
    	// 접근 가능
}
else
{
	// condition 2
    	// 접근 가능
}
// 접근 불가

if와 else 내에서는 var에 접근할 수 있지만

if와 else 밖에서는 var에 접근이 불가능 하다.

 

 

2. switch

이전

// C++ 17 이전

auto var (init_val);
switch(var)
{
	case 1:
    	...
        break;
        
    case 2:
    	...
        break;
}

switch문 또한 if문과 같이

switch 밖에서 var에 접근이 가능하다.

 

이후

// c++ 17 이후

switch(auto var (init_val); var)
{
	case 1:
        ...
        break;
    
    case 2:
    	...
        break;
}

 

익숙하지 않아서 가독성은 떨어지는 것 같지만

변수의 수명이 짧을수록 코드를 간결하게 유지하고, 리팩토링이 쉽게 해당 범위 내에서 변수의 개수를 줄여주는 것에 의의가 있다.

댓글