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

企业做网站需要什么阿里云 wordpress

企业做网站需要什么,阿里云 wordpress,河南企业网站推广,模板加官网主页目录 简介std::functionstd::function对象包装器std::function做回调函数 std::bind绑定器bind绑定普通函数bind绑定成员函数 简介 C11新增了std::function和std::bind。用于函数的包装以及参数的绑定。可以替代一些函数指针#xff0c;回调函数的场景。 std::function std… 目录 简介std::functionstd::function对象包装器std::function做回调函数 std::bind绑定器bind绑定普通函数bind绑定成员函数 简介 C11新增了std::function和std::bind。用于函数的包装以及参数的绑定。可以替代一些函数指针回调函数的场景。 std::function std::function对象包装器 std::function是可调用对象的包装器它可以用来用统一的方式来处理函数、函数对象、函数指针并允许保存和延迟执行它们。比较难理解可以从代码上深入 #include iostream #include functionalvoid func(void) {std::cout __FUNCTION__ std::endl; }class Foo { public:static int foo_func(int a){std::cout __FUNCTION__ :input param: a std::endl;return a;} }; class Bar { public:int operator()(int a){std::cout __FUNCTION__ :input param: a std::endl;//return a;} }; int main() {std::functionvoid(void) fr1 func;//绑定普通函数fr1();std::functionint(int) fr2 Foo::foo_func;//绑定一个类的静态成员函数std::cout result: fr2(123) std::endl;Bar bar;std::functionint(int) fr3 bar;//绑定一个仿函数//fr2 bar;//这里用fr2也可以因为这两个函数的返回值和参数表是一样的std::cout result fr3(123) std::endl;return 0; }注意代码中__FUNCTION__是预定义标识符基本功能是实现返回所在函数的名字便于调试日志打印。 运行结果 可以看出使用给std::function赋值上对应的函数返回值和函数参数表它就可以容纳这一类调用方式的函数被称为“函数包装器”。如上述的fr2可以容纳Foo::foo_func和bar。 这里可以看出function类似于函数指针的作用可以保存各种类型的函数地址。 std::function做回调函数 #include iostream #include functionalclass A {std::functionvoid(int) callback_; public:A(const std::functionvoid(int) f) : callback_(f) {}void notify(int a){callback_(a);} }; class Foo { public:void operator()(int a){std::cout __FUNCTION__ a: a std::endl;} }; int main() {Foo foo;A aa(foo);aa.notify(111);return 0; }这里可以看出function可以取代函数指针的作用可以用function保存函数延迟执行所有比较适合用在回调函数场景。 std::bind绑定器 std::bind可以将可调用对象和其参数一起绑定绑定后的结果可以用std::function进行保存。 其中绑定普通函数和绑定成员函数的写法有所不同。 bind绑定普通函数 #include iostream #include functionalvoid input(int x) {std::cout x std::endl; }int main() {std::functionvoid(int) fr std::bind(input, std::placeholders::_1);auto fr1 std::bind(input, std::placeholders::_1);//这里用auto接收也行fr(2);fr1(3);return 0; }其中std::placeholders::_1是一个占位符表示这个位置将在函数调用时被传入的第一个参数替代。 占位符的使用方法 #include iostream #include functionalvoid input(int x, int y) {std::cout x y std::endl; }int main() {std::functionvoid(int, int) fr std::bind(input, std::placeholders::_1, 2);//这里用auto接收也行fr(4, 5);//4 2fr std::bind(input, 2, std::placeholders::_1);fr(4, 5);//2 4fr std::bind(input, std::placeholders::_1, std::placeholders::_2);fr(4, 5);//4 5fr std::bind(input, std::placeholders::_2, 2);fr(4, 5);//5 2fr std::bind(input, 2, std::placeholders::_2);fr(4, 5);//2 5return 0; }结果 在绑定参数时可以通过占位符std::placeholders来决定空位参数会属于调用发生时的第几个参数。 bind绑定成员函数 bind可以绑定成员函数和成员变量。其中绑定成员函数和绑定普通函数时是有一些差别的。 #include iostream #include functionalclass MyClass { public:int i_ 0;void foo(int a, int b) {std::cout a b std::endl;} };int main() {MyClass obj;auto boundFunc std::bind(MyClass::foo, obj, std::placeholders::_1, std::placeholders::_2);//绑定成员函数boundFunc(3, 4);auto fr_i std::bind(MyClass::i_, obj);//绑定成员变量fr_i() 123;return 0; } 当使用 std::bind 绑定成员函数时需要注意以下几点 需要使用成员函数的指针或函数对象来进行绑定。对于指针需要使用 取址符号获取成员函数的地址。需要提供对象的指针或引用作为第一个参数以便在调用时正确地调用成员函数。 可以看到绑定普通函数时是不需要提供对象的指针或引用作为参数。
http://www.sczhlp.com/news/179179/

相关文章:

  • 找做网站的app开发的流程
  • 上海网站开发定制logo一键生成器免费版原型图
  • 学院网站建设项目的活动分解女程序员可以干到多少岁
  • 网站开发和软件网站域名保护几年
  • 天津市哪里有做网站广告的开发做游戏的网站
  • 表白网站是怎么做的免费的自媒体一键发布平台
  • 企业网站制作收费昌平区做网站
  • 做网站和做公众号网页设计师培训费用图片大全
  • 最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章网站打开403
  • 公司培训网站需要广播证吗做网站选择系统
  • 网站开发用python吗广州网站案例展示
  • 蔚县住房和城乡规划建设局网站营销策略4p
  • 郑州十大网站建设公司江门专业制作网站
  • 网站开发与维护宣传册做游戏视频去哪个网站好
  • 关于网站建设的ppt网页设计的方法
  • 黔南服务好的高端网站设计公司最美情侣中国字幕视频
  • 网站界面尺寸大小百度品牌广告多少钱
  • 网站开发相关的教材书籍做的网站百度没收录
  • 有没有外包活的网站wordpress方小程序主题
  • 建设信用卡秒批网站做网站vi系统是什么
  • CF497E Subsequences Return
  • Flutter 中运用 Color 的最优方案
  • 竞争自适应重加权采样(CARS)算法在光谱数据变量选择中的解决方案
  • 济南市网站建设企业也是网络品牌建设和推广的基础
  • 汤臣倍健网站建设方案wordpress文章奇偶循环
  • 南昌做网站建站的手机wap网站制作需要多少钱
  • 企业备案 网站服务内容网络设计有哪些
  • 青海网站建设推广wordpress手机cms
  • 照片做视频的网站网站建设 的公司哪家好
  • 深圳网站开发技术深圳婚纱摄影网站建设