作者简介 David Vandevoorde,Edison Design Group公司的工程副总裁,为公司的C++编译器中的一些关 键特性进行了架构设计。他是知名的comp.lang.c++.moderat论坛的联合创始人,同时还积极投身于C++ 的标准化工作。他拥有伦斯勒理工学院计算机科学博士、硕士学位,以及布鲁塞尔自由大学的工程硕 士学位。Nicolai M. Josuttis,他是一位独立的系统架构师、技术经理、顾问以及培训师,过去20年以来 他一直致力于C++的标准化工作。他还是The C++ Standard Library: A Tutorial and Reference (2nd Edition) 等书的作者。Douglas Gregor,是一位知名的编译器人员,具有C++库的设计背景。作为Boost的早期贡献 者,他开发的一些库被列入了C++标准。在对C++11提供支持的期间,他领导了开源的C++编译器 Clang的实现。他拥有伦斯勒理工学院的计算机科学博士学位。
目录 第 1部分: 基本概念 1 Function Templates 第 1章 函数模板 1.1 A First Look at Function Templates/初识函数模板1.1.1 Defining the Template/定义模板1.1.2 Using the Template/使用模板1.1.3 Two-Phase Translation/二阶段翻译1.2 Template Argument Deduction/模板参数推导 1.3 Multiple Template Parameters/多模板参数1.3.1 Template Parameters for Return Types/返回类型的模板参数1.3.2 Deducing the Return Type/推导返回类型 1.3.3 Return Type as CommonType/作为通用类型返回1.4 Default Template Arguments/缺省模板参数1.5 Overloading Function Templates/重载函数模板1.6 But,Shouldn’t We... /但是,难道我们不应该…?1.6.1 Pass by Value or by Reference /按值传递还是按引用传递? 1.6.2 Why Not inline 为什么不用inline呢?1.6.3 Why Not constexpr 为什么不用constexpr呢?1.7 Summary/小结2 Class Template 第 2章 类模板 2.1 Implementation of Class Template Stack/类模板Stack的实现2.1.1 Declaration of Class Templates/类模板声明2.1.2 Implementation of Member Functions/成员函数的实现2.2 Use of Class Template Stack/类模板Stack的使用2.3 Partial Usage of Class Templates/类模板的局部使用2.3.1 Concepts/概念2.4 Friends/友元2.5 Speizations of Class Templates/类模板特化2.6 Partial Speization/偏特化2.7 Default Class Template Arguments/缺省类模板参数2.8 Type Aliases/类型别名2.9 Class Template Argument Deduction/类模板参数推导 2.10 Templatized Aggregates/模板聚合2.11 Summary/小结3 Nontype Template Parameters 第3章 非类型模板参数 3.1 Nontype Class Template Parameters/非类型类模板参数3.2 Nontype Function Template Parameters/非类型函数模板参数3.3 Restrictions for Nontype Template Parameters/非类型模板参数的3.4 Template Parameter Type auto/模板参数类型auto3.5 Summary/小结 4 Variadic Templates第4章 可变参数模板 4.1 Variadic Templates/可变参数模板4.1.1 Variadic Templates by Example/可变参数模板实例4.1.2 Overloading Variadic and Nonvariadic Templates/重载可变参数和非可变参数模板4.1.3 Operator sizeof/运算符sizeof4.2 Fold Expressions/折叠表达式4.3 Application of Variadic Templates /可变参数模板的应用4.4 Variadic Class Templates and Variadic Expressions/可变参数类模板和可变参数表达式4.4.1 Variadic Expressions/可变参数表达式 4.4.2 Variadic Indices/可变参数指数 4.4.3 Variadic Class Templates/可变参数类模板 4.4.4 Variadic Deduction Guides/可变参数推导指南4.4.5 Variadic Base Classes and using/可变参数基类和using4.5 Summary/小结5 Tricky Basics 第5章 基础技术 5.1 Keyword typename/关键字typename5.2 Zero Initialization/零初始化5.3 Using this->/ this->的使用5.4 Templates for Raw Arrays and String Literals/原始数组和字符串字面量模板 5.5 Member Templates/成员模板5.5.1 The .template Construct/构造.template5.5.2 Generic Lambdas and Member Templates/泛型Lambda与成员模板5.6 Variable Templates/变量模板 5.7 Template Template Parameters/模板的模板参数5.8 Summary/小结6 Move Semantics and enable_if<> 第6章 移动语义与enable_if<> 6.1 Perfect Forwarding/完美转发6.2 Spe Member Function Templates/特殊的成员函数模板6.3 Disable Templates with enable_if<>/使用enable_if <>禁用模板6.4 Using enable_if<>/使用enable_if<>6.5 Using Concepts to Simplify enable_if<> Expressions/ 使用概念简化enable_if<>表达式6.6 Summary/小结7 By Value or by Reference 第7章 按值传递还是按引用传递? 7.1 Passing by Value/按值传递7.2 Passing by Reference/按引用传递7.2.1 Passing by Constant Reference/按常量引用调传递7.2.2 Passing by Nonconstant Reference/按很好量引用传递7.2.3 Passing by Forwarding Reference/按转发传递7.3 Using std::ref()andstd::cref()/std::ref() 和std::cref()的使用7.4 Dealing with String Literals and Raw Arrays/ 处理字符串字面量常量与原始数组 7.4.1 Spe Implementations for String Literals and Raw Arrays/ 字符串字面量常量和原始数组的特殊实现7.5 Dealing with Return Values/处理返回值7.6 Recommended Template Parameter Declarations/模板参数声明推荐7.7 Summary/小结8 Compile-Time Programming 第8章 编译时编程 8.1 Template Meta programming/模板元编程8.2 Computing with constexpr/使用constexpr计算8.3 Execution Path Selection with Partial Speization/局部特化的执行路径选择8.4 SFINAE(Substitution Failure Is Not An Error)/ SFINAE(替换失败并不是一种错误)8.4.1 Expression SFINAE with decltype/ 带有decltype 的SFINAE表达式8.5 Compile-Time if/编译时if8.6 Summary/小结 9 Using Templates in Practice 第9章 在实战中使用模板 9.1 The Inclusion Model/包含模型9.1.1 Linker Errors/链接器错误9.1.2 Templates in Header Files/头文件中的模板9.2 Templates and inline/模板和内联9.3 Precompiled Headers/预编译头文件9.4 Decoding the Error Novel/破译大篇幅错误信息9.5 Afternotes/本章后记9.6 Summary/小结 10 Basic Template Terminology 第 10章 基本模板术语 10.1“Class Template” or “Template Class” / “类模板”还是“模板类”10.2 Substitution , Instantiation , and Speization/替换、实例化和特化10.3 Declarations versus Definitions/声明和定义10.3.1 Complete versus Incomplete Types/接近和不接近类型10.4 The One-Definition Rule/一处定义规则10.5 Template Arguments versus Template Parameters/模板实数和模板形参10.6 Summary/小结11 Generic Libraries 第 11章 泛型库 11.1 Callables/ Callable11.1.1 Supporting Function Objects/支持函数对象 11.1.2 Dealing with Member Functions and Additional Arguments/处理成员函数和附加实参11 .1.3 Wrapping Function Calls/包装函数调用11.2 Other Utilities to Implement Generic Libraries/实现泛型库的其他实用程序11.2.1 Type Traits/ Type Traits11.2.2 std::addressof()/std::addressof()11.2.3 std::declval()/std::declval()11.3 Perfect Forwarding Temporaries/完美转发临时对象11.4 References as Template Parameters/引用为模板参数11.5 Defer Evaluations/延迟评估11.6 Things to Consider When Writing Generic Libraries/编写泛型库时需要考虑的事情11.7 Summary/小结PartII: Templates in Depth 第二部分 深入模板 12 Fundamentals in Depth深入模板基础 12.1 Parameterized Declarations/参数化宣告12.1.1 Virtual Member Functions/虚成员函数12.1.2 Linkage of Templates/模板链接12.1.3 Primary Templates/主模板 12.2 Template Parameters/模板形参12.2.1 Type Parameters/类型形参12.2.2 Nontype Parameters/非类型形参12.2.3 Template Template Parameters/模板的模板形参12.2.4 Template Parameter Packs/模板参数包12.2.5 Default Template Arguments/缺省模板实参12.3 Template Arguments/模板实参12.3.1 Function Template Arguments/函数模板实参12.3.2 Type Arguments/类型实参12.3.3 Nontype Arguments/非类型实参12.3.4 Template Template Arguments/模板的模板实参12.3.5 Equivalence/实参的等价性12.4 Variadic Templates/可变参数模板12.4.1 Pack Expansions/包扩展12.4.2 Where Can Pack Expansions Occur /在哪里进行包扩展?12.4.3 Function Parameter Packs/函数的参数包12.4.4 Multiple and Nested Pack Expansions/多重和嵌套包扩展12.4.5 Zero-Length Pack Expansions/零长度包扩展12.4.6 Fold Expressions/折叠表达式12.5 Friends/友元12.5.1 Friend Classes of Class Templates/类模板的友元类12.5.2 Friend Functions of Class Templates /类模板的友元函数 12.5.3 Friend Templates/友元模板12.6 Afternotes/本章后记13 Names in Templates 第 13章 模板中的名称 13.1 Name Taxonomy/名称的分类13.2 Looking Up Names/名称的查找13.2.1 Argument-Dependent Lookup/参数依赖查找 (ADL)13.2.2 Argument-Dependent Lookup of Friend Declarations/友元声明的ADL13.2.3 Injected Class Names/注入式类名称 13.2.4 Current Instantiations/当前实例化13.3 Parsing Templates/解析模板13.3.1 Context Sensitivity in Nontemplates/非模板的上下文敏感性 13.3.2 Dependent Names of Types/类型的依赖名称 13.3.3 Dependent Names of Templates/模板的依赖
以下为对购买帮助不大的评价