-
定义
std::function是函数包装器,能存储任何符合模板参数的函数对象,拥有一致参数类型、相同返回值类型(其实不必完全相同)的函数对象,可以由 std::function 统一包装起来,具有多态性,是模板类。
通常定义函数指针方法:typedef void(*ptr)(int,int),int(*ptr)(void),这里的ptr就是一个函数指针。
而使用了std::function这个类的时候,我们可以这样使用。例如:
std::function<void(int ,int)> a; std::function<int()> b;
-
例子
#include <iostream> #include <string> #include <functional>//想使用function 模板类就要加上这个头文件 //std::function 是一个函数模板类;std::bind模板函数 using namespace std; std::function<void(int a)> fun1; std::funcion<void(string str)> func2; std;:function<string(int a, int b)> fun3; void normalfun(int a) //普通函数 {} static void staticfun(string str) //普通静态函数 {} auto lambda = [](int a, int b)->string{int c = a + b; return "hello"}; //Lambda表达式 int main() { fun1 = normalfun; fun1(2); fun2 = staticfun; fun2("hello"); fun3 = lambda; cout << fun3(2, 3) << endl; return 0; }
std::function详解
最新推荐文章于 2024-06-20 09:53:27 发布