- 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를 써도 같으며, default는 int이다.
항상 seDbType::Tibero와 같이 사용을 해야 하며, static_cast를 이용하여야만 일반 변수에 넣을 수 있다.
댓글 없음:
댓글 쓰기