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

做app和做网站的区别网站运营是具体的

做app和做网站的区别,网站运营是具体的,linux网站开发,企业网站有什么功能在C11及以上的相关语法中,特别是在模版元编程的范式里,类型推导是了重中之重。 在 《Effective Modern C 》 中第一章主要就是讲各种类型推导。 当然了,谈到类型推导,我们不得不先搞懂类型推导中的模式匹配,这是基础&a…

在C++11及以上的相关语法中,特别是在模版元编程的范式里,类型推导是了重中之重。
在 《Effective Modern C++ 》 中第一章主要就是讲各种类型推导。
当然了,谈到类型推导,我们不得不先搞懂类型推导中的模式匹配,这是基础,本博客主要就是论述类型推导中的模式匹配。
随后,本文将直接开始推倒 《Effective Modern C++》 中三大情况的各个例子,展现推导的具体思路

问题定义

函数模版大致形如:

template<typename T>
void f(ParamType param);//一次调用则形如:
f(expr);

在编译期,编译器会通过 expr 推导两个型别,一个是 T 的型别,一个是 ParamType 的型别:

template<typename T>
void f(const T& param); //ParamType 是 const T&//调用语句如下:
int x = 0;
f(x) //以一个 int 调用 f

我们可以依靠直觉就能得出正确答案: T 的型别是 intParamType 的型别是 const int&

模式匹配的相关概念

在刚才,其实我们下意识得就使用了C++语法中的模式匹配:

首先需要明确的是,整个模式匹配行为就是:

expr 对型别和 ParamType 的型别执行模式匹配,来决定 T 的型别。

对于以下案例:

template<typename T>
void f(const T& param);int a = 27;
int* x = &a;
f(x);

匹配过程

根据模版类型推导的规则:

  1. 明确传递的参数 x 的类型是 int*
  2. 函数参数的类型是 const T&

为了匹配 int*const T&,编译器会去掉参数类型中的 const 和引用符号(为什么能够去掉呢?在文末我会进行解答),然后将剩余的部分与 T 进行匹配:

  • 参数的类型是 int*,而函数参数的类型是 const T&
  • 去掉 const 和引用后,剩下的类型是 int*

因此 T 被推导为 int*
最后我们把 T 套入 ParamType,可知 ParamType 的类型是 const int*&(同 int* const &),即指针的引用,并且还有一个底层 const

总结

一起来解答之前提出的相关问题吧:

  1. 「去掉参数类型中的 const 和引用符号」为什么能去掉他俩呢?

请看下面对引用折叠的相关描述,其实为什么要去掉 const 也是一样的逻辑,如果我们的 ParamType 中不带 const 的话当然不用去掉,但是一旦 ParamType 中带有 const 就应该去掉实参自带的 const 。

  1. 「如果 expr 具有引用类型,先将引用部分忽略」为什么引用部分可以忽略呢?

首先我们要明确,引用本身在C++中就是一个类型修饰符,用于表示一个对象的别名(尽管其底层实现是指针),但是引用的引用是没有意义的。所以编译器在推导类型时会忽略引用部分。
主要就是在C++标准中规定,引用的引用会折叠成一个引用,具体的规则如下:

  • T& &T& && 折叠为 T&。我们忽略引用部分就是因为这一条
  • T&& & 折叠为 T&
  • T&& && 折叠为 T&&
http://www.yayakq.cn/news/233831/

相关文章:

  • 做网站用的免费推广引流app
  • 公司网站如何建立编程的网站都有哪些
  • 门窗网站免费模板百度认证官方网站
  • 江门cms建站farfetch 购物网站
  • 企业网站建设需要多少钱知乎wordpress 多媒体分类
  • 石家庄做网站建设的公司排名教育网站改版方案
  • 做服装设计兼职的网站做汽车微信广告视频网站
  • 做网站还要写文章吗东莞哪家网站建设好
  • 网站防止镜像电脑怎么打不开建设银行网站
  • 网站所有权 备案中文网站建设中模板下载
  • 高青外贸公司网站建设东莞浩智建设网站公司
  • 网站建设完工后在什么科目核算如何选择常州网站建设
  • 优化企业网站标题中国建设银行网上登录入口
  • ps和dw做网站工作总结及工作计划
  • 中国自适应网站建设教育局网站建设
  • 网站的设计思路枝江市住房和城乡建设局网站
  • 网站跳转qq链接怎么做的WordPress软件连接不了网站
  • 做房地产资质是什么网站查网站开发系统搭建
  • 企业网站模板是什么浙江网站怎么做推广
  • 网站建设与管理维护免费线上商城小程序
  • 制作公司网站结构图福建建设执业管理中心网站
  • 个人网站备案可以做项目网站建设官方网站需要注意什么
  • 怎样查后缀vc域名网站小程序搭建是什么工作
  • 最优惠的手机网站建设成都百度推广优化
  • 承德建设厅网站平谷手机网站设计
  • 北京pk10网站开发怎么找上海网站建设
  • 网站建设前准备哈尔滨网站制作公司电话
  • 出国做博后关注哪些网站网站重新建设的申请书
  • 网站开发与设计需要哪些技术jquery做网站浏览量
  • 在国内的服务器上建设国外网站网站开发费入账