1. namespace CurrentState
  2. {
  3.     enum Enum {
  4.         ALLOW_PROGRAM,
  5.         ALLOW_DLL,
  6.         DENY_PROGRAM,
  7.         DENY_DLL,
  8.         INTERCHANGING = 100
  9.     };
  10. }
  11. ...
  12. CurrentState::Enum CPage2::GetCurrentState(CString line)
  13. {
  14.     static CurrentState::Enum state = CurrentState::ALLOW_PROGRAM;
  15. ...
  16.     return state;
  17. }
* 장점
- 열거형의 접두어가 필요없어진다.
- 네임 스페이스에 의해 인텔리센스의 지원을 받을 수 있다.
- 컴파일러에서 하나의 완전한 타입처럼 인식하기 때문에, 발견하기 어려운 버그를 막을 수 있다.


2015.07.24. 추가

C++11 에서 추가된 enum class 를 사용하면 위 같이 namespace를 사용하지 않아도 위에서 열거한 모든 장점들을 얻을 수 있다. 사용 방법은 다음과 같다.

  1. // 선언
  2. enum class CurrentState {
  3.     ALLOW_PROGRAM,
  4.     ALLOW_DLL,
  5.     DENY_PROGRAM,
  6.     DENY_DLL,
  7.     INTERCHANGING = 100
  8. };
  9. // 사용
  10. CurrentState state = CurrentState::ALLOW_PROGRAM;
Retrieved from http://hyacinth.byus.net/moniwiki/wiki.php/C++/좀 더 나은 enum 방법
last modified 2016-03-08 23:03:42