+-

参见英文答案 > Should I use std::function or a function pointer in C++? 5个
std :: function< T1(T2)>的优点是什么?超过原来的T1(*)(T2)?
std :: function< T1(T2)>的优点是什么?超过原来的T1(*)(T2)?
最佳答案
std :: function可以容纳多个函数指针,即函子.
#include <functional>
void foo(double){}
struct foo_functor{
void operator()(float) const{}
};
int main(){
std::function<void(int)> f1(foo), f2((foo_functor()));
f1(5);
f2(6);
}
Live example on Ideone.
如示例所示,您也不需要完全相同的签名,只要它们是兼容的(即,std :: function的参数类型可以传递给包含的函数/函子).
点击查看更多相关文章
转载注明原文:为什么我们在C中使用std :: function而不是原始的C函数指针? - 乐贴网