已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
假设我们有两个返回布尔值的函数,但是它们的参数数量不同
bool foo1(int x){
if(condition)
return 0;
else
return 1;
}
bool foo2(int x, double y){
if(condition)
return 0;
else
return 1;
}
我想写一个函数,把foo1和foo2作为参数,并检查它们的返回值。
注意:我无法更改foo1或foo2实现
4条答案
按热度按时间cqoc49vn1#
使用模板,函数类型(和参数类型)为模板参数。
然后:
或者,穷人的版本。没有那么有效或灵活,但更容易理解。
7hiiyaii2#
是这样吗?:
wribegjk3#
创建一个接受可调用对象的函数,然后可以使用lambda来捕获参数。
fhg3lkii4#
“就”放进去吧。
一个函数的类型会被“自动地”改变为另一个函数参数列表中的函数指针,但是,(对我来说)最好明确地写上那些是指针,这意味着完全相同的代码: