C++20 - Using enum
using enum은 C++20의 새로운 기능.
scoped enum을 namespace의 using directive를 사용할 수 있다.
C++17까지는 enum을 아래처럼 사용한다.
enum struct color { red, green, blue } ;
void f( color c )
{
switch( c )
{
case color::red :
break ;
case color::green :
break ;
case color::blue :
break ;
}
}
using enum을 사용하면 아래처럼 할 수 있다.
enum struct color { red, green, blue } ;
void f( color c )
{
using enum color ;
switch( c )
{
case red :
break ;
case green :
break ;
case blue :
break ;
}
}
scoped enum은 암묵적인 타입 변환을 할 수 없으므로 기존의 enum 사용에 변환가 없지만 사용을 좀 더 편하게 하기 위해 namespace의 using 디렉티브와 같은 기능인 using enum이 추가 되었다.
이 글은 2021-01-21에 작성되었습니다.