编程模仿boost::function和boost::bind(三)
ar,short)
{
printf("test obj3\n");
return 0;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
TestClass TestObj;
//0个参数测试
printf("0 para test:\n");
bind_base0* t0 = bindfun(test0);
bind_base0* tobj0 = bindfun(&TestObj,&TestClass::test0);
(*t0)();
(*tobj0)();
delete t0;
delete tobj0;
printf("\n");
//1个参数测试
printf("1 para test:\n");
bind_base1* t1 = bindfun(test1);
bind_base1* tobj1 = bindfun(&TestObj,&TestClass::test1);
(*t1)(12);
(*tobj1)(34);
delete t1;
delete tobj1;
printf("\n");
//2个参数测试
printf("2 para test:\n");
bind_base2* t2 = bindfun(test2);
bind_base2* tobj2 = bindfun(&TestObj,&TestClass::test2);
(*t2)(12,77);
(*tobj2)(34,55);
delete t2;
delete tobj2;
printf("\n");
//3个参数测试
printf("3 para test:\n");
bind_base3* t3 = bindfun(test3);
bind_base3* tobj3 = bindfun(&TestObj,&TestClass::test3);
(*t3)(12,77,56);
(*tobj3)(34,55,56);
delete t3;
delete tobj3;
printf("\n");
return 0;
}
测试程序输出结果如下: