- namespace CurrentState
- {
- enum Enum {
- ALLOW_PROGRAM,
- ALLOW_DLL,
- DENY_PROGRAM,
- DENY_DLL,
- INTERCHANGING = 100
- };
- }
- ...
- CurrentState::Enum CPage2::GetCurrentState(CString line)
- {
- static CurrentState::Enum state = CurrentState::ALLOW_PROGRAM;
- ...
- return state;
- }
* 장점
- 열거형의 접두어가 필요없어진다.
- 네임 스페이스에 의해 인텔리센스의 지원을 받을 수 있다.
- 컴파일러에서 하나의 완전한 타입처럼 인식하기 때문에, 발견하기 어려운 버그를 막을 수 있다.
2015.07.24. 추가
C++11 에서 추가된 enum class 를 사용하면 위 같이 namespace를 사용하지 않아도 위에서 열거한 모든 장점들을 얻을 수 있다. 사용 방법은 다음과 같다.
- enum class CurrentState {
- ALLOW_PROGRAM,
- ALLOW_DLL,
- DENY_PROGRAM,
- DENY_DLL,
- INTERCHANGING = 100
- };
- CurrentState state = CurrentState::ALLOW_PROGRAM;