C++ Templates(第2版)英文版.pdf

  • 1星
  • 日期: 2018-05-16
  • 大小: 60.83MB
  • 所需积分:1分
  • 下载次数:147
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: C++Templates

第 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 Specializations of Class Templates/类模板特化

2.6 Partial Specialization/偏特化

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/模板参数类型auto

3.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/运算符sizeof

4.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/可变参数基类和using

4.5 Summary/小结

5 Tricky Basics 第5章 基础技术

5.1 Keyword typename/关键字typename

5.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/构造.template

5.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 Special 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 Special 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 Specialization/局部特化的执行路径选择

8.4 SFINAE(Substitution Failure Is Not An Error)/ SFINAE(替换失败并不是一种错误)

8.4.1 Expression SFINAE with decltype/ 带有decltype 的SFINAE表达式

8.5 Compile-Time if/编译时if

8.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 Specialization/替换、实例化和特化

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/ Callable

11.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 Traits

11.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/友元声明的ADL

13.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/模板的依赖名称

13.3.4 Dependent Names in Using Declarations/使用声明中的依赖名称

13.3.5 ADL and Explicit Template Arguments/ADL和显式模板实参

13.3.6 Dependent Expressions/依赖表达式

13.3.7 Compiler Errors/编译器错误

13.4 Inheritance and Class Templates/继承和类模板

13.4.1 Nondependent Base Classes/非依赖型基类

13.4.2 Dependent Base Classes/依赖型基类

13.5 Afternotes/本章后记

14 Instantiation 第 14章 实例化

14.1 On-Demand Instantiation/ 按需实例化

14.2 Lazy Instantiation/延迟实例化

14.2.1 Partial and Full Instantiation/部分和全部实例化

14.2.2 Instantiated Components/实例化组件

14.3 The C++ Instantiation Model/C++实例化模型

14.3.1 Two-Phase Lookup/二阶段查找

14.3.2 Points of Instantiation/实例化点

14.3.3 The Inclusion Model/包含模型

14.4 Implementation Schemes/实现方案

14.4.1 Greedy Instantiation/贪婪实例化

14.4.2 Queried Instantiation/询问实例化

14.4.3 Iterated Instantiation/迭代实例化

14.5 Explicit Instantiation/显式实例化

14.5.1 Manual Instantiation/手动实例化

14.5.2 Explicit Instantiation Declarations/显式实例化声明

14.6 Compile-Time if Statements/ 编译时if语句

14.7 In the Standard Library/标准库

14.8 Afternotes/本章后记

15 Template Argument Deduction 第 15章 模板实参推导

15.1 The Deduction Process/推导过程

15.2 Deduced Contexts/推导上下文

15.3 Special Deduction Situations/特殊的推导情况

15.4 Initializer Lists/初始化列表

15.5 Parameter Packs/形参包

15.5.1 Literal Operator Templates/字面运算符模板

15.6 Rvalue References/右值引用

15.6.1 Reference Collapsing Rules/引用折叠原则

15.6.2 Forwarding References/转发引用

15.6.3 Perfect Forwarding/完美转发

15.6.4 Deduction Surprises/推导的惊喜

15.7 SFINAE(Substitution Failure Is Not An Error )/ 替换失败并不是错误

15.7.1 Immediate Context/即时上下文

15.8 Limitations of Deduction/推导的限制

15.8.1 Allowable Argument Conversions/可接受的实参转换

15.8.2 Class Template Arguments/类模板实参

15.8.3 Default Call Arguments/缺省调用实参

15.8.4 Exception Specifications/异常规范

15.9 Explicit Function Template Arguments/显式函数模板实参

15.10 Deduction from Initializers and Expressions/从初始化和表达式中推导

15.10.1 The auto Type Specifier/ auto类型说明符

15.10.2 Expressing the Type of an Expression with decltype/用 decltype表示表达式的类型

15.10.3 decltype(auto)/ decltype(auto)

15.10.4 Special Situations for auto Deduction/ auto推导的特殊情况

15.10.5 Structured Bindings/结构化绑定

15.10.6 Generic Lambdas/ 泛型Lambda表达式

15.11 Alias Templates/别名模板

15.12 Class Template Argument Deduction/类模板实参推导

15.12.1 Deduction Guides/ 推导指南

15.12.2 Implicit Deduction Guides/隐式推导指南

15.12.3 Other Subtleties/其他细节

15.13 Afternotes/本章后记

16 Specialization and Overloading 特化和重载

16.1 When“Generic Code” Doesn’t Quite Cut It/当“泛型代码”并不能很好地解决问题时

16.1.1 Transparent Customization/ 透明自定义

16.1.2 Semantic Transparency/语义透明度

16.2 Overloading Function Templates/重载函数模板

16.2.1 Signatures/签名

16.2.2 Partial Ordering of Overloaded Function Templates/重载函数模板的偏序

16.2.3 Formal Ordering Rules/正式的排序规则

16.2.4 Templates and Nontemplates/模板和非模板

16.2.5 Variadic Function Templates/可变参数函数模板

16.3 Explicit Specialization/显式特化

16.3.1 Full Class Template Specialization/全局类模板特化

16.3.2 Full Function Template Specialization/全局函数模板特化

16.3.3 Full Variable Template Specialization/全局可变模板特化

16.3.4 Full Member Specialization/全局成员特化..

16.4 Partial Class Template Specialization/局部类模板特化

16.5 Partial Variable Template Specialization/局部可变模板特化

16.6 Afternotes/本章后记

17 Future Directions 第 17章 未来发展方向

17.1 Relaxed typename Rules/宽松的typename原则

17.2 Generalized Nontype Template Parameters/广义非类型模板参数

17.3 Partial Specialization of Function Templates/函数模板的局部特化

17.4 Named Template Arguments/命名模板实参

17.5 Overloaded Class Templates/重载类模板

17.6 Deduction for Nonfinal Pack Expansions/中间包扩展的推导

17.7 Regularization of void/void的规范化

17.8 Type Checking for Templates/模板的类型检查

17.9 Reflective Meta programming/反射元编程

17.10 Pack Facilities/包管理工具

17.11 Modules/模块

PartIII: Templates and Design 第3部分 模板和设计

18 The Polymorphic Power of Templates 第 18章 模板的多态性

18.1 Dynamic Polymorphism/动态多态性

18.2 Static Polymorphism/静态多态性

18.3 Dynamic versus Static Polymorphism/动态多态性与静态多态性

18.4 Using Concepts/概念

18.5 New Forms of Design Patterns/设计模式的新形式

18.6 Generic Programming/泛型编程

18.7 Afternotes/本章后记

19 Implementing Traits 第 19章Trait的实现

19.1 An Example : Accumulating a Sequence/一个实例:累加一个序列

19.1.1 Fixed Traits/Fixed Trait

19.1.2 Value Traits/Value Trait

19.1.3 Parameterized Traits/参数化Trait

19.2 Traits versus Policies and Policy Classes/ Traits、Policy和Policy类

19.2.1 Traits and Policies : What’s the Difference / Traits和 Policy:区别在哪里?

19.2.2MemberTemplatesversusTemplate Template Parameters/成员模板与模板的模板参数

19.2.3Combining Multiple Policies and/or Traits/组合多个policy和/或trait

19.2.4 Accumulation with General Iterators/用一般迭代器累积

19.3 Type Functions/类型函数

19.3.1 Element Types/元素类型

19.3.2 Transformation Traits/ Transformation Traits

19.3.3 Predicate Traits/ Predicate Traits

19.3.4 Result Type Traits/ Result Type Traits

19.4 SFINAE-Based Traits/ 基于SFINAE的Trait

19.4.1 SFINAE Out Function Overloads/ SFINAE功能过载

19.4.2 SFINAE Out Partial Specializations/ SFINAE局部特化

19.4.3 Using Generic Lambdas for SFINAE/为SFINAE使用泛型Lambda表达式

19.4.4 SFINAE-Friendly Traits/ SFINAE友好的特征

19.5 IsConvertibleT/IsConvertibleT

19.6 Detecting Members/检查成员

19.6.1 Detecting Member Types/检查成员类型

19.6.2 Detecting Arbitrary Member Types/检查任意成员类型

19.6.3 Detecting Nontype Members/检查非类型成员

19.6.4 Using Generic Lambdas to Detect Members/使用泛型Lambda表达式检查成员

19.7 Other Traits Techniques/其他Trait技术

19.7.1 If-Then-Else/ If-Then-Else

19.7.2 Detecting Nonthrowing Operations/检查不抛出异常的操作

19.7.3 Traits Convenience/ Trait的便利性

19.8 Type Classification/类型分类

19.8.1 Determining Fundamental Types/确定基本类型

19.8.2 Determining Compound Types/确定复合类型

19.8.3 Identifying Function Types/识别函数类型

19.8.4 Determining Class Types/确定类类型

19.8.5 Determining Enumeration Types/确定枚举类型

19.9 Policy Traits/ Policy Trait

19.9.1 Read-Only Parameter Types/ 只读参数类型

19.10 In the Standard Library/在标准库中

19.11 Afternotes/本章后记

20 Overloading on Type Properties 第 20章 类型属性上的重载

20.1 Algorithm Specialization/算法特化

20.2 Tag Dispatching/标签调度

20.3 Enabling/Disabling Function Templates/启用/禁用函数模板

20.3.1 Providing Multiple Specializations/提供多重特化

20.3.2 Where Does the EnableIf Go / EnableIf在哪里运行?

20.3.3 Compile-Time if/编译时if

20.3.4 Concepts/概念

20.4 Class Specialization/类的特化

20.4.1 Enabling/Disabling Class Templates/启用/禁用类模板

20.4.2 Tag Dispatching for Class Templates/类模板标签调度

20.5 Instantiation-Safe Templates/ 实例化安全的模板

20.6 In the Standard Library/在标准库中

20.7 Afternotes/本章后记

21 Templates and Inheritance 第 21章 模板和继承

21.1 The Empty Base Class Optimization(EBCO)/ 空白基类最优化

21.1.1 Layout Principles/布局原则

21.1.2 Members as Base Classes/成员作为基类

21.2 The Curiously Recurring Template Pattern(CRTP)/ 奇异递归模板模式

21.2.1 The Barton-Nackman Trick/ Barton-Nackman技巧

21.2.2 Operator Implementations/操作符实现

21.2.3 Facades/ 门面模式

21.3 Mixins/ Mixin

21.3.1 Curious Mixins/ 令人好奇的Mixin

21.3.2 Parameterized Virtuality参数化的虚拟性

21.4 Named Template Arguments/指定模板参数

21.5 Afternotes/本章后记

22 Bridging Static and Dynamic Polymorphism 第 22章 桥接静态和动态多态性

22.1 Function Objects , Pointers , and std::function<>/函数对象、指针和std::function<>

22.2 Generalized Function Pointers/广义函数指针

22.3 Bridge Interface/桥接口

22.4 Type Erasure/类型擦除

22.5 Optional Bridging/可选桥接

22.6 Performance Considerations/性能考虑

22.7 Afternotes/本章后记

23 Meta programming 第 23章 元编程

23.1 The State of Modern C++ Meta programming/现代C++元编程的状态

23.1.1 Value Meta programming

23.1.2 Type Meta programming/类型元编

23.1.3 Hybrid Meta programming/混合元编程

23.1.4 Hybrid Meta programming for Unit Types/单元类型的混合元编程

23.2 The Dimensions of Reflective Meta programming/反射元编程的维数

23.3 The Cost of Recursive Instantiation/递归实例化的代价

23.3.1 Tracking All Instantiations/跟踪所有实例

23.4 Computational Completeness/计算完整性

23.5 Recursive Instantiation versus Recursive Template Arguments/递归实例化与递归模板参数

23.6Enumeration Values versus Static Constants/枚举值与静态常量

23.7 Afternotes/本章后记

24 Typelists 第 24章Typelist

24.1 Anatomy of a Typelist/ Typelist解析

24.2 Typelist Algorithms/ Typelist算法

24.2.1 Indexing/索引

24.2.2 Finding the Best Match/寻找最佳匹配

24.2.3 Appending to a Typelist/添加Typelist

24.2.4 Reversing a Typelist/反转Typelist

24.2.5 Transforming a Typelist/转化Typelist

24.2.6 Accumulating Typelists/累加Typelist

24.2.7 Insertion Sort/插入排序

24.3 Nontype Typelists/非类型Typelists

24.3.1 Deducible Nontype Parameters/可推导的非类型参数

24.4 Optimizing Algorithms with Pack Expansions/使用包扩展优化算法

24.5 Cons-style Typelists/ Cons-style Typelist

24.6 Afternotes/本章后记

25 Tuples 第 25章 元组

25.1 Basic Tuple Design/基本的元组设计

25.1.1 Storage/存储

25.1.2 Construction/结构

25.2 Basic Tuple Operations/基本的元组操作

25.2.1 Comparison/比较25.2.2 Output/输出

25.3 Tuple Algorithms/元组算法

25.3.1 Tuples as Typelists/元组作为Typelist

25.3.2 Adding to and Removing from a Tuple/从元组中添加和移除

25.3.3 Reversing a Tuple/反转一个元组

25.3.4 Index Lists/索引列表

25.3.5 Reversal with Index Lists/用索引列表进行反转

25.3.6 Shuffle and Select/洗牌算法和选择算法

25.4 Expanding Tuples/扩展元组

25.5 Optimizing Tuple/优化元组

25.5.1 Tuples and the EBCO/元组和EBCO

25.5.2 Constant-time get()/常数时间的get()

25.6 Tuple Subscript/元组下标

25.7 Afternotes/本章后记

26 Discriminated Unions 第 26章 可识别的联合

26.1 Storage/存储

26.2 Design/设计

26.3 Value Query and Extraction/值查询与提取

26.4 Element Initialization, Assignment and Destruction/元素初始化、赋值和销毁

26.4.1 Initialization/初始化

26.4.2 Destruction/销毁

26.4.3 Assignment/赋值

26.5 Visitors/访问

26.5.1 Visit Result Type/访问结果类型

26.5.2 Common Result Type/常见结果类型

26.6 Variant Initialization an Assignment/变量初始化赋值

26.7 Afternotes/本章后记

27 Expression Templates 第 27章 表达式模板

27.1 Temporaries and Split Loops/临时变量和分割循环

27.2 Encoding Expressions in Template Arguments/在模板参数中编码表达式

27.2.1 Operands of the Expression Templates/表达式模板的操作数

27.2.2 The Array Type/ Array类型

27.2.3 The Operators/运算符

27.2.4 Review/回顾

27.2.5 Expression Templates Assignments/表达式模板赋值

27.3 Performance and Limitations of Expression Templates/表达式模板的性能与约束

27.4 Afternotes/本章后记

28 Debugging Templates 第 28章 调试模板

28.1 Shallow Instantiation/浅式实例化

28.2 Static Assertions/静态断言

28.3 Archetypes/原型

28.4 Tracers/跟踪程序

28.5 Oracles/ Oracle

28.6 Afternotes/本章后记


A The One-Definition Rule 附录A 一处定义原则

A.1 Translation Units/翻译单元

A.2 Declarations and Definitions/声明和定义

A.3 The One-Definition Rule in Detail/一处定义原则的细节

A.3.1 One-per-Program Constraints/程序的一处定义约束

A.3.2 One-per-Translation Unit Constraints/翻译单元的一处定义约束

A.3.3 Cross-Translation Unit Equivalence Constraints/跨翻译单元的等价性约束

B Value Categories 附录B 值类别

B.1 Traditional Lvalues and Rvalues/传统的左值和右值

B.1.1 Lvalue-to-Rvalue Conversions/左值和右值转换

B.2 Value Categories Since C++11/ C++11的值类别

B.2.1 Temporary Materialization/临时实体化

B.3 Checking Value Categories with decltype/使用decltype检查值类别

B.4 Reference Types/引用类别

C Overload Resolution 附录C 重载解析

C.1 When Does Overload Resolution Kick In / 何时应用重载解析

C.2 Simplified Overload Resolution/简化的重载解析

C.2.1 The Implied Argument for Member Functions/成员函数的隐式参数

C.2.2 Refining the Perfect Match/对最佳匹配进行改进

C.3 Overloading Details/重载的细节

C.3.1 Prefer Nontemplates or More Specialized Templates/优先非模板还是更加专用的模板

C.3.2 Conversion Sequences/转义序列

C.3.3 Pointer Conversions/指针转换

C.3.4 Initializer Lists/初始化列表

C.3.5 Functors and Surrogate Functions/仿函数和代理函数

C.3.6 Other Overloading Contexts/其他重载情况

D Standard Type Utilities 附录D 标准类型实用程序

D.1 Using Type Traits/使用Type Traits

D.1.1 std::integral_constant and std::bool_constant/ std::integral_constant和std::bool_constant

D.1.2 Things You Should Know When Using Traits/使用Trait时应该知道的事

D.2 Primary and Composite Type Categories/主要类型和复合类型

D.2.1 Testing for the Primary Type Category/测试主要类型的类别

D.2.2 Test for Composite Type Categories/测试复合类型的类别

D.3 Type Properties and Operations/类型属性和操作

D.3.1 Other Type Properties/其他类型属性

D.3.2 Test for Specific Operations/测试具体操作

D.3.3 Relationships Between Types/类型之间的关系

D.4 Type Construction/类型结构

D.5 Other Traits/其他Trait

D.6 Combining Type Traits/组合Type Trait

D.7 Other Utilities/其他应用程序

E Concepts 附录E 概念

E.1 Using Concepts/使用概念

E.2 Defining Concepts/定义概念

E.3 Overloading on Constraints/重载约束

E.3.1 Constraint Subsumption/约束包含

E.3.2 Constraints and Tag Dispatching/约束和标签调度

E.4 Concept Tips/概念提示

E.4.1 Testing Concepts/测试概念

E.4.2 Concept Granularity/概念粒度

E.4.3 Binary Compatibility/二进制兼容性

Bibliography 文献目录


Books and WebSites/图书和网站

Glossary 术语

Index 索引


C Templates The Complete Guide Second Edition David Vandevoorde Nicolai M Josuttis Douglas Gregor Boston Columbus Indianapolis New York San Francisco Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City So Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks Where those designations appear in this book and the publisher wa......

C++ Templates The Complete Guide Second Edition David Vandevoorde Nicolai M. Josuttis Douglas Gregor Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sydney • Hong Kong • Seoul • Singapore • Taipei • Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at corpsales@pearsoned.com or (800) 382-3419. For government sales inquiries, please contact governmentsales@pearsoned.com. For questions about sales outside the U.S., please contact intlcs@pearson.com. Visit us on the Web: informit.com/aw Library of Congress Catalog Number: 2017946531 Copyright © 2018 Pearson Education, Inc. This book was typeset by Nicolai M. Josuttis using the LATEX document processing system. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights & Permissions Department, please visit www.pearsoned.com/permissions/. ISBN-13: 978-0-321-71412-1 ISBN-10: 0-321-71412-1 1 17 To Alessandra & Cassandra —David To those who care for people and mankind —Nico To Amy, Tessa & Molly —Doug Contents Preface Acknowledgments for the Second Edition Acknowledgments for the First Edition About This Book What You Should Know Before Reading This Book Overall Structure of the Book How to Read This Book Some Remarks About Programming Style The C++11, C++14, and C++17 Standards Example Code and Additional Information Feedback Part I: The Basics 1 Function Templates 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 Common Type 1.4 Default Template Arguments 1.5 Overloading Function Templates


4G与5G 无线技术细节对比
一、帧结构比较 1.4G和5G相同之处 帧和子帧长度均为:10ms和1ms。 最小调度单位资源:RB   2.4G和5G不同之处 1);子载波宽度 4G:固定为15kHz。 5G:多种选择,15kHz、30kHz、60kHz、120kHz、240kHz,且一个5G帧中可
蓝先生 RF/无线
造物工场PCB PCB设计
Jacktang RF/无线
之前看到帖子有提到SensorTile.Box里面的TF卡,我也拿出来看了,是闪迪8G的卡。 TF卡里面有一个名为“defaultApp.json”的文件,我们暂且用python尝试解析一下: import json with open("defaultApp.json","r") as f:   data=json.load(f)   print(type(data
tobot ST MEMS传感器创意设计大赛专区
分享BQ34110 cycle count 错误更新的疑问
本帖最后由 qwqwqw2088 于 2020-5-12 08:01 编辑 在进行一个电池的循环测试,使用的gas gauge是BQ34110。测试步骤为 充电-relax-放电-relax 。。。。。以此往复多个周期,使用battery management studio进行数据记录。 现在碰到一个问题是关于周期计数的。 Dataflash中设置的CC threshold为50%的电量,但
qwqwqw2088 【模拟与混合信号】
【 ST NUCLEO-H743ZI测评】+ 2、LED流水灯
    通过前面的学习,对环境搭建有了了解,通过例程的学习来创建自己的项目文件。我这里通过点亮LED流水灯来熟悉GPIO的输出设置。       一、开发板硬件电路图     有关LED灯部分电路图      1.1、LED2和LED3电路图       1.2、LED1电路图部分     二、程序部分       创建自己的工程
TL-LED 【stm32/stm8】


2020-02-05 00:56:07回复
2020-01-31 16:14:34回复
2020-01-14 10:04:12回复
2020-01-12 12:36:39回复
2020-01-07 13:35:17回复
2019-12-20 09:03:00回复
踏破铁鞋无觅处,得来还需eeworld. 好书,感谢分享。
2019-12-01 22:48:29回复
谢谢楼主, 非常感谢
2019-10-28 19:15:42回复
2019-09-25 10:59:25回复
谢谢楼主了 终于找到了 新版的
2019-08-12 18:53:20回复




datasheet推荐 换一换

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })