编辑推荐

C++领域经典图书时隔15年之后的全新升级
针对C++11、C++14和C++17标准进行了全面更新
C++软件工程师完全参考指南
C++模板知识的解释
C++标准参考读物
primer之后的模板技术研究**
使用C++模板的常用设计技巧
应用例证

内容简介

C++ Templates 第2版 英文版》是同名经典畅销图书的全新升级版本,针对C++11、C++14、C++17标准进行了全面更新,并对所有的新语言特性(包括可变参数模板、通用lambda、类模板参数推导等)进行了解释。
C++ Templates 第2版 英文版》共28章。首先全面介绍了《C++ Templates 第2版 英文版》的内容结构和相关情况。第1部分(第1~11章)介绍了模板的基本概念,第2部分(第12~17章)深入阐述了模板的细节,第3部分(第18~28章)介绍了C++模板所支持的基本设计技术。附录A、附录B、附录C、附录D和附录E分别为一处定义原则、值类别、重载解析、标准类型实用程序和概念的相关资料。
C++ Templates 第2版 英文版》适合对C++模板技术感兴趣的有一定经验的程序员阅读。

作者简介

DavidVandevoorde,EdisonDesignGroup公司的工程副总裁,为公司的C++编译器中的一些关键特性进行了架构设计。他是知名的comp.lang.c++.moderat论坛的联合创始人,同时还积极投身于C++的标准化工作。他拥有伦斯勒理工学院计算机科学博士、硕士学位,以及布鲁塞尔自由大学的工程硕士学位。
NicolaiM.Josuttis,他是一位独立的系统架构师、技术经理、顾问以及培训师,过去20年以来他一直致力于C++的标准化工作。他还是TheC++StandardLibrary:ATutorialandReference(2ndEdition)等书的作者。
DouglasGregor,是一位知名的编译器人员,具有C++库的设计背景。作为Boost的早期贡献者,他开发的一些库被列入了C++标准。在对C++11提供支持的期间,他领导了开源的C++编译器Clang的实现。他拥有伦斯勒理工学院的计算机科学博士学位。

目录

第1部分:基本概念

1FunctionTemplates第1章函数模板

1.1AFirstLookatFunctionTemplates/初识函数模板
1.1.1DefiningtheTemplate/定义模板
1.1.2UsingtheTemplate/使用模板
1.1.3Two-PhaseTranslation/二阶段翻译
1.2TemplateArgumentDeduction/模板参数推导
1.3MultipleTemplateParameters/多模板参数
1.3.1TemplateParametersforReturnTypes/返回类型的模板参数
1.3.2DeducingtheReturnType/推导返回类型
1.3.3ReturnTypeasCommonType/作为通用类型返回
1.4DefaultTemplateArguments/缺省模板参数
1.5OverloadingFunctionTemplates/重载函数模板
1.6But,Shouldn’tWe.../但是,难道我们不应该…?
1.6.1PassbyValueorbyReference/按值传递还是按引用传递?
1.6.2WhyNotinline为什么不用inline呢?
1.6.3WhyNotconstexpr为什么不用constexpr呢?
1.7Summary/小结

2ClassTemplate第2章类模板

2.1ImplementationofClassTemplateStack/类模板Stack的实现
2.1.1DeclarationofClassTemplates/类模板声明
2.1.2ImplementationofMemberFunctions/成员函数的实现
2.2UseofClassTemplateStack/类模板Stack的使用
2.3PartialUsageofClassTemplates/类模板的局部使用
2.3.1Concepts/概念
2.4Friends/友元
2.5SpecializationsofClassTemplates/类模板特化
2.6PartialSpecialization/偏特化
2.7DefaultClassTemplateArguments/缺省类模板参数
2.8TypeAliases/类型别名
2.9ClassTemplateArgumentDeduction/类模板参数推导
2.10TemplatizedAggregates/模板聚合
2.11Summary/小结

3NontypeTemplateParameters第3章非类型模板参数

3.1NontypeClassTemplateParameters/非类型类模板参数
3.2NontypeFunctionTemplateParameters/非类型函数模板参数
3.3RestrictionsforNontypeTemplateParameters/非类型模板参数的限制
3.4TemplateParameterTypeauto/模板参数类型auto
3.5Summary/小结

4VariadicTemplates第4章可变参数模板

4.1VariadicTemplates/可变参数模板
4.1.1VariadicTemplatesbyExample/可变参数模板实例
4.1.2OverloadingVariadicandNonvariadicTemplates/重载可变参数和非可变参数模板
4.1.3Operatorsizeof/运算符sizeof
4.2FoldExpressions/折叠表达式
4.3ApplicationofVariadicTemplates/可变参数模板的应用
4.4VariadicClassTemplatesandVariadicExpressions/可变参数类模板和可变参数表达式
4.4.1VariadicExpressions/可变参数表达式
4.4.2VariadicIndices/可变参数指数
4.4.3VariadicClassTemplates/可变参数类模板
4.4.4VariadicDeductionGuides/可变参数推导指南
4.4.5VariadicBaseClassesandusing/可变参数基类和using
4.5Summary/小结
5TrickyBasics第5章基础技术

5.1Keywordtypename/关键字typename
5.2ZeroInitialization/零初始化
5.3Usingthis->/this->的使用
5.4TemplatesforRawArraysandStringLiterals/原始数组和字符串字面量模板
5.5MemberTemplates/成员模板
5.5.1The.templateConstruct/构造.template
5.5.2GenericLambdasandMemberTemplates/泛型Lambda与成员模板
5.6VariableTemplates/变量模板
5.7TemplateTemplateParameters/模板的模板参数
5.8Summary/小结

6MoveSemanticsandenable_if第6章移动语义与enable_if

6.1PerfectForwarding/完美转发
6.2SpecialMemberFunctionTemplates/特殊的成员函数模板
6.3DisableTemplateswithenable_if/使用enable_if禁用模板
6.4Usingenable_if/使用enable_if
6.5UsingConceptstoSimplifyenable_ifExpressions/使用概念简化enable_if表达式
6.6Summary/小结

7ByValueorbyReference第7章按值传递还是按引用传递?

7.1PassingbyValue/按值传递
7.2PassingbyReference/按引用传递
7.2.1PassingbyConstantReference/按常量引用调传递
7.2.2PassingbyNonconstantReference/按非常量引用传递
7.2.3PassingbyForwardingReference/按转发传递
7.3Usingstd::ref()andstd::cref()/std::ref()和std::cref()的使用
7.4DealingwithStringLiteralsandRawArrays/处理字符串字面量常量与原始数组
7.4.1SpecialImplementationsforStringLiteralsandRawArrays/字符串字面量常量和原始数组的特殊实现
7.5DealingwithReturnValues/处理返回值
7.6RecommendedTemplateParameterDeclarations/模板参数声明推荐
7.7Summary/小结

8Compile-TimeProgramming第8章编译时编程

8.1TemplateMetaprogramming/模板元编程
8.2Computingwithconstexpr/使用constexpr计算
8.3ExecutionPathSelectionwithPartialSpecialization/局部特化的执行路径选择
8.4SFINAE(SubstitutionFailureIsNotAnError)/SFINAE(替换失败并不是一种错误)
8.4.1ExpressionSFINAEwithdecltype/带有decltype的SFINAE表达式
8.5Compile-Timeif/编译时if
8.6Summary/小结

9UsingTemplatesinPractice第9章在实战中使用模板

9.1TheInclusionModel/包含模型
9.1.1LinkerErrors/链接器错误
9.1.2TemplatesinHeaderFiles/头文件中的模板
9.2Templatesandinline/模板和内联
9.3PrecompiledHeaders/预编译头文件
9.4DecodingtheErrorNovel/破译大篇幅错误信息
9.5Afternotes/本章后记
9.6Summary/小结

10BasicTemplateTerminology第10章基本模板术语

10.1“ClassTemplate”or“TemplateClass”/“类模板”还是“模板类”
10.2Substitution,Instantiation,andSpecialization/替换、实例化和特化
10.3DeclarationsversusDefinitions/声明和定义
10.3.1CompleteversusIncompleteTypes/完全和不完全类型
10.4TheOne-DefinitionRule/一处定义规则
10.5TemplateArgumentsversusTemplateParameters/模板实数和模板形参
10.6Summary/小结

11GenericLibraries第11章泛型库

11.1Callables/Callable
11.1.1SupportingFunctionObjects/支持函数对象
11.1.2DealingwithMemberFunctionsandAdditionalArguments/处理成员函数和附加实参
11.1.3WrappingFunctionCalls/包装函数调用
11.2OtherUtilitiestoImplementGenericLibraries/实现泛型库的其他实用程序
11.2.1TypeTraits/TypeTraits
11.2.2std::addressof()/std::addressof()
11.2.3std::declval()/std::declval()
11.3PerfectForwardingTemporaries/完美转发临时对象
11.4ReferencesasTemplateParameters/引用为模板参数
11.5DeferEvaluations/延迟评估
11.6ThingstoConsiderWhenWritingGenericLibraries/编写泛型库时需要考虑的事情
11.7Summary/小结

PartII:TemplatesinDepth第二部分深入模板

12FundamentalsinDepth深入模板基础

12.1ParameterizedDeclarations/参数化宣告
12.1.1VirtualMemberFunctions/虚成员函数
12.1.2LinkageofTemplates/模板链接
12.1.3PrimaryTemplates/主模板
12.2TemplateParameters/模板形参
12.2.1TypeParameters/类型形参
12.2.2NontypeParameters/非类型形参
12.2.3TemplateTemplateParameters/模板的模板形参
12.2.4TemplateParameterPacks/模板参数包
12.2.5DefaultTemplateArguments/缺省模板实参
12.3TemplateArguments/模板实参
12.3.1FunctionTemplateArguments/函数模板实参
12.3.2TypeArguments/类型实参
12.3.3NontypeArguments/非类型实参
12.3.4TemplateTemplateArguments/模板的模板实参
12.3.5Equivalence/实参的等价性
12.4VariadicTemplates/可变参数模板
12.4.1PackExpansions/包扩展
12.4.2WhereCanPackExpansionsOccur/在哪里进行包扩展?
12.4.3FunctionParameterPacks/函数的参数包
12.4.4MultipleandNestedPackExpansions/多重和嵌套包扩展
12.4.5Zero-LengthPackExpansions/零长度包扩展
12.4.6FoldExpressions/折叠表达式
12.5Friends/友元
12.5.1FriendClassesofClassTemplates/类模板的友元类
12.5.2FriendFunctionsofClassTemplates/类模板的友元函数
12.5.3FriendTemplates/友元模板
12.6Afternotes/本章后记

13NamesinTemplates第13章模板中的名称

13.1NameTaxonomy/名称的分类
13.2LookingUpNames/名称的查找
13.2.1Argument-DependentLookup/参数依赖查找(ADL)
13.2.2Argument-DependentLookupofFriendDeclarations/友元声明的ADL
13.2.3InjectedClassNames/注入式类名称
13.2.4CurrentInstantiations/当前实例化
13.3ParsingTemplates/解析模板
13.3.1ContextSensitivityinNontemplates/非模板的上下文敏感性
13.3.2DependentNamesofTypes/类型的依赖名称
13.3.3DependentNamesofTemplates/模板的依赖名称
13.3.4DependentNamesinUsingDeclarations/使用声明中的依赖名称
13.3.5ADLandExplicitTemplateArguments/ADL和显式模板实参
13.3.6DependentExpressions/依赖表达式
13.3.7CompilerErrors/编译器错误
13.4InheritanceandClassTemplates/继承和类模板
13.4.1NondependentBaseClasses/非依赖型基类
13.4.2DependentBaseClasses/依赖型基类
13.5Afternotes/本章后记

14Instantiation第14章实例化

14.1On-DemandInstantiation/按需实例化
14.2LazyInstantiation/延迟实例化
14.2.1PartialandFullInstantiation/部分和全部实例化
14.2.2InstantiatedComponents/实例化组件
14.3TheC++InstantiationModel/C++实例化模型
14.3.1Two-PhaseLookup/二阶段查找
14.3.2PointsofInstantiation/实例化点
14.3.3TheInclusionModel/包含模型
14.4ImplementationSchemes/实现方案
14.4.1GreedyInstantiation/贪婪实例化
14.4.2QueriedInstantiation/询问实例化
14.4.3IteratedInstantiation/迭代实例化
14.5ExplicitInstantiation/显式实例化
14.5.1ManualInstantiation/手动实例化
14.5.2ExplicitInstantiationDeclarations/显式实例化声明
14.6Compile-TimeifStatements/编译时if语句
14.7IntheStandardLibrary/标准库
14.8Afternotes/本章后记

15TemplateArgumentDeduction第15章模板实参推导

15.1TheDeductionProcess/推导过程
15.2DeducedContexts/推导上下文
15.3SpecialDeductionSituations/特殊的推导情况
15.4InitializerLists/初始化列表
15.5ParameterPacks/形参包
15.5.1LiteralOperatorTemplates/字面运算符模板
15.6RvalueReferences/右值引用
15.6.1ReferenceCollapsingRules/引用折叠原则
15.6.2ForwardingReferences/转发引用
15.6.3PerfectForwarding/完美转发
15.6.4DeductionSurprises/推导的惊喜
15.7SFINAE(SubstitutionFailureIsNotAnError)/替换失败并不是错误
15.7.1ImmediateContext/即时上下文
15.8LimitationsofDeduction/推导的限制
15.8.1AllowableArgumentConversions/可接受的实参转换
15.8.2ClassTemplateArguments/类模板实参
15.8.3DefaultCallArguments/缺省调用实参
15.8.4ExceptionSpecifications/异常规范
15.9ExplicitFunctionTemplateArguments/显式函数模板实参
15.10DeductionfromInitializersandExpressions/从初始化和表达式中推导
15.10.1TheautoTypeSpecifier/auto类型说明符
15.10.2ExpressingtheTypeofanExpressionwithdecltype/用decltype表示表达式的类型
15.10.3decltype(auto)/decltype(auto)
15.10.4SpecialSituationsforautoDeduction/auto推导的特殊情况
15.10.5StructuredBindings/结构化绑定
15.10.6GenericLambdas/泛型Lambda表达式
15.11AliasTemplates/别名模板
15.12ClassTemplateArgumentDeduction/类模板实参推导
15.12.1DeductionGuides/推导指南
15.12.2ImplicitDeductionGuides/隐式推导指南
15.12.3OtherSubtleties/其他细节
15.13Afternotes/本章后记

16SpecializationandOverloading特化和重载

16.1When“GenericCode”Doesn’tQuiteCutIt/当“泛型代码”并不能很好地解决问题时
16.1.1TransparentCustomization/透明自定义
16.1.2SemanticTransparency/语义透明度
16.2OverloadingFunctionTemplates/重载函数模板
16.2.1Signatures/签名
16.2.2PartialOrderingofOverloadedFunctionTemplates/重载函数模板的偏序
16.2.3FormalOrderingRules/正式的排序规则
16.2.4TemplatesandNontemplates/模板和非模板
16.2.5VariadicFunctionTemplates/可变参数函数模板
16.3ExplicitSpecialization/显式特化
16.3.1FullClassTemplateSpecialization/全局类模板特化
16.3.2FullFunctionTemplateSpecialization/全局函数模板特化
16.3.3FullVariableTemplateSpecialization/全局可变模板特化
16.3.4FullMemberSpecialization/全局成员特化..
16.4PartialClassTemplateSpecialization/局部类模板特化
16.5PartialVariableTemplateSpecialization/局部可变模板特化
16.6Afternotes/本章后记

17FutureDirections第17章未来发展方向

17.1RelaxedtypenameRules/宽松的typename原则
17.2GeneralizedNontypeTemplateParameters/广义非类型模板参数
17.3PartialSpecializationofFunctionTemplates/函数模板的局部特化
17.4NamedTemplateArguments/命名模板实参
17.5OverloadedClassTemplates/重载类模板
17.6DeductionforNonfinalPackExpansions/中间包扩展的推导
17.7Regularizationofvoid/void的规范化
17.8TypeCheckingforTemplates/模板的类型检查
17.9ReflectiveMetaprogramming/反射元编程
17.10PackFacilities/包管理工具
17.11Modules/模块

PartIII:TemplatesandDesign第3部分模板和设计

18ThePolymorphicPowerofTemplates第18章模板的多态性

18.1DynamicPolymorphism/动态多态性
18.2StaticPolymorphism/静态多态性
18.3DynamicversusStaticPolymorphism/动态多态性与静态多态性
18.4UsingConcepts/概念
18.5NewFormsofDesignPatterns/设计模式的新形式
18.6GenericProgramming/泛型编程
18.7Afternotes/本章后记

19ImplementingTraits第19章Trait的实现
19.1AnExample:AccumulatingaSequence/一个实例:累加一个序列
19.1.1FixedTraits/FixedTrait
19.1.2ValueTraits/ValueTrait
19.1.3ParameterizedTraits/参数化Trait
19.2TraitsversusPoliciesandPolicyClasses/Traits、Policy和Policy类
19.2.1TraitsandPolicies:What’stheDifference/Traits和Policy:区别在哪里?
19.2.2MemberTemplatesversusTemplateTemplateParameters/成员模板与模板的模板参数
19.2.3CombiningMultiplePoliciesand/orTraits/组合多个policy和/或trait
19.2.4AccumulationwithGeneralIterators/用一般迭代器累积
19.3TypeFunctions/类型函数
19.3.1ElementTypes/元素类型
19.3.2TransformationTraits/TransformationTraits
19.3.3PredicateTraits/PredicateTraits
19.3.4ResultTypeTraits/ResultTypeTraits
19.4SFINAE-BasedTraits/基于SFINAE的Trait
19.4.1SFINAEOutFunctionOverloads/SFINAE功能过载
19.4.2SFINAEOutPartialSpecializations/SFINAE局部特化
19.4.3UsingGenericLambdasforSFINAE/为SFINAE使用泛型Lambda表达式
19.4.4SFINAE-FriendlyTraits/SFINAE友好的特征
19.5IsConvertibleT/IsConvertibleT
19.6DetectingMembers/检查成员
19.6.1DetectingMemberTypes/检查成员类型
19.6.2DetectingArbitraryMemberTypes/检查任意成员类型
19.6.3DetectingNontypeMembers/检查非类型成员
19.6.4UsingGenericLambdastoDetectMembers/使用泛型Lambda表达式检查成员
19.7OtherTraitsTechniques/其他Trait技术
19.7.1If-Then-Else/If-Then-Else
19.7.2DetectingNonthrowingOperations/检查不抛出异常的操作
19.7.3TraitsConvenience/Trait的便利性
19.8TypeClassification/类型分类
19.8.1DeterminingFundamentalTypes/确定基本类型
19.8.2DeterminingCompoundTypes/确定复合类型
19.8.3IdentifyingFunctionTypes/识别函数类型
19.8.4DeterminingClassTypes/确定类类型
19.8.5DeterminingEnumerationTypes/确定枚举类型
19.9PolicyTraits/PolicyTrait
19.9.1Read-OnlyParameterTypes/只读参数类型
19.10IntheStandardLibrary/在标准库中
19.11Afternotes/本章后记

20OverloadingonTypeProperties第20章类型属性上的重载

20.1AlgorithmSpecialization/算法特化
20.2TagDispatching/标签调度
20.3Enabling/DisablingFunctionTemplates/启用/禁用函数模板
20.3.1ProvidingMultipleSpecializations/提供多重特化
20.3.2WhereDoestheEnableIfGo/EnableIf在哪里运行?
20.3.3Compile-Timeif/编译时if
20.3.4Concepts/概念
20.4ClassSpecialization/类的特化
20.4.1Enabling/DisablingClassTemplates/启用/禁用类模板
20.4.2TagDispatchingforClassTemplates/类模板标签调度
20.5Instantiation-SafeTemplates/实例化安全的模板
20.6IntheStandardLibrary/在标准库中
20.7Afternotes/本章后记

21TemplatesandInheritance第21章模板和继承

21.1TheEmptyBaseClassOptimization(EBCO)/空白基类最优化
21.1.1LayoutPrinciples/布局原则
21.1.2MembersasBaseClasses/成员作为基类
21.2TheCuriouslyRecurringTemplatePattern(CRTP)/奇异递归模板模式
21.2.1TheBarton-NackmanTrick/Barton-Nackman技巧
21.2.2OperatorImplementations/操作符实现
21.2.3Facades/门面模式
21.3Mixins/Mixin
21.3.1CuriousMixins/令人好奇的Mixin
21.3.2ParameterizedVirtuality参数化的虚拟性
21.4NamedTemplateArguments/指定模板参数
21.5Afternotes/本章后记

22BridgingStaticandDynamicPolymorphism第22章桥接静态和动态多态性

22.1FunctionObjects,Pointers,andstd::function/函数对象、指针和std::function
22.2GeneralizedFunctionPointers/广义函数指针
22.3BridgeInterface/桥接口
22.4TypeErasure/类型擦除
22.5OptionalBridging/可选桥接
22.6PerformanceConsiderations/性能考虑
22.7Afternotes/本章后记

23Metaprogramming第23章元编程

23.1TheStateofModernC++Metaprogramming/现代C++元编程的状态
23.1.1ValueMetaprogramming
23.1.2TypeMetaprogramming/类型元编
23.1.3HybridMetaprogramming/混合元编程
23.1.4HybridMetaprogrammingforUnitTypes/单元类型的混合元编程
23.2TheDimensionsofReflectiveMetaprogramming/反射元编程的维数
23.3TheCostofRecursiveInstantiation/递归实例化的代价
23.3.1TrackingAllInstantiations/跟踪所有实例
23.4ComputationalCompleteness/计算完整性
23.5RecursiveInstantiationversusRecursiveTemplateArguments/递归实例化与递归模板参数
23.6EnumerationValuesversusStaticConstants/枚举值与静态常量
23.7Afternotes/本章后记

24Typelists第24章Typelist

24.1AnatomyofaTypelist/Typelist解析
24.2TypelistAlgorithms/Typelist算法
24.2.1Indexing/索引
24.2.2FindingtheBestMatch/寻找最佳匹配
24.2.3AppendingtoaTypelist/添加Typelist
24.2.4ReversingaTypelist/反转Typelist
24.2.5TransformingaTypelist/转化Typelist
24.2.6AccumulatingTypelists/累加Typelist
24.2.7InsertionSort/插入排序
24.3NontypeTypelists/非类型Typelists
24.3.1DeducibleNontypeParameters/可推导的非类型参数
24.4OptimizingAlgorithmswithPackExpansions/使用包扩展优化算法
24.5Cons-styleTypelists/Cons-styleTypelist
24.6Afternotes/本章后记

25Tuples第25章元组

25.1BasicTupleDesign/基本的元组设计
25.1.1Storage/存储
25.1.2Construction/结构
25.2BasicTupleOperations/基本的元组操作
25.2.1Comparison/比较25.2.2Output/输出
25.3TupleAlgorithms/元组算法
25.3.1TuplesasTypelists/元组作为Typelist
25.3.2AddingtoandRemovingfromaTuple/从元组中添加和移除
25.3.3ReversingaTuple/反转一个元组
25.3.4IndexLists/索引列表
25.3.5ReversalwithIndexLists/用索引列表进行反转
25.3.6ShuffleandSelect/洗牌算法和选择算法
25.4ExpandingTuples/扩展元组
25.5OptimizingTuple/优化元组
25.5.1TuplesandtheEBCO/元组和EBCO
25.5.2Constant-timeget()/常数时间的get()
25.6TupleSubscript/元组下标
25.7Afternotes/本章后记

26DiscriminatedUnions第26章可识别的联合

26.1Storage/存储
26.2Design/设计
26.3ValueQueryandExtraction/值查询与提取
26.4ElementInitialization,AssignmentandDestruction/元素初始化、赋值和销毁
26.4.1Initialization/初始化
26.4.2Destruction/销毁
26.4.3Assignment/赋值
26.5Visitors/访问
26.5.1VisitResultType/访问结果类型
26.5.2CommonResultType/常见结果类型
26.6VariantInitializationanAssignment/变量初始化赋值
26.7Afternotes/本章后记

27ExpressionTemplates第27章表达式模板

27.1TemporariesandSplitLoops/临时变量和分割循环
27.2EncodingExpressionsinTemplateArguments/在模板参数中编码表达式
27.2.1OperandsoftheExpressionTemplates/表达式模板的操作数
27.2.2TheArrayType/Array类型
27.2.3TheOperators/运算符
27.2.4Review/回顾
27.2.5ExpressionTemplatesAssignments/表达式模板赋值
27.3PerformanceandLimitationsofExpressionTemplates/表达式模板的性能与约束
27.4Afternotes/本章后记

28DebuggingTemplates第28章调试模板

28.1ShallowInstantiation/浅式实例化
28.2StaticAssertions/静态断言
28.3Archetypes/原型
28.4Tracers/跟踪程序
28.5Oracles/Oracle
28.6Afternotes/本章后记

Appendixes/附录

ATheOne-DefinitionRule附录A一处定义原则

A.1TranslationUnits/翻译单元
A.2DeclarationsandDefinitions/声明和定义
A.3TheOne-DefinitionRuleinDetail/一处定义原则的细节
A.3.1One-per-ProgramConstraints/程序的一处定义约束
A.3.2One-per-TranslationUnitConstraints/翻译单元的一处定义约束
A.3.3Cross-TranslationUnitEquivalenceConstraints/跨翻译单元的等价性约束

BValueCategories附录B值类别

B.1TraditionalLvaluesandRvalues/传统的左值和右值
B.1.1Lvalue-to-RvalueConversions/左值和右值转换
B.2ValueCategoriesSinceC++11/C++11的值类别
B.2.1TemporaryMaterialization/临时实体化
B.3CheckingValueCategorieswithdecltype/使用decltype检查值类别
B.4ReferenceTypes/引用类别

COverloadResolution附录C重载解析

C.1WhenDoesOverloadResolutionKickIn/何时应用重载解析
C.2SimplifiedOverloadResolution/简化的重载解析
C.2.1TheImpliedArgumentforMemberFunctions/成员函数的隐式参数
C.2.2RefiningthePerfectMatch/对最佳匹配进行改进
C.3OverloadingDetails/重载的细节
C.3.1PreferNontemplatesorMoreSpecializedTemplates/优先非模板还是更加专用的模板
C.3.2ConversionSequences/转义序列
C.3.3PointerConversions/指针转换
C.3.4InitializerLists/初始化列表
C.3.5FunctorsandSurrogateFunctions/仿函数和代理函数
C.3.6OtherOverloadingContexts/其他重载情况

DStandardTypeUtilities附录D标准类型实用程序

D.1UsingTypeTraits/使用TypeTraits
D.1.1std::integral_constantandstd::bool_constant/std::integral_constant和std::bool_constant
D.1.2ThingsYouShouldKnowWhenUsingTraits/使用Trait时应该知道的事
D.2PrimaryandCompositeTypeCategories/主要类型和复合类型
D.2.1TestingforthePrimaryTypeCategory/测试主要类型的类别
D.2.2TestforCompositeTypeCategories/测试复合类型的类别
D.3TypePropertiesandOperations/类型属性和操作
D.3.1OtherTypeProperties/其他类型属性
D.3.2TestforSpecificOperations/测试具体操作
D.3.3RelationshipsBetweenTypes/类型之间的关系
D.4TypeConstruction/类型结构
D.5OtherTraits/其他Trait
D.6CombiningTypeTraits/组合TypeTrait
D.7OtherUtilities/其他应用程序

EConcepts附录E概念

E.1UsingConcepts/使用概念
E.2DefiningConcepts/定义概念
E.3OverloadingonConstraints/重载约束
E.3.1ConstraintSubsumption/约束包含
E.3.2ConstraintsandTagDispatching/约束和标签调度
E.4ConceptTips/概念提示
E.4.1TestingConcepts/测试概念
E.4.2ConceptGranularity/概念粒度
E.4.3BinaryCompatibility/二进制兼容性

Bibliography文献目录

Forums/论坛

BooksandWebSites/图书和网站

Glossary术语

Index索引

其他推荐