栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++17 折叠表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++17 折叠表达式

转载:

C++17之『折叠表达式』_buknow的博客-CSDN博客

重点:

查看代码编译过程的网站:C++ Insights (cppinsights.io)

1.使用折叠表达式可以简化对C++11中引入的参数包的处理。

2.根据参数包的位置分为左折叠和右折叠,

3. 点在参数左边叫左折叠(...+t),点在参数右边叫右折叠(t+...)
4.根据操作的对象数量分为一元折叠和二元折叠.

5.左折叠和右折叠并不相同,加法和乘法的时候相同,减法和除法则不同

一:左折叠

1.一元左折叠

空参数会报错。

 采用二元折叠,就是必须要有一个初始值,对于加法来说采用0做初始值使整个运算不受影响。

 对于乘法采用1作为初始值。

二:右折叠

一元右折叠

 同理,需要采用二元表达式解决空参数问题

三:左折叠和右折叠的减法

四:lamada和逗号表达式结合

五:折叠表达式的原理和参数包递归原理不同

折叠表达相当于特例化一个模板,这个模板的参数根据实例化参数的个数来表示

 而递归是特例化所有参数模板。

 查看代码编译过程的网站:C++ Insights (cppinsights.io)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号