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

青岛网站建设推广信息网络公司郑州路普科技

青岛网站建设推广信息网络公司,郑州路普科技,封开网站建设公司,徐州网站建设方案优化极客时间-《罗剑锋的 C 实战笔记》文章笔记 个人思考 语言特性06 | auto/decltype#xff1a;为什么要有自动类型推导#xff1f; 语言特性 06 | auto/decltype#xff1a;为什么要有自动类型推导#xff1f; auto 在C 11 引入。 为什么说C是静态强类型语言#xff1f… 极客时间-《罗剑锋的 C 实战笔记》文章笔记 个人思考 语言特性06 | auto/decltype为什么要有自动类型推导 语言特性 06 | auto/decltype为什么要有自动类型推导 auto 在C 11 引入。 为什么说C是静态强类型语言 编译阶段对数据类型进行严格检查编译阶段每个变量和表达式的类型都是确定的。 通过自动类型推导 auto 在编译阶段从编译器获取类型。 auto可以自适应表达式类型。例如使用C关联容器把 map 改为 unordered_map使用 auto 的代码不需要修改。 auto 的自动推导只能用在初始化。赋值初始化或列表初始化。 代码演示变量右边必须要有一个表达式。 auto x 0L; // 自动推导为long auto y x; // 自动推导为long* auto z {x}; // 自动推导为long* auto err; // 错误没有赋值表达式不知道是什么类型代码演示类成员变量初始化不允许使用 auto class X final {auto a 10; // 错误类里不能使用auto推导类型 };规则 auto 总是推导出“值类型”绝不会是“引用”。auto 可以附加上 const、volatile、*、 这样的类型修饰符得到新的类型。 代码演示上面两条规则。 auto x 10L; // auto推导为longx是longauto x1 x; // auto推导为longx1是long auto* x2 x; // auto推导为longx2是long* const auto x3 x; // auto推导为longx3是const long auto x4 x3; // auto推导为const long*x4是const long*decltype 通过在 () 中 输入可用于计算类型的表达式编译器在编译阶段获取表达式类型。 相对于 auto 只能用于初始化decltype 应用场景更多。 代码演示decltype 使用 int x 0; // 整型变量decltype(x) x1; // 推导为intx1是int decltype(x) x2 x; // 推导为intx2是int引用必须赋值 decltype(x)* x3; // 推导为intx3是int* decltype(x) x4; // 推导为int*x4是int* decltype(x)* x5; // 推导为int*x5是int** decltype(x2) x6 x2; // 推导为intx6是int引用必须赋值。decltype 能够推推导出引用。decltype 能够推推导出引用其他方面就和 auto 一样了也能加上 const、*、 来修饰。 decltype 可以用在变量声明、函数参数 / 返回值、模板参数等任何类型能出现的地方。 decltype 写起来稍微麻烦一点decltype(x) x2 x; 表达式写了2遍。 C14 新增 decltype(auto) 代码演示decltype(auto) int x 0; // 整型变量 decltype(auto) x1 (x); // 推导为int因为(expr)是引用类型。 x是值类型加上括号就变成了引用类型。 decltype(auto) x2 x; // 推导为int* decltype(auto) x3 x1; // 推导为intauto 变量声明和初始化时使用更好获取值类型。range-based for 使用为了保证效率最好使用“const auto”或者“auto”。C14推导函数返回值类型。 代码演示range-based for 使用为了保证效率最好使用“const auto”或者“auto”。 vectorint v {2,3,5,7,11}; // vector顺序容器for(const auto i : v) { // 常引用方式访问元素避免拷贝代价cout i ,; // 常引用不会改变元素的值}for(auto i : v) { // 引用方式访问元素i; // 可以改变元素的值cout i ,;}代码演示C14推导函数返回值类型。 auto get_a_set() // auto作为函数返回值的占位符 {std::setint s {1,2,3};return s; }decltype 可以用在任意场合。泛型编程中经常用到。当你感觉“这里我需要一个特殊类型”的时候选它就对了。推导类数据成员类型。 代码演示使用decltype可以轻松得到函数指针类型 // UNIX信号函数的原型看着就让人晕你能手写出函数指针吗 void (*signal(int signo, void (*func)(int)))(int)// 使用decltype可以轻松得到函数指针类型 using sig_func_ptr_t decltype(signal) ;代码演示推导类数据成员类型。 class DemoClass final { public:using set_type std::setint; // 集合类型别名 private:set_type m_set; // 使用别名定义成员变量// 使用decltype计算表达式的类型定义别名using iter_type decltype(m_set.begin());iter_type m_pos; // 类型别名定义成员变量 };
http://www.hkea.cn/news/14468554/

相关文章:

  • 超酷的网站设计珠海网站设计报价
  • 明年做那些网站能致富微信运营管理软件
  • 网站平台建设成本网站建设教程在线
  • 一个服务器下怎么做两个网站吗一灯wordpress主题
  • 电商网站开发需求文档中小型网站建设 教案
  • 专业购物网站建设工程合同在性质上属于什么合同
  • 广告设计公司宣传文案潍坊seo网站推广
  • 网站宣传工作海南建设网站
  • 做网站海报拓者设计吧室内设计官网案例
  • 网站建设公司哪家好 干净磐石网络成品网站源码免费
  • p2p网站建设 上海WordPress浏览计数插件
  • 文化类网站建设方向老家装设计网
  • 微餐饮网站建设比较好网站上传后 后台进不去
  • 群晖nas 做网站网站没有关键词的弊端
  • 建网站维护需要多少钱专业设计公司vi设计
  • c 网站开发 书鸿运网站建设
  • 沧州做网站价格小型装修公司店面装修
  • 动软代码生成器 做网站找人做网站排名优化
  • 广西南宁市有公司网站设计天津个人做网站
  • 做风控的网站淘宝店铺怎么免费推广
  • php网站怎么做302电子商务网站的实施包括哪些步骤
  • 做期货网站建设工程质量检测机构主管网站
  • 网站刷流量有什么用楼盘销售管理网站开发资源
  • 做购物比价的网站有哪些厦门手机网站
  • 网站如何自动手机版深圳宝协建设公司
  • 人才网网站建设方案天津电力建设公司网站
  • 图书馆第一代网站建设西安流调轨迹公布
  • 建设电影网站的目的WordPress导航主页
  • 那个网做网站便宜建设部注册师网站
  • 石家庄建站公司深信服对单一网站做限速