c++11 function
程序员文章站
2022-06-12 10:12:18
...
是代指返回值为void型的函数指针。
function
最大的功能是表达匿名函数,特别是 []
里面捕捉了当前上下文变量的匿名函数
类模版 std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标进行存储、复制、和调用操作,这些目标包括函数、lambda表达式、绑定表达式、以及其它函数对象等。
用法示例:
①保存*函数
void printA(int a)
{
cout<<a<<endl;
}
std::function<void(int a)> func;
func = printA;
func(2);
②保存lambda表达式
std::function<void()> func_1 = [](){cout<<"hello world"<<endl;}; 2 func_1();
运行输出:hello world
例如:
头文件中我定义
LambdaOp(const std::function<void()> & op = []() {}, bool isHold = true);
那cpp中我就可以这么写
new LambdaOp([&]()
{
……
}, true));
③保存成员函数
struct Foo {
Foo(int num) : num_(num) {}
void print_add(int i) const { cout << num_+i << '\n'; }
int num_;
};
// 保存成员函数
std::function<void(const Foo&, int)> f_add_display = &Foo::print_add;
Foo foo(2);
f_add_display(foo, 1);
运行输出: 3
推荐阅读
-
去掉Myeclipse对JS等文件的验证(Cannot return from outside a function or method)
-
function string类型的参数传递
-
浅谈js中function的参数默认值
-
CREATE FUNCTION sqlserver用户定义函数
-
开始使用C++11的9个理由
-
实测在class的function中include的文件中非php的global全局环境
-
javascript function(函数类型)使用与注意事项小结
-
Vue组件中的data必须是一个function的原因浅析
-
php function用法如何递归及return和echo区别
-
vbs(asp)下的Function 语句