C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)

C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)
  • 前言
    • C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)
  • 14.4.10 模板别名(C++11)


前言

提示:这里可以添加本文要记录的大概内容:

C++Primer Plus 第十四章代码重用:14.4.10 模板别名(C++11)

提示:以下是本篇文章正文内容,下面案例可供参考

14.4.10 模板别名(C++11)

如果能为类型指定别名,将很方便,在模板设计中尤其如此。可使用typedef为模板具体化指定别名:

// define three typedef aliases
typedef std::array<double,12> arrd;
typedef std::array<int,12> arri;
typedef std::array<std::string,12>arrst;
arrd gallons;//gallons is type std::array<double,12>
arri days;// days is type std::array<int,12>
arrst months;//months is type std::array<std::string,12>

但如果您经常编写类似于上述 typedef的代码,您可能怀疑要么自己忘记了可简化这项任务的 C++功能,要么 C++没有提供这样的功能。C++11新增了一项功能–使用模板提供一系列别名,如下所示:

template<typename T>using arrtype =std::array<T,12>;//template to create multiple aliases

这将 artype 定义为一个模板别名,可使用它来指定类型,如下所示:

arrtype<double>gallons;//gallons is type std::array<double12>
arrtype<int>days;// days is type std::array<int,12>
arrtype<std::string>months;/months is typestd::array<std::string

,12>总之,arrtype表示类型 std::array<T,12>。C++11允许将语法using =用于非模板。用于非模板时,这种语法与常规typcdef等价:

typedef const char*pcl;// typedef syntax
using pc2=const char*;//using = syntax
typedef const int *(*pal)[10];//typedefsyntax
using pa2=const int*(*)[10];//using = syntax

习惯这种语法后,您可能发现其可读性更强,因为它让类型名和类型信息更清晰。C++11新增的另一项模板功能是可变参数模板(variadic template),让您能够定义这样的模板类和模板函数,即可接受可变数量的参数。这个主题将在第18章介绍。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百事可乐推出具有视频屏幕和人工智能技术的智能罐头

在最近于法国戛纳举行的国际创意节上&#xff0c;百事公司推出了创新的智能罐头。这些罐头不同于传统产品&#xff0c;它们采用了环绕式3D屏幕&#xff0c;能够展示高清视频内容&#xff0c;为品牌宣传和促销带来了全新的视角。经过两年多的精心研发&#xff0c;这些智能罐成为…

Linux编程:通过flock实现文件锁

Linux(编程):多进程同步-文件锁_进程间文件锁-CSDN博客 除了fcntl方式的文件锁,linux还提供了另一个api flock,用于完成文件锁。 下面的代码对flock进行了封装: //file_lock.h #ifndef FILE_LOCK_H #define FILE_LOCK_H#include <sys/file.h> #include <sys/typ…

糟糕的管理者都有这几个特征

在我们的职业生涯中&#xff0c;我们都期望能遇到一位英明睿智、引领团队走向辉煌的管理者。然而&#xff0c;现实往往并非总是如此美好&#xff0c;总会有一些管理能力差的人混迹其中&#xff0c;给团队带来诸多困扰。今天&#xff0c;我们就来看看糟糕的管理者身上都有哪些特…

LLM原生开发路线图指南

引言 大型语言模型&#xff08;LLM&#xff09;正在迅速成为现代人工智能的基石。然而&#xff0c;目前还没有出现公认的最佳实践&#xff0c;而且先驱们往往没有明确的开发路线图。因此&#xff0c;这种状况急需要有人重新发明有关轮子&#xff1b;否则&#xff0c;将会使人陷…

【数论】欧拉函数

文章目录 定义性质求法分解质因数线性筛 定义 欧拉函数&#xff1a; φ ( n ) \varphi(n) φ(n) 表示小于等于 n 且与 n 互质的数的个数 性质 对于质数 n n n&#xff0c; φ ( n ) n − 1 \varphi(n)n-1 φ(n)n−1对于两个互质的正数 a 、 b a、b a、b&#xff0c;有 φ…

spring中集成mybatis,并测试是否成功

首先你要配置pom.xml <!-- 连接 MySQL 数据库的驱动程序 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!-- spring-jdbc -->&…

Advanced slides插件无法预览幻灯片

advanced-slides的官方地址&#xff1a; MSzturc/obsidian-advanced-slides: Create markdown-based reveal.js presentations in Obsidian (github.com) 官方教程和文档&#xff1a; Advanced Slides Documentation (mszturc.github.io) 中文版也有博客翻译了&#xff1a;Ob…

软考中级系统集成项目管理工程师备考笔记

目录 一&#xff0c;通用内容 &#xff08;一&#xff09;信息与信息化 1.1&#xff0c;信息 信息基本概念 信息的传输模型 信息的质量属性 1.2&#xff0c;信息系统 信息系统的基本概念 信息系统定义 信息系统集成 1.3&#xff0c;信息化 信息化层次 信息化的核心…

66、基于长短期记忆 (LSTM) 网络对序列数据进行分类

1、基于长短期记忆 (LSTM) 网络对序列数据进行分类的原理及流程 基于长短期记忆&#xff08;LSTM&#xff09;网络对序列数据进行分类是一种常见的深度学习任务&#xff0c;适用于处理具有时间或序列关系的数据。下面是在Matlab中使用LSTM网络对序列数据进行分类的基本原理和流…

AD20操作使用part1

AD20的使用 原理图库&#xff0c;也称为元件库。文件的后缀为 .SchLib。 原理图就是表示电路板上各器件之间连接原理的图表&#xff0c;原理图绘制的前提是拥有所需的原理图库。 PCB库&#xff0c;也称为封装库。文件的后缀为 .PcbLib &#xff0c;在该文件中可以画各个器件的封…

简单爬虫案例——爬取快手视频

网址&#xff1a;aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3NlYXJjaC92aWRlbz9zZWFyY2hLZXk9JUU2JThCJTg5JUU5JTlEJUEy 找到视频接口&#xff1a; 视频链接在photourl中 完整代码&#xff1a; import requestsimport re url https://www.kuaishou.com/graphql cookies {did: web_…

《数字图像处理与机器视觉》案例三 (基于数字图像处理的物料堆积角快速测量)

一、前言 物料堆积角是反映物料特性的重要参数&#xff0c;传统的测量方法将物料自然堆积&#xff0c;测量物料形成的圆锥表面与水平面的夹角即可&#xff0c;该方法检测效率低。随着数字成像设备的推广和应用&#xff0c;应用数字图像处理可以更准确更迅速地进行堆积角测量。 …

便携式气象站:科技助力,气象观测的新选择

在气象观测领域&#xff0c;便携式气象站不仅安装方便、操作简单&#xff0c;而且功能齐全、性能稳定&#xff0c;为气象观测带来了极大的便利。 首先&#xff0c;便携式气象站的便携性&#xff0c;与传统的气象站相比&#xff0c;它不需要复杂的安装过程和固定的设备基础&…

Visual Studio 设置回车代码补全

工具 -> 选项 -> 文本编辑器 -> C/C -> 高级 -> 主动提交成员列表 设置为TRUE

机器学习模型的训练过程和预测过程,用太上老君炼丹炉和孙悟空进行比喻--九五小庞

训练过程&#xff1a;太上老君炼丹 在古老的传说中&#xff0c;太上老君是一位擅长炼丹的神仙。他将各种珍贵的草药、矿石放入炼丹炉中&#xff0c;经过长时间的高温炼制&#xff0c;最终炼出神奇的丹药。这个过程与机器学习模型的训练过程有着惊人的相似之处。 收集原料&…

Batch脚本中的用户交互:CHOICE命令的妙用

Batch脚本中的用户交互&#xff1a;CHOICE命令的妙用 在自动化脚本的世界中&#xff0c;Batch文件以其简洁和高效而著称&#xff0c;但有时我们也需要与用户进行交互以获取输入或提供选择。这就是CHOICE命令大放异彩的地方。本文将深入探讨如何在Batch文件中使用CHOICE命令&am…

从实验室走向商业化,人形机器人时代要来了?

从国内市场看&#xff0c;据机构报告显示&#xff0c;预计到2026年中国人形机器人产业规模将突破200亿元。特别是在生成式AI技术大爆发的当下&#xff0c;未来人形机器人更是极有可能实现超预期增长。 近日&#xff0c;特斯拉CEO埃隆马斯克(Elon Musk)在特斯拉2024年股东大会上…

【Unity设计模式】✨使用 MVC 和 MVP 编程模式

前言 最近在学习Unity游戏设计模式&#xff0c;看到两本比较适合入门的书&#xff0c;一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式&#xff0c;因此很值得学习 本…

System.currentTimeMillis() JAVA 转C#

JAVA中的System.currentTimeMillis() &#xff0c;指获取当前时间与1970年1月1日00:00:00 GMT之间所差的毫秒数的方法。 这个方法返回的是一个long类型的值&#xff0c;表示从某个固定时间点&#xff08;通常是UNIX纪元&#xff0c;即1970年1月1日00:00:00 GMT&#xff09;到…

六西格玛培训引领久立特材品质新高度,行业领军再升级

久立特材六西格玛管理项目于6月27 日启动。久立特材作为行业内的领军企业&#xff0c;此次引入六西格玛管理法&#xff0c;旨在进一步提升企业运营效率和产品质量&#xff0c;实现持续改进和卓越运营。 久立特材的高层领导与张驰咨询的资深顾问朱老师共同出席项目启动仪式&am…