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

福州专门做网站wordpress athena 模版

福州专门做网站,wordpress athena 模版,wordpress占有率,自己做一元购网站C98里面的可调用对象只有普通函数和函数指针。 而在C11里面可调用的对象有下面几种#xff1a; 普通函数函数指针仿函数lambda表达式#xff08;匿名函数#xff09;包装器 普通函数、函数指针、仿函数、lambda表达式我在以前的文章里其实已经介绍过了 包装器 在C11里面有…C98里面的可调用对象只有普通函数和函数指针。 而在C11里面可调用的对象有下面几种 普通函数函数指针仿函数lambda表达式匿名函数包装器 普通函数、函数指针、仿函数、lambda表达式我在以前的文章里其实已经介绍过了 包装器 在C11里面有多种类型的可调用对象包装器可以将这些对象包装起来给我们提供一个统一的视角。相当于给外面再套了一层盒子。 包装器的定义 //1 template class T function; // undefined //2 template class Ret, class... Args class functionRet(Args...);它的定义貌似很奇怪包装器提供了模板2是1的特化Ret指出可调用对象的返回值类型并且给我们提供了可变参数用一个省略号...指出模板参数或函数参数是一个包。 function包含在头文件functional里面而且在std域里 包装方式function返回类型(参数类型1参数类型2...., 参数类型n) name 可调用对象 使用方式name(参数1, 参数2, ...参数n) 使用方式类似于函数 例一包装普通函数 #include iostream #include functional using namespace std;int f(int x, int y) {return x - y; } int main(void) {//用包装器包装起来functionint(int, int) f1 f;cout f1(2, 1) endl;return 0; }例二包装lambda表达式 //包装可调用对象lambda表达式functionint(char, char, char) f2 [](char e1, char e2, char e3)mutable-int{return e1 - e2 e3;};cout f2(z, a, x) endl;例三包装仿函数 class Student { public://重载(),仿函数char operator()(string str){return str[0];} };//包装可调用对象仿函数functionchar(string) f3 Student();cout f3(hello) endl;在某些情况下我们可能需要提供一个统一的接口来接收这些类型就需要使用到包装器。 包装器一般会和std::bind结合使用 std::bind std::bind在包装器中有如下作用 作用1调整参数顺序 作用2调整参数个数 simple(1) template class Fn, class... Args bind (Fn fn, Args... args);with return type (2) template class Ret, class Fn, class... Args bind (Fn fn, Args... args);bind在包装器里面的作用简单来说就是利用旧的可调用对象创建了一个新的。第一个参数是一个万能引用用来接收可调用对象而它使用后面的参数包指明新对象的函数参数。 int f(int x, int y) {return x - y; }//用包装器包装起来functionint(int, int) f1 f; //普通函数cout f1(2, 1) endl;//使用bindfunctionint(int, int) ff1 bind(f, placeholders::_1, placeholders::_2);cout ff1(2, 1);在使用std::bind的时候使用placeholders::_n指明旧的可调用对象的参数n对应参数在原来的参数列表里是第几个。这里的placeholders::_1指的就是x。 那么我们可以利用bind来调整参数的顺序 functionint(int, int) ff1 bind(f, placeholders::_2, placeholders::_1);一些特定情况下某个参数的值是固定的。调整参数的个数实际上调整的是bind新创建对象的参数。 functionint(int) f4 bind(f, 95, placeholders::_1);cout f4(12) endl;对于对象f来说它调用的时候需要两个int类型的参数。当我们进行如上操作的时候将第一个参数固定成了95调用的时候就只需要传递一个参数就可以。 使用bind调整参数个数时需要注意 如果想要固定某一个参数在bind的时候需要指明指明以后placeholders::_X这个X从旧可调用对象的下一个参数开始算起。function也需要做相应的改变实例化的时候用bind固定的参数类型不需要再写进来。
http://www.hkea.cn/news/14544585/

相关文章:

  • 贵阳设计网站建设广东人才网官方网站招聘信息
  • asp.net免费网站微信小程序怎么做商城
  • 网站搭建 保定南宁网站定制
  • 公司网站策划宣传广告公司网站制作
  • 河北企业网站建设酒店平台网站建设
  • wordpress评论通知seo手机搜索快速排名
  • 青岛做网站推广公司哪家好网站做电商资质
  • 郑州网站优化方案常州市金坛建设局网站
  • 濮阳做网站专业的铁岭做网站公司
  • 河北做网站找谁深圳做app网站的公司
  • 西安网站建设建站系统个人博客网页设计图片
  • 江象网站建设手机图片制作软件免费
  • 网站怎么在百度做推广方案从源码安装wordpress
  • 网站后台视频教程雪人主题WordPress
  • 支付网站招聘费分录怎么做WordPress post登录
  • 我们的网站网上商城开发需求
  • 基于php网站开发环境深圳 网站开发公司电话
  • 如何做网站收徒弟网站做网站600
  • 建设网站公司哪家好网站建设会销
  • 兰州市住房城乡建设局网站郑州网络推广联系方式
  • 安阳做推广网站做百度网站营业执照用注销吗
  • 镇江网站关键字优化机构腰膝酸软乏力是肾阴虚还是肾阳虚
  • wordpress仿站流程法人查询企业名称
  • 织梦网站后台打不开网站推广途径和要点
  • 长沙网站微信开发做英文网站哪里好
  • 东莞大朗网站建设想给学校社团做网站
  • 个人如何申请网站免费的crm系统推荐
  • 网站开发创业计划书模板长沙市网站推广电话
  • 东莞微信网站建设怎样曲靖网站推广
  • 网站备案对网站负责人的要求wordpress批量给图片加水印