本书是一本全面介绍C++模板技术的图书,主要内容涵盖C++模板的基础概念、语言细节、编程技巧、高级应用以及实用示例等。本书针对C++11、C++14、C++17标准进行了内容更新,并对很多新语言特性(包括变量模板、泛型lambda、类模板参数推导等)给出详细解释。通过阅读本书,读者可以深入理解C++模板技术,掌握开发有效、简洁且易维护的软件的原因、时机和方法。
本书内容丰富,架构清晰,讲解翔实,适合对C++模板技术感兴趣的开发人员或爱好者阅读。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | C++ Templates(第2版中文版) |
分类 | |
作者 | (美)戴维·范德沃德//(德)尼古拉M.约祖蒂斯//(美)道格拉斯·格雷戈 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 内容推荐 本书是一本全面介绍C++模板技术的图书,主要内容涵盖C++模板的基础概念、语言细节、编程技巧、高级应用以及实用示例等。本书针对C++11、C++14、C++17标准进行了内容更新,并对很多新语言特性(包括变量模板、泛型lambda、类模板参数推导等)给出详细解释。通过阅读本书,读者可以深入理解C++模板技术,掌握开发有效、简洁且易维护的软件的原因、时机和方法。 本书内容丰富,架构清晰,讲解翔实,适合对C++模板技术感兴趣的开发人员或爱好者阅读。 作者简介 戴维·范德沃德(David Vandevoorde),Edison Design Group公司的工程副总裁,为公司的C++编译器中的一些关键特性进行了架构设计。他是知名的comp.lang.c++.moderat论坛的联合创始人,同时还积极投身于C++的标准化工作。他拥有伦斯勒理工学院计算机科学博士、硕士学位,以及布鲁塞尔自由大学的工程硕士学位。 目录 第一部分 基础知识 第1章 函数模板 1.1 函数模板初探 1.1.1 定义模板 1.1.2 使用模板 1.1.3 两阶段编译 1.2 模板实参推导简介 1.3 多模板参数 1.3.1 返回类型的模板参数 1.3.2 推导返回类型 1.3.3 返回类型为公共类型 1.4 默认模板实参简介 1.5 重载函数模板简介 1.6 难道,我们不应该…… 1.6.1 传值还是传引用 1.6.2 为什么不使用inline 1.6.3 为什么不使用constexpr 1.7 小结 第2章 类模板 2.1 类模板Stack的实现 2.1.1 类模板的声明 2.1.2 成员函数的实现 2.2 类模板Stack的使用 2.3 部分使用类模板 2.4 友元简介 2.5 类模板的特化 2.6 偏特化 2.7 默认类模板实参 2.8 类型别名 2.9 类模板实参推导 2.10 模板化聚合体 2.11 小结 第3章 非类型模板参数 3.1 非类型的类模板参数 3.2 非类型的函数模板参数 3.3 非类型模板参数的限制 3.4 模板参数类型auto 3.5 小结 第4章 变参模板 4.1 变参模板简介 4.1.1 变参模板示例 4.1.2 变参和非变参模板的重载 4.1.3 sizeof...运算符 4.2 折叠表达式 4.3 变参模板应用 4.4 变参类模板和变参表达式 4.4.1 变参表达式 4.4.2 变参索引 4.4.3 变参类模板 4.4.4 变参推导指引 4.4.5 变参基类和using关键字 4.5 小结 第5章 基本技巧 5.1 关键字typename 5.2 零初始化 5.3 使用this 5.4 处理原始数组和字符串字面量的模板 5.5 成员模板 5.5.1 template构造 5.5.2 泛型lambda和成员模板 5.6 变量模板 5.7 模板的模板参数简介 5.8 小结 第6章 移动语义和enable_if 6.1 完美转发简介 6.2 特殊成员函数模板 6.3 通过std::enable_if禁用模板 6.4 使用enable_if 6.5 使用概念简化enable_if表达式 6.6 小结 第7章 传值还是传引用 7.1 传值 7.2 传引用 7.2.1 传递常量引用 7.2.2 传递非常量引用 7.2.3 传递转发引用 7.3 使用std::ref()和std::cref() 7.4 处理字符串字面量和原始数组 7.5 处理返回值 7.6 推荐的模板参数声明方法 7.7 小结 第8章 编译期编程 8.1 模板元编程 8.2 使用constexpr计算 8.3 偏特化的执行路径选择 8.4 SFINAE 8.5 编译期if简介 8.6 小结 第9章 在实践中使用模板 9.1 包含模型简介 9.1.1 链接器错误 9.1.2 头文件中的模板 9.2 模板和inline 9.3 预编译头文件 9.4 破译大篇错误信息 9.5 后记 9.6 小结 第10章 模板基本术语 10.1 是“类模板”还是“模板类” 10.2 替换、实例化和特化 10.3 声明和定义 10.4 单一定义规则 10.5 模板实参和模板形参 10.6 小结 第11章 泛型库 11.1 可调用对象 11.1.1 函数对象的支持 11.1.2 处理成员函数及额外的参数 11.1.3 封装函数调用 11.2 实现泛型库的其他工具 11.2.1 类型特征 11.2.2 std::addressof() 11.2.3 std::declval() 11.3 完美转发临时变量 11.4 作为模板参数的引用 11.5 推迟估算 11.6 关于泛型库的思考 11.7 小结 第二部分 深入模板 第12章 深入模板基础 12.1 参数化的声明 12.1.1 虚成员函数 12.1.2 模板的链接 12.1.3 主模板 12.2 模板参数 12.2.1 类型参数 12.2.2 非类型参数 12.2.3 模板的模板参数 12.2.4 模板参数包 12.2.5 默认模板实参 12.3 模板实参 12.3.1 函数模板实参 12.3.2 类型实参 12.3.3 非类型模板实参 12.3.4 模板的模板实参 12.3.5 实参的等价性 12.4 变参模板 12.4.1 包扩展 12.4.2 包扩展的时机 12.4.3 函数参数包 12.4.4 多重和嵌套包扩展 12.4.5 零长度包扩展 12.4.6 折叠表达式 12.5 友元 12.5.1 类模板的友元类 12.5.2 类模板的友元函数 12.5.3 友元模板 12.6 后记 第13章 模板中的名称 13.1 名称的分类 13.2 名称查找 13.2.1 依赖于参数的查找 13.2.2 依赖于参数的友元声明的查找 13.2.3 注入的类名称 13.2.4 当前的实例化 13.3 解析模板 13.3.1 非模板中的上下文相关性 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。