반응형

C++ 17에 if 문에서 초기화가 가능한 문법이 생겼다.

 

if (int b = 10; b == 10)
{

}

 

User* user = GetUser();
if (user == nullptr || user->id == 0)
    return;

User* user2 = nullptr;

if (User* user = GetUser(); user == nullptr || user->id == 0)
{

}

 

user라는 변수명은 이미 사용 했음.
if문에서 초기화를 해서 회피가능.

 

이 외에도 switch 문에서도 똑같이 사용이 가능하다.

 

//Switch with Initalizer
switch (int b = 3; b)
{
case 2:
    break;

case 3:
    cout << "작동함!" << endl;
    break;
}

 

 

이런 식으로 Range-Based for 문에서도 사용이 가능하도록 c++20에서 추가가 되었다.

 

	//Range-Based for
	for (vector<int> vec{1, 2, 3}; auto v : vec)
	{
		cout << v << endl;
	}

 

반응형

'C++' 카테고리의 다른 글

C++ 20 : std::Span  (0) 2024.05.27
C++ 20 : using enum in Local Scopes  (0) 2024.05.21
C++ 20 : Attributes  (0) 2024.05.21
C++ 20 : Template Parameter for Lambda  (0) 2024.05.19
C++ 20 : Non-Type Template Parameter  (0) 2024.05.19