c++ 的事件驱动
1.要求可移植
之前公司有一个挺好用,但是代码不共享.当时又没有研究下,现在想研究下.
使用如下
比如有一个(不定参,不定数据类型)
void a1(int a,int b);
void a2(short a,byte b);
void a3(string& m,int n,short t);
然后可以使用注册函数注册
registerMsg("event_t1",a1);
registerMsg("event_t2",a1);
registerMsg("event_t3",a1);
注册完之后,在需要调用的地方.使用(i表示int,s表示short,b表示byte,c表示字符串)
这里有个相当于boost的any类
sendmsg("event_t1","ii",any(5),any(6)); 这里执行,就会调用到a1(5,6),具体这个函数怎么实现?
sendmsg("event_t2","sb",any(5),any(6));
sendmsg("event_t3","cis",any(5),any(6),any("test"));
这样就可以实现回调了,自己想写个,总是有卡住的地方,麻烦高手给写个简单的例子.
class Any(大致如下)
{
...
union
{
int a,
short b,
byte c,
char* d,
}
}
谁能按照上面的调用思路写一个,c++的.汇编的不考虑,看了好多回调方面的,都无法实现.
主要卡在,怎么实现回调.我能解析出每个的参数,但是还是无法去调用函数.
求代码.如果有满意的答复,直接加分.希望大神出现
------解决方案--------------------how about boost::signal, slot?