template<typename T> class E_EnumerationBase
{
public:
E_EnumerationBase();
virtual T getState();
protected:
T state;
};
template<typename T> E_EnumerationBase<T>::E_EnumerationBase() {
state = T();
}
template<typename T> T E_EnumerationBase<T>::getState() {
return state;
}
enum TableEventEnum {
NO_VALUE = 0,
ATTRACT = 1,
OPEN = 2,
CLOSED = 3
};
class E_TableEvent : public E_EnumerationBase<enum TableEventEnum>
{
public:
E_TableEvent();
};
E_TableEvent::E_TableEvent()
{
/*state = NO_VALUE;
dictionary.insert("attract", ATTRACT);
dictionary.insert("open", OPEN);
dictionary.insert("closed", CLOSED);*/
}
int main()
{
return 0;
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRV9FbnVtZXJhdGlvbkJhc2UgCnsKcHVibGljOgogICAgRV9FbnVtZXJhdGlvbkJhc2UoKTsKICAgIHZpcnR1YWwgVCBnZXRTdGF0ZSgpOwoKcHJvdGVjdGVkOgogICAgVCBzdGF0ZTsKfTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IEVfRW51bWVyYXRpb25CYXNlPFQ+OjpFX0VudW1lcmF0aW9uQmFzZSgpIHsKICAgIHN0YXRlID0gVCgpOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIEVfRW51bWVyYXRpb25CYXNlPFQ+OjpnZXRTdGF0ZSgpIHsKICAgIHJldHVybiBzdGF0ZTsKfQoKZW51bSBUYWJsZUV2ZW50RW51bSB7CiAgICBOT19WQUxVRSA9IDAsCiAgICBBVFRSQUNUID0gMSwKICAgIE9QRU4gPSAyLAogICAgQ0xPU0VEID0gMwp9OwoKY2xhc3MgRV9UYWJsZUV2ZW50IDogcHVibGljIEVfRW51bWVyYXRpb25CYXNlPGVudW0gVGFibGVFdmVudEVudW0+CnsKcHVibGljOgogICAgRV9UYWJsZUV2ZW50KCk7Cn07CgpFX1RhYmxlRXZlbnQ6OkVfVGFibGVFdmVudCgpCnsKICAgIC8qc3RhdGUgPSBOT19WQUxVRTsKICAgIGRpY3Rpb25hcnkuaW5zZXJ0KCJhdHRyYWN0IiwgQVRUUkFDVCk7CiAgICBkaWN0aW9uYXJ5Lmluc2VydCgib3BlbiIsIE9QRU4pOwogICAgZGljdGlvbmFyeS5pbnNlcnQoImNsb3NlZCIsIENMT1NFRCk7Ki8KfQoKaW50IG1haW4oKQp7CiAgICByZXR1cm4gMDsKfQ==