[C++] Enumerations
CS/C/C++ 2009. 1. 18. 19:02기본적으로, 열거자는 0부터 값을 증가 시킨다.
열거자는 이름을 가질 수 있으며, 각 열거자는 다른 type을 가지게 된다.
enum keyword {ASM, AUTO, BREAK};
위에서 AUTO는 keyword type이다.
void f(keyword key) { switch (key) { case ASM: // do something break; case BREAK: // do something break; } }
열거자는 정수형 타입의 constant-expression에 의해 초기화될 수 있다.
열거자의 범위는 반올림 해서 2의 지수승에 가장 가까운 수 -1 을 갖는다.
enum e1 {dark, light}; // range 0:1
enum e2 {a = 3, b = 9}; // range 0:15
enum e3 {min=-10, max=1000000} // range -1048575:1048575
정수형 값은 명시적으로 열거자 형으로 변환될 수 있다.
변환이 열거자 값의 변환 범위에 없다면, 결과는 비확정적인다.
원문 : C++ Programming Laguage 3rd Edtion.