C++ Templates 中文版
- ISBN:9787115312815
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:497
- 出版时间:2013-04-01
- 条形码:9787115312815 ; 978-7-115-31281-5
本书特色
《c++ templates中文版》是c++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例三方面的有用资料,为读者打下c++模板知识的坚实基础。 全书共22章。第1章全面介绍了《c++ templates中文版》的内容结构和相关情况。第1部分(第2~7章)以教程的风格介绍了模板的基本概念,第2部分(第8~13章)阐述了模板的语言细节,第3部分(第14~18章)介绍了c++模板所支持的基本设计技术,第4部分(第19~22章)深入探讨了各种使用模板的普通应用程序。附录a和附录b分别为一处定义原则和重载解析的相关资料。 《c++ templates中文版》适合c++模板技术的初学者阅读,也可供有一定编程经验的c++程序员参考。
内容简介
详细讲解c++模板语言的概念。 使用c++模板的常用设计技巧。 应用例证(其中一些是“高级”应用)。
目录
第1章 关于本章
1.1 阅读本书所需具备的知识
1.2 本书的整体结构
1.3 如何阅读本书
1.4 关于编程风格的一些说明
1.5 标准和现实
1.6 代码例子和更多信息
1.7 反馈
第1部分 基础
第2章 函数模板
2.1 初探函数模板
2.1.1 定义模板
2.1.2 使用模板
2.2 实参的演绎(deduction)
2.3 模板参数
2.4 重载函数模板
2.5 小结
第3章 类模板
3.1 类模板stack的实现
3.1.1 类模板的声明
3.1.2 成员函数的实现
3.2 类模板stack的使用
3.3 类模板的特化
3.4 局部特化
3.5 缺省模板实参
3.6 小结
第4章 非类型模板参数
4.1 非类型的类模板参数
4.2 非类型的函数模板参数
4.3 非类型模板参数的限制
4.4 小结
第5章 技巧性基础知识
5.1 关键字typename
5.2 使用this->
5.3 成员模板
5.4 模板的模板参数
5.5 零初始化
5.6 使用字符串作为函数模板的实参
5.7 小结
第6章 模板实战
6.1 包含模型
6.1.1 链接器错误
6.1.2 头文件中的模板
6.2 显式实例化
6.2.1 显式实例化的例子
6.2.2 整合包含模型和显式实例化
6.3 分离模型
6.3.1 关键字export
6.3.2 分离模型的限制
6.3.3 为分离模型做好准备
6.4 模板和内联
6.5 预编译头文件
6.6 调试模板
6.6.1 理解长段的错误信息
6.6.2 浅式实例化
6.6.3 长符号串
6.6.4 跟踪程序
6.6.5 oracles
6.6.6 archetypes
6.7 本章后记
6.8 小结
第7章 模板术语
7.1 "类模板"还是"模板类"
7.2 实例化和特化
7.3 声明和定义
7.4 一处定义原则
7.5 模板实参和模板参数
第2部分 深入模板
第8章 深入模板基础
8.1 参数化声明
8.1.1 虚成员函数
8.1.2 模板的链接
8.1.3 基本模板
8.2 模板参数
8.2.1 类型参数
8.2.2 非类型参数
8.2.3 模板的模板参数
8.2.4 缺省模板实参
8.3 模板实参
8.3.1 函数模板实参
8.3.2 类型实参
8.3.3 非类型实参
8.3.4 模板的模板实参
8.3.5 实参的等价性
8.4 友元
8.4.1 友元函数
8.4.2 友元模板
8.5 本章后记
第9章 模板中的名称
9.1 名称的分类
9.2 名称查找
9.2.1 argument-dependent lookup(adl)
9.2.2 友元名称插入
9.2.3 插入式类名称
9.3 解析模板
9.3.1 非模板中的上下文相关性
9.3.2 依赖型类型名称
9.3.3 依赖型模板名称
9.3.4 using-declaration中的依赖型名称
9.3.5 adl和显式模板实参
9.4 派生和类模板
9.4.1 非依赖型基类
9.4.2 依赖型基类
9.5 本章后记
第10章 实例化
10.1 on-demand实例化
10.2 延迟实例化
10.3 c++的实例化模型
10.3.1 两阶段查找
10.3.2 poi
10.3.3 包含模型与分离模型
10.3.4 跨翻译单元查找
10.3.5 例子
10.4 几种实现方案
10.4.1 贪婪实例化
10.4.2 询问实例化
10.4.3 迭代实例化
10.5 显式实例化
10.6 本章后记
第11章 模板实参演译
11.1 演绎的过程
11.2 演绎的上下文
11.3 特殊的演绎情况
11.4 可接受的实参转型
11.5 类模板参数
11.6 缺省调用实参
11.7 barton-nackman方法
11.8 本章后记
第12章 特化与重载
12.1 当泛型代码不再适用的时候
12.1.1 透明自定义
12.1.2 语义的透明性
12.2 重载函数模板
12.2.1 签名
12.2.2 重载的函数模板的局部排序
12.2.3 正式的排序原则
12.2.4 模板和非模板
12.3 显式特化
12.3.1 全局的类模板特化
12.3.2 全局的函数模板特化
12.3.3 全局成员特化
12.4 局部的类模板特化
12.5 本章后记
第13章 未来的方向
13.1 尖括号hack
13.2 放松typename的原则
13.3 缺省函数模板实参
13.4 字符串文字和浮点型模板实参
13.5 放松模板的模板参数的匹配
13.6 typedef模板
13.7 函数模板的局部特化
13.8 typeof运算符
13.9 命名模板实参
13.10 静态属性
13.11 客户端的实例化诊断信息
13.12 重载类模板
13.13 list参数
13.14 布局控制
13.15 初始化器的演绎
13.16 函数表达式
13.17 本章后记
第3部分 模板与设计
第14章 模板的多态威力
14.1 动多态
14.2 静多态
14.3 动多态和静多态
14.3.1 术语
14.3.2 优点和缺点
14.3.3 组合这两种多态
14.4 新形式的设计模板
14.5 泛型程序设计
14.6 本章后记
第15章 trait与policy类
15.1 一个实例:累加一个序列
15.1.1 fixed traits
15.1.2 value trait
15.1.3 参数化trait
15.1.4 policy和policy类
15.1.5 trait和policy:区别在何处
15.1.6 成员模板和模板的模板参数
15.1.7 组合多个policie和/或trait
15.1.8 运用普通的迭代器进行累积
15.2 类型函数
15.2.1 确定元素的类型
15.2.2 确定class类型
15.2.3 引用和限定符
15.2.4 promotion trait
15.3 policy trait
15.3.1 只读的参数类型
15.3.2 拷贝、交换和移动
15.4 本章后记
第16章 模板与继承
16.1 命名模板参数
16.2 空基类优化
16.2.1 布局原则
16.2.2 成员作基类
16.3 奇特的递归模板模式
16.4 参数化虚拟性
16.5 本章后记
第17章 metaprogram
17.1 metaprogram的**个实例
17.2 枚举值和静态常量
17.3 第2个例子:计算平方根
17.4 使用归纳变量
17.5 计算完整性
17.6 递归实例化和递归模板实参
17.7 使用metaprogram来展开循环
17.8 本章后记
第18章 表示式模板
18.1 临时变量和分割循环
18.2 在模板实参中编码表达式
18.2.1 表达式模板的操作数
18.2.2 array类型
18.2.3 运算符
18.2.4 回顾
18.2.5 表达式模板赋值
18.3 表达式模板的性能与约束
18.4 本章后记
第4部分 高级应用程序
第19章 类型区分
19.1 辨别基本类型
19.2 辨别组合类型
19.3 辨别函数类型
19.4 运用重载解析辨别枚举类型
19.5 辨别class类型
19.6 辨别所有类型的函数模板
19.7 本章后记
第20章 智能指针
20.1 holder和trule
20.1.1 安全处理异常
20.1.2 holder
20.1.3 作为成员的holder
20.1.4 资源获取于初始化
20.1.5 holder的局限
20.1.6 复制holder
20.1.7 跨函数调用来复制holder
20.1.8 trule
20.2 引用记数
20.2.1 计数器在什么地方
20.2.2 并发访问计数器
20.2.3 析构和释放
20.2.4 countingptr模板
20.2.5 一个简单的非侵入式计数器
20.2.6 一个简单的侵入式计数器模板
20.2.7 常数性
20.2.8 隐式转型
20.2.9 比较
20.3 本章后记
第21章 tuple
21.1 duo
21.2 可递归duo
21.2.1 域的个数
21.2.2 域的类型
21.2.3 域的值
21.3 tuple构造
21.4 本章后记
第22章 函数对象和回调
22.1 直接调用、间接调用与内联调用
22.2 函数指针与函数引用
22.3 成员函数指针
22.4 class类型的仿函数
22.4.1 class类型仿函数的第1个实例
22.4.2 class类型仿函数的类型
22.5 指定仿函数
22.5.1 作为模板类型实参的仿函数
22.5.2 作为函数调用实参的仿函数
22.5.3 结合函数调用参数和模板类型参数
22.5.4 作为非类型模板实参的仿函数
22.5.5 函数指针的封装
22.6 内省
22.6.1 分析一个仿函数的类型
22.6.2 访问参数的类型
22.6.3 封装函数指针
22.7 函数对象组合
22.7.1 简单的组合
22.7.2 混合类型的组合
22.7.3 减少参数的个数
22.8 值绑定
22.8.1 选择绑定的目标
22.8.2 绑定签名
22.8.3 实参选择
22.8.4 辅助函数
22.9 仿函数操作:一个完整的实现
22.10 本章后记
附录a 一处定义原则
a.1 翻译单元
a.2 声明和定义
a.3 一处定义原则的细节
a.3.1 程序的一处定义约束
a.3.2 翻译单元的一处定义约束
a.3.3 跨翻译单元的等价性约束
附录b 重载解析
b.1 何时应用重载解析
b.2 简化过的重载解析
b.2.1 成员函数的隐含实参
b.2.2 细化完美匹配
b.3 重载的细节
b.3.1 非模板优先
b.3.2 转型序列
b.3.3 指针的转型
b.3.4 仿函数和代理函数
b.3.5 其他的重载情况
参考资料
术语表
相关资料
如果今年你只打算买一本c++的书,那就选这本吧! ——josh walker,accu成员 c++世界期待已久的重量级著作。 ——marc briand, c/c++ users journal前任总编一句话,模板圣经已经写就,请研习。 ——maxim khesin, cvision technologies, llc
作者简介
David Vandevoorde 有20多年的C++工作经验,C++标准委员会成员。曾因为审校The C++ Programming Language一书的草稿,获得Bjarne Stroustrup的推荐,编写了C++ Solutions。 Nicolai M. Josuttis The C++ Standard Library - A Tutorial and Reference(中文版名为《C++标准库》)的作者,这本书出版以后成为实际上的标准读本。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0