我有几个具有类似声明的函数:
int foo(int a);
int bar(int a);
int test(int a);
我的消息处理程序的逻辑完全相同:
void HandleFoo(int a) {
process(a);
int ret = foo(a);
if (ret)
print(a);
}
void HandleBar(int a) {
process(a);
int ret = bar(a);
if (ret)
print(a);
}
void HandleTest(int a) {
process(a);
int ret = test(a);
if (ret)
print(a);
}
所以我想知道是否可以编写一个通用函数:
void Handle(int a, func_pointer fn) {
process(a);
int ret = fn(a);
if (ret)
print(a);
}
fn
就像一个可以接受的通用函数指针foo
,bar
并且test
这可能吗?
顺便说一句,我的项目中目前没有 C++11 和 boost,只使用 TR1。