enum을 compile 말고 runtime 때 추가하는 것이 가능한가요?

 

이런 느낌 생각하고 있습니다.

 

 

 

enum abc

{

a,

b

};

 

void click()

{

// abc라는 enum type에다가 c를 추가해주는 어떤 로직이 있다고 가정

}

 

컴파일 시에는 abc.a와 abc.b만 정의되어 있다.

런타임 동안 click()이 실행되면 abc.c도 정의되며, 사용할 수 있게 된다.

 

 

 

위와 같은 것이 가능한지를 묻는 이유,

그러니까 하고 싶은 것이 뭐냐면 아래와 같습니다.

 - (플밍 need) 데이터 검색을 할 때, string 대신 int를 기준으로 검색하게 한다.(검색 속도를 빠르게 하기 위함)

 - (기획 need) 그러나 데이터 입력은 string으로 입력 받게 한다.

 

 

예컨대

아이템의 cid가 1이고, code name이 hp_potion이면

데이터 입력자가 useitem이라는 스크립트를 사용할 때,

useitem(1) 대신 useitem(hp_potion)으로 입력하게 하고자 합니다.

 

 

 

 

 

입력 받은 string을 런타임 동안 enum으로 정의해줄 수 있다면 큰 문제가 없을 것 같아

혹시 위와 같은 방법이 가능한지를 문의 드립니다.

 

 

 

 + 그리고 혹시, 더 좋은 방법이 있다면 알려주시면 감사하겠습니다.

string의 compare()를 굳이 사용할 필요 없이, string 데이터에 대해 int처럼 빠르게 데이터 검색을 할 수 있게 하는 방법