페이지

2014년 12월 22일 월요일

scoped enum

scoped enum (Visual Studio 2012부터 사용가능)

- enum type에 강력한 Type Check를 하게 하여 함부러 int , short 등과 같은 형으로의 자동으로 casting이 안된다.
- 항상 Type::Value 형식으로 사용을 해야 한다.

unscoped enum은 C++ 03 에서 사용하던 방식과 동일하다.

enum eDbType :short
{
  Oracle = 1,
  MySql,
  Altibase,
  PetaSQL
};
short sDb1 = PetaSQL;
short sDb2 = eDbType::Oracle; 

scoped enum 사용법은 아래와 같다.


enum class seDbType : short
{
  Tibero,
  Db2,
  Sybase
};
 
seDbType sedb = seDbType::Tibero;
 
seDbType sedb2 = Db2; // Error
short seDbType = Tibero; // Error
 
short seDbType2 = static_cast<short>(seDbType::Tibero);

class 대신 struct를 써도 같으며, defaultint이다.



항상  seDbType::Tibero와 같이 사용을 해야 하며, static_cast를 이용하여야만 일반 변수에 넣을 수 있다.

댓글 없음:

댓글 쓰기