Skip to content

Commit 439c79c

Browse files
committed
Add note of chapter 18
1 parent 8835929 commit 439c79c

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

_posts/2024-10-01-现代C++语言核心特性解析.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ date: 2024-10-01
3232
- [扩展的聚合类型(C++17 C++20)](#扩展的聚合类型c17-c20)
3333
- [override和final说明符(C++11)](#override和final说明符c11)
3434
- [基于范围的for循环(C++11 C++17 C++20)](#基于范围的for循环c11-c17-c20)
35+
- [支持初始化语句的if和switch(C++17)](#支持初始化语句的if和switchc17)
3536

3637
## 新基础类型(C++11~C++20)
3738

@@ -348,3 +349,7 @@ C++20标准增加了对初始化语句的支持。`for (T thing = foo(); auto &
348349
- begin和end函数需要返回一组类似迭代器的对象,并且这组对象必须支持operator *、operator !=和operator ++运算符函数。operator ++应该是一个前缀版本,它需要通过声明一个不带形参的operator ++运算符函数来完成。
349350

350351
可以实现独立版本的begin和end函数来在不修改第三方代码的情况下支持基于范围的for循环。
352+
353+
## 支持初始化语句的if和switch(C++17)
354+
355+
C++17 允许在执行调节语句之前先执行一个初始化语句:`if (init; condition) {}`,变量拥有和整个if结构一样长的生命周期。else if 之中也支持初始化语句。可以利用这种方式对整个if结构加锁。switch也支持初始化语句。

0 commit comments

Comments
 (0)