目录
2.2New Keywords&New identifiers(新关键字与新标识符)
3.4.5concepts的使用使得编译器能帮助我们检查并给出清晰的错误信息
4.1.1[=,this] as Lambda Capture
4.1.2templated lambda expression
4.1.3Pack Expansion in Lambda Captures
4.2.1constexpr virtual functions
4.2.2union,try/catch,dynamic_cast,typeid
4.3.2Joining & Cancellable Threads
4.3.3The C++20 Synchronization Library
5.3Range-based For Loop Initializer
5.4Non-Type Template Parameters
5.9<version>
5.10Immediate Functions-consteval
5.12Class Enums and using Directive
0.引入
0.1链接与背景介绍
本次演讲人是此书的作者Marc Gregoire
0.1本文中的一些词语
1.演讲人背景
2.Agenda(议程)
2.1OverRall(总体概况)
2.2New Keywords&New identifiers(新关键字与新标识符)
3.四大概念主题讲解
3.1Module(模块)
3.1.1总体介绍
3.1.2模块的使用的简单例子
3.1.3标准库头文件与客户自定义头文件的导入方法
3.2Ranges
3.2.1什么是Ranges&为什么我们要选择Ranges
3.2.2一些相关概念
3.2.3用法
3.3Coroutines
3.3.1什么是Coroutines(什么是协程)
3.3.2Coroutines可以用来做什么呢?
3.3.3目前对协程的支持情况
3.3.4VC下面的一个简单示例
3.4Concepts
3.4.1Concepts的作用
3.4.2简单使用
3.4.3更强大的使用
3.4.4相关概念
3.4.5concepts的使用使得编译器能帮助我们检查并给出清晰的错误信息
4.重要变化
4.1Lambda Expression Changes
4.1.1[=,this] as Lambda Capture
4.1.2templated lambda expression
4.1.3Pack Expansion in Lambda Captures
4.2constexpr changes
4.2.1constexpr virtual functions
4.2.2union,try/catch,dynamic_cast,typeid
4.2.3allocations
4.2.4constexpr string&vector
4.3concurrency changes
4.3.1Atomic Smart Pointers
4.3.2Joining & Cancellable Threads
4.3.3The C++20 Synchronization Library
5.其他小变化
5.1Designated Initializers
5.2 Spaceship Operator<=>
5.2.1简单的应用
5.2.2C++17到C++20的变迁
\
5.2.3<=>在标准库中的应用
5.3Range-based For Loop Initializer
5.3.1C++17中的基于范围的for循环初始化
5.3.2C++20中的基于范围的for循环初始化
5.4Non-Type Template Parameters
5.5[[likely]][[unlikely]]
5.6Calendars&TimeZones
5.7std::span
5.8Feature Test Macros
5.9<version>
5.10Immediate Functions-consteval
5.11constinit
5.12Class Enums and using Directive
5.13Text Formatting
5.14 Math Constants
5.15std::source_location
5.16[[nodiscard(reason)]]
5.17Bit Operations
5.18Small STL Additionas
6.总结
好好学吧~~