File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff 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也支持初始化语句。
You can’t perform that action at this time.
0 commit comments