[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.
: