我习惯于看到这样的函数指针语法
int (*pointer_name) (float, char *);
void call_function (void (*)(int), int);
在一些 C++03 函数库中,我看到以这种方式使用的类型:
abc::function<void(*)(int,float)> f;
在 C++11 中,std::function
我看到了以这种方式给出的类型
std::function<void(int,float)> f;
有一个缺失(*)
。为什么?
C++03与相应的函数指针具有相同的类型function<T>
。T
很容易想象实现。
std::function
C++11 中的核心语言增强支持。是否扩展了模板参数类型以适应可调用性?