c++ template 를 사용하여 이벤트 처리하기
const int RED_PILL = 0;
const int BLUE_PILL = 1;
template<int T>
struct EventHandler {
static void Event() { };
};
template<typename Dummy_T = void>
struct Dispatcher {
static bool EventDispatch(char ch) {
switch (ch) {
case 'a': {
EventHandler<RED_PILL>::Event();
return true;
}
case 'b': {
EventHandler<BLUE_PILL>::Event();
return true;
}
default : {
return false;
}
}
}
};
template<>
struct EventHandler<BLUE_PILL> {
static void Event() { puts("Welcome to the matrix!"); };
};
int main() {
puts("press a for the red-pill, b for the blue-pill");
char ch = getchar();
Dispatcher<>::EventDispatch(ch);
return 0;
}
'개발언어 > c++' 카테고리의 다른 글
MFC 다국어 지원 방법(국가별 언어설정) (0) | 2016.07.15 |
---|---|
ATL Event Thread, ATL 쓰레드 이벤트 발생 시키기 (0) | 2016.07.09 |
시스템 아이콘 Merge 시켜 사용하기 (0) | 2016.06.13 |
HSB(HSV) 값을 RGB로 변경하는 공식 (0) | 2016.06.13 |
RGB to HSV and HSV to RGB (1) | 2016.06.13 |