Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SIGNAL_ARRAY_CONTENT(a) #a,
- #define SIGNAL_ENUM_CONTENT(a) a,
- #define SIGNAL_PUSH_BACK(a) signals.push_back(#a);
- #define SIGNAL_CASE(a) case Signals::a: SimpleEmit(#a, std::forward<T>(params)...); break;
- #define SIGNALS(...)\
- enum class Signals : unsigned int\
- {\
- FOR_EACH(SIGNAL_ENUM_CONTENT, __VA_ARGS__)\
- };\
- template<typename... T>\
- inline void EmitSignal(Signals signal, T&&... params){\
- switch(signal){\
- FOR_EACH(SIGNAL_CASE, __VA_ARGS__)\
- default: break;}\
- }\
- virtual std::vector<KigsID> GetSignalList() override\
- {\
- auto signals = ParentClassType::GetSignalList();\
- FOR_EACH(SIGNAL_PUSH_BACK, __VA_ARGS__)\
- return signals;\
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement