• C++ Templates(第2版)中文版
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

C++ Templates(第2版)中文版

全新正版未拆封

60.38 4.0折 149.8 全新

库存2件

山东济宁
认证卖家担保交易快速发货售后保障

作者[德]戴维·范德沃德(DavidVandevoorde)尼古拉M

出版社人民邮电出版社

出版时间2024-01

版次1

装帧其他

上书时间2024-08-18

天吾之青豆的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 [德]戴维·范德沃德(DavidVandevoorde)尼古拉M
  • 出版社 人民邮电出版社
  • 出版时间 2024-01
  • 版次 1
  • ISBN 9787115601513
  • 定价 149.80元
  • 装帧 其他
  • 开本 16开
  • 页数 644页
  • 字数 1.022千字
【内容简介】


本书是一本全面介绍c模板技术的图书,主要内容涵盖c模板的基础概念、语言细节、编程、应用以及实用示例等。本书针对c11、c14、c17标准进行了内容更新,并对很多新语言特(包括变量模板、泛型lambda、类模板参数推导等)给出详细解释。通过阅读本书,读者可以深入理解c模板技术,掌握开发有效、简洁且易维护的软件的原因、时机和方法。
本书内容丰富,架构清晰,讲解翔实,适合对c模板技术感兴趣的开发人员或爱好者阅读。

【作者简介】


david vandevoorde是edion deign group公司的工程副裁,负责设计公司c编译器的关键功能。他是p.lang.c.moderated论坛的创办人之一,也是c标准化的积极参与者。他拥有伦斯勒理工学院的计算机科学博士和硕士,以及布鲁塞尔自由大学的工程硕士。他的技术兴趣包括算法开发和培训。

nicolai m. joutti是一名独立的系统架构师、技术经理、顾问和培训师,20多年来一直活跃在c标准化领域。作为库工作组的成员,他特别关注普通开发人员的观点。他是c标准库(第2版)等图书的作者。

dougla gregor是一名经验丰富的编译器开发人员,具有c库设计背景。作为boot的早期贡献者,他开发的多个库已成为c标准的一部分。后来,他作为代码所有者负责开源clang c编译器的实施,直至完成对c11的支持,并积极参与了c11的标准化工作。他拥有伦斯勒理工学院的计算机科学博士。
【目录】


部分基础知识

章函数模板2

1.1函数模板初探2

1.1.1定义模板2

1.1.2使用模板3

1.1.3两阶段编译4

1.2模板实参推导简介5

1.3多模板参数7

1.3.1返回类型的模板参数7

1.3.2推导返回类型8

1.3.3返回类型为公共类型9

1.4默认模板实参简介10

1.5重载函数模板简介11

1.6难道,我们不应该……16

1.6.1传值还是传引用16

1.6.2为什么不使用inline16

1.6.3为什么不使用constexpr16

1.7小结17

第2章类模板18

2.1类模板stack的实现18

2.1.1类模板的声明19

2.1.2成员函数的实现20

2.2类模板stack的使用21

2.3部分使用类模板22

2.4友元简介24

2.5类模板的特化25

2.6偏特化26

2.7默认类模板实参28

2.8类型别名30

2.9类模板实参推导32

2.10模板化聚合体35

2.11小结35

第3章非类型模板参数36

3.1非类型的类模板参数36

3.2非类型的函数模板参数38

3.3非类型模板参数的39

3.4模板参数类型auto40

3.5小结43

第4章变参模板44

4.1变参模板简介44

4.1.1变参模板示例44

4.1.2变参和非变参模板的重载45

4.1.3sizeof...运算符46

4.2折叠表达式46

4.3变参模板应用48

4.4变参类模板和变参表达式49

4.4.1变参表达式49

4.4.2变参索引50

4.4.3变参类模板51

4.4.4变参推导指引52

4.4.5变参基类和using关键字52

4.5小结54

第5章基本55

5.1关键字typename55

5.2零初始化56

5.3使用this->58

5.4处理原始数组和字符串字面量的模板58

5.5成员模板60

5.5.1.temte构造65

5.5.2泛型lambda和成员模板65

5.6变量模板66

5.7模板的模板参数简介68

5.8小结73

第6章移动语义和enable_if<>74

6.1转发简介74

6.2特殊成员函数模板77

6.3通过std::enable_if<>禁用模板79

6.4使用enable_if<>81

6.5使用概念简化enable_if<>表达式84

6.6小结85

第7章传值还是传引用86

7.1传值86

7.2传引用88

7.2.1传递常量引用88

7.2.2传递非常量引用90

7.2.3传递转发引用91

7.3使用std::ref()和std::cref()92

7.4处理字符串字面量和原始数组94

7.5处理返回值95

7.6的模板参数声明方法97

7.7小结99

第8章编译期编程100

8.1模板元编程100

8.2使用constexpr计算102

8.3偏特化的执行路径选择103

8.4sfinae104

8.5编译期if简介108

8.6小结110

第9章在实践中使用模板111

9.1包含模型简介111

9.1.1器错误111

9.1.2头文件中的模板112

9.2模板和inline113

9.3预编译头文件114

9.4破译大篇错误信息115

9.5后记122

9.6小结122

0章模板基本术语123

10.1是“类模板”还是“模板类”123

10.2替换、实例化和特化123

10.3声明和定义124

10.4单义规则126

10.5模板实参和模板形参126

10.6小结127

1章泛型库128

11.1可调用对象128

11.2实现泛型库的其他工具133

11.3转发临时变量136

11.4作为模板参数的引用137

11.5推迟估算140

11.6关于泛型库的思141

11.7小结141

第二部分深入模板

2章深入模板基础144

12.1参数化的声明144

12.2模板参数150

12.3模板实参156

12.4变参模板163

12.5友元170

12.6后记174

3章模板中的名称175

13.1名称的分类175

13.2名称查找177

13.3解析模板183

13.4继承和类模板193

13.5后记196

4章实例化198

14.1按需实例化198

14.2延迟实例化200

14.3c++的实例化模型203

14.4实现方案207

14.5显式实例化212

14.6编译期的if语句215

14.7标准库216

14.8后记217

5章模板实参推导218

15.1推导的过程218

15.2推导的上下文220

15.3特殊的推导情况221

15.4初始化列表222

15.5参数包223

15.6右值引用225

15.7sfinae230

15.8推导的233

15.9显式函数模板参数236

15.10基于初始化器和表达式的推导238

15.11别名模板254

15.12类模板参数推导255

15.13后记262

6章特化与重载264

16.1当“泛型代码”不是特别适用的时候264

16.2重载函数模板267

16.3显式特化276

16.4类模板偏特化284

16.5变量模板偏特化287

16.6后记287

7章未来方向289

17.1宽松的typename规则289

17.2广义非类型模板参数290

17.3函数模板的偏特化292

17.4命名模板实参简介293

17.5重载类模板294

17.6中间包扩展的演绎294

17.7void的规则化295

17.8模板的类型检查296

17.9反元编程297

17.10包管理工具298

17.11模块299

第三部分模板与设计

8章模板的多态302

18.1动多态302

18.2静多态304

18.3动多态与静多态306

18.4使用概念308

18.5新形式的设计模式309

18.6泛型程序设计310

18.7后记312

9章特征的实现314

19.1一个实例:累加一个序列314

19.1.1固定特征314

19.1.2值特征317

19.1.3参数化特征321

19.2特征、policy及policy类321

19.3类型函数326

19.4基于sfinae的特征339

19.5isconvertiblet349

19.6检测成员351

19.7其他特征技术359

19.8类型分类366

19.9policy特征373

19.10在标准库中376

19.11后记377

第20章类型属重载379

20.1算法特化379

20.2标签调度380

20.3启用/禁用函数模板382

20.4类特化388

20.5实例化安全模板392

20.6在标准库中396

20.7后记396

第21章模板与继承398

21.1空基类优化398

21.2奇妙递归模板模式402

21.3混入413

21.4命名模板实参416

21.5后记419

第22章桥接静多态与动多态421

22.1函数对象、指针以及std::function<>421

22.2泛化的函数指针423

22.3桥接接425

22.4类型擦除426

22.5可选的桥接427

22.6能虑429

22.7后记429

第23章元编程431

23.1现代c++元编程的状况431

23.2反元编程的维度437

23.3递归实例化的代价438

23.4计算完备441

23.5递归实例化还是递归模板实参441

23.6枚举值还是静态常量442

23.7后记443

第24章类型列表446

24.1解剖一个类型列表446

24.2类型列表算法448

24.3非类型类型列表459

24.4使用包扩展来优化算法462

24.5cons风格的类型列表463

24.6后记465

第25章元组466

25.1基础元组设计466

25.2基础元组运算469

25.3元组算法471

25.4展开元组480

25.5优化元组480

25.6元组索引485

25.7后记487

第26章可辨识联合体489

26.1存储简介490

26.2设计491

26.3值的查询与提取494

26.4元素初始化、赋值和析构495

26.5访问者500

26.6variant的初始化和赋值505

26.7后记508

第27章表达式模板510

27.1临时变量和割裂的循环510

27.2在模板实参中对表达式编码514

27.3表达式模板的能与局限524

27.4后记524

第28章调试模板527

28.1浅层实例化527

28.2静态断言529

28.3原型530

28.4追踪器532

28.5预言机535

28.6后记536

附录a单义规则537

a.1编译单元537

a.2声明和定义538

a.3单义规则的细节539

附录b值类别545

b.1传统的左值和右值545

b.2c++11值类别546

b.3使用decltype检查值类别549

b.4引用类型549

附录c重载解析551

c.1何时应用重载解析551

c.2简化过的重载解析552

c.3重载的细节556

附录d标准库类型实用程序564

d.1使用类型特征564

d.2基本和复合类型类别567

d.3类型属和作572

d.4类型构造589

d.5其他特征593

d.6组合类型特征595

d.7其他工具596

附录e概念598

e.1使用概念598

e.2定义概念600

e.3约束的重载602

e.4概念小提示604

术语表607

点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP