当前位置: 首页 > news >正文

app扁平化设计网站深圳云购网站制作

app扁平化设计网站,深圳云购网站制作,网页制作学什么内容,设计师接单网站C笔记之通用多态函数包装器std::function code review! 文章目录 C笔记之通用多态函数包装器std::function1.存储自由函数,lambda,std::bind 调用的结果2.存储到成员的调用3.存储到函数对象四.基本语法五.使用std::function定义函数对象六.使用std::fu…

C++笔记之通用多态函数包装器std::function

code review!

文章目录

  • C++笔记之通用多态函数包装器std::function
    • 1.存储自由函数,lambda,std::bind 调用的结果
    • 2.存储到成员的调用
    • 3.存储到函数对象
    • 四.基本语法
    • 五.使用std::function定义函数对象
    • 六.使用std::function结合Lambda表达式定义函数对象
    • 七.使用std::function实现回调机制——略,有专门新开笔记介绍。

1.存储自由函数,lambda,std::bind 调用的结果

在这里插入图片描述

代码

#include <functional>
#include <iostream>void print_num(int i) {std::cout << i << '\n';
}int main() {std::cout << "存储自由函数---1" << std::endl;std::function<void(int)> f_display = print_num;f_display(-9);std::cout << "存储 lambda--2" << std::endl;std::function<void()> f_display_42 = []() { print_num(42); };f_display_42();std::cout << "存储到 std::bind 调用的结果--3" << std::endl;std::function<void()> f_display_31337 = std::bind(print_num, 31337);f_display_31337();
}

运行:
存储自由函数—1
-9
存储 lambda–2
42
存储到 std::bind 调用的结果–3
31337

2.存储到成员的调用

在这里插入图片描述

代码

#include <functional>
#include <iostream>struct Foo {Foo(int num) : num_(num) {}void print_add(int i) const { std::cout << num_ + i << '\n'; }int num_;
};int main() {const Foo foo(314159);foo.print_add(1);std::cout << "存储到成员函数的调用---1" << std::endl;std::function<void(const Foo &, int)> f_add_display = &Foo::print_add;f_add_display(foo, 1);f_add_display(314159, 1);std::cout << "存储到数据成员访问器的调用---2" << std::endl;std::function<int(Foo const &)> f_num = &Foo::num_;std::cout << "num_: " << f_num(foo) << '\n';std::cout << "存储到成员函数及对象的调用---3" << std::endl;using std::placeholders::_1;std::function<void(int)> f_add_display2 = std::bind(&Foo::print_add, foo, _1);f_add_display2(2);
}

运行:
314160
存储到成员函数的调用—1
314160
314160
存储到数据成员访问器的调用—2
num_: 314159
存储到成员函数及对象的调用—3
314161

3.存储到函数对象

在这里插入图片描述

#include <functional>
#include <iostream>struct PrintNum {void operator()(int i) const {std::cout << i << '\n';}
};int main() {// 存储到函数对象的调用std::function<void(int)> f_display_obj = PrintNum();f_display_obj(18);auto factorial = [](int n) {// 存储 lambda 对象以模拟“递归 lambda ”,注意额外开销std::function<int(int)> fac = [&](int n) { return (n < 2) ? 1 : n * fac(n - 1); };// note that "auto fac = [&](int n){...};" does not work in recursive callsreturn fac(n);};for (int i{5}; i != 8; ++i) {std::cout << i << "! = " << factorial(i) << ";  ";}
}

代码:
18
5! = 120; 6! = 720; 7! = 5040;

四.基本语法

在这里插入图片描述

五.使用std::function定义函数对象

在这里插入图片描述

六.使用std::function结合Lambda表达式定义函数对象

在这里插入图片描述

七.使用std::function实现回调机制——略,有专门新开笔记介绍。

http://www.yayakq.cn/news/118646/

相关文章:

  • 企业网站建设研究目的意义网站制
  • 缠绕机东莞网站建设技术支持淘宝客网站里面catid=16
  • 网页制作模板的网站代码贵阳哪些公司建网站
  • 江阴做网站的企业医药网站建设价格
  • 网站建设需要哪些搜索引擎优化的缺点包括
  • 在什么网站上可以做中学数学家教企业怎么创建微信公众号
  • 网站查询服务器ipwordpress的分类
  • 北京seo网站内部优化新房装修设计
  • 免费建站体验个人网站有什么内容
  • 建设银行网银盾不能打开网站杭州百度推广优化排名
  • 贵阳网站设计企业电商网站建设 解决方案的设计
  • 湛江市seo网站设计哪里好怎么创建网站充值和提现账号
  • 知名的网站制作公司需要多少钱微信运营技巧
  • 大兴黄村网站建设海外pvn加速器
  • 网站建设生存期模型wordpress前景
  • seo 网站案例平台建设上线网站
  • 湛江cms建站系统舟山公司网站制作
  • asp.net网站建设项目实战资料html5 网站开发定制
  • 网站开发结束语射阳做网站的公司
  • 哪个网站可以做全景图六盘水做网站
  • 浅谈天猫的电子商务网站建设竹子建站模板怎么下载
  • 网站备案那个省份最近三天发生的重要新闻
  • 网站做视频链接网站开发与维护岗位说明书
  • 德州市建设街小学网站首页wordpress计时
  • 潍坊网站建设怎样做一个小程序需要多少钱?
  • 南京个人网站建设成都比较好的网站建设公司
  • 三亚网站建设哪家好做网站给文件不侵权
  • 网站建设的费用需求企业网站优化方案模板
  • 网站外链建设是什么湘潭学校网站建设 精诚磐石网络
  • 有域名有空间怎么做网站国外设计网站都有哪些