通用一般函数指针 。。。
typedef void (*Func)(...);
通用函数指针(不限参数个数)
通用获取成员函数返回值值函数(不限类型)
class Test
{
public:
void display(int a)
{
cout << a << endl;
}
int test(int a, int b)
{
cout << a + b << endl;
return a + b;
}
int tt()
{
return 100;
}
char* cc()
{
return "hello world.";
}
private:
};
typedef void ( Test::*common)(...);
template<typename T,typename V>
void getValue( common com, V v, T &t)
{
t = (v.*(T (V::*)(...))com)();
}
int main(void)
{
One *one = new Two;
Test test;
common cmp = (common)&Test::test;
(test.*cmp)(5,5);
cmp = (common)&Test::display;
cmp = (common)&Test::tt;
int d;
getValue(cmp, test,d);
cout << d << endl;
return 0;
}