前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >快报!c++26第五次会议总结

快报!c++26第五次会议总结

作者头像
王很水
发布于 2024-11-25 06:14:44
发布于 2024-11-25 06:14:44
2170
举报

欢迎来到C++26的第五次会议,也是feature freeze之前的倒数第二次会议。本次会议共约230人参与,31个NB参会,依然是传统的线下:线上=2:1模式

在通过的提案方面,本次共通过8篇语言提案和19篇库提案。这比上次会议的7+12要多一些,和东京正好持平。

语言方面,最重磅的也是最坎坷的提案无疑是P1061 auto [...xs] = ... (structured binding packs)

作为上次Plenary中被撤销的提案,P1061本来应该波澜不惊地再次投票。没想到的是,EWG第三天的讨论中MSVC开发者提出了对实现难度的抗议,差一点导致本提案倒在Stage 2。幸运的是,最后作者找到了一个妥协方案,将带pack的structured binding限制在只能在模版中使用,从而成功进入标准。

除此之外,语言方面还通过了P3068,允许在编译期抛出异常。(当然,异常不能离开编译期,编译抛运行catch是不行的),并且常规deprecate了一批特性(is_trivial,不带逗号的varargs语法)。

LWG方面,最重磅的提案无疑是极度坎坷的P1928 std::simd。本提案的历史极其悠久,从2013年的N3759初创之后,-> N4184/5 -> N4395 -> P0214R9这14个revision之后终于在2018年修成半个正果,成功进入Parallelism TS v2。不过,随后的IS merge依然极度艰难,大规模的设计改动和名称反复贯穿了P1928的历史,最终在用了十年,30个revision之后终于成功进入C++26。

本提案事实上大体标准化了SIMD指令,让标准中可以直接像操纵其他原生类型一样操作SIMD向量。至此,C++26标准库的两个T0和一个T0.5特性均已成功进入标准,L(E)WG成功提前完成了自己本周期的目标。下一次会议的主要目标看来就是搞定hive这个老大难。


另一个重点提案就是P3019 indirect/polymorphic,即一个deep copy版的智能指针。从cloned_ptr走到indirect_value走到indirect,花了P0201R6 -> P3019R11的19个revision才走完这条路,不过好歹是走完了。现在pimpl就可以用标准解法了。

除此之外,本次搞定了大量的线性代数bugfix提案,包括aligned_accessor,submdspan fix等对C++26至关重要的提案被成功完成(还剩下atomic_accessor和rank-2k两个提案,预计下次吧)。

另外,本次会议还迈出了C23 rebase的第一步,成功将C23新增的两个头文件(bits,安全整数加法)加入了C++26。

本次会议的Stage 2工作组相对来说更有看点一些。EWG方面,P2786平凡迁移和P2900 Contracts均成功被推进Stage 3,但是两者的争议都非常大,forwarding poll可以说是barely consensus,要避免Plenary的失败还有很长的路要走。第三天的讨论中,反射终于确定了使用^^语法(unibrow),并逐渐开始在一些post-P2996反射提案上有了进展(比如consteval block,可惜expansion statement依然卡死着)

第四天早上是模式匹配的主场,虽然这一特性进入26的希望已经非常渺茫,但是P2688仍然在为此努力,并成为了EWG选择的语法而不是P2392的is/as。较为遗憾的是,原本应该在本次会议通过的fiber_context在最后一刻找到了Windows下的实现难题,只得推迟到下个周期去了。

LEWG方面,P2996反射和P2900 Contracts同样进入了Stage 3,从而扫清了这两个语言的主要目标在库这边的障碍。除此之外,整周大部分都在搞S&R相关扩展,例如async_scope,system scheduler等对P2300发挥作用至关重要的补充提案拿到了一定进展(所以lazy啥时候有人愿意接手…)。

遗憾的是,concurrent queue依然在Concurrency TS v3和IS之间举棋不定,进入26的希望已经较为渺茫。除此之外,type_order_v也进入了Stage 3,有望给所有类型一个标准化的偏序关系。

Stage 1工作组方面,SG9 Ranges完成了Range化的并行算法的设计,但是离自己的plan依然差的有点远()。SG21 Contracts在完善Wording的同时,已经渐渐转向post-MVP特性,例如把语言UB大部分转成Contracts。SG23 Security完成了Profile的初版设计,不过前景究竟如何还要看看。

展望明年的会议总体情况,“双边反转”已经基本成为事实,20/23周期的末尾都是LWG提案太多完不成不得不扔掉一些,这次LWG已经完成了绝大多数大提案,队伍反而不是很挤。提案太多完不成的变成了CWG,队伍里三个大提案实在有点吃不消,要做好CWG扔掉一堆小提案的准备。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CPP每周推送 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
性能知识点二
之前讲到重排,布局的时候使用flex时,比使用inline-block和float时重排更快,所以在布局时可以优先考虑Flex。
wade
2020/04/23
2730
“非主流”的纯前端性能优化
性能优化一直是前端研究的主要课题之一,因为不仅直接影响用户体验,对于商业性公司,网页性能的优劣更关乎流量变现效率的高低。例如 DoubleClick by Google 发现:
2020labs小助手
2020/09/23
6030
10个前端性能优化实用技能
考虑一个场景,滚动事件中会发起网络请求,但是我们并不希望用户在滚动过程中一直发起请求,而是隔一段时间发起一次,对于这种情况我们就可以使用节流。
王小婷
2020/11/26
4670
http请求过程及性能优化分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/75215499
j_bleach
2019/07/02
1.4K0
http请求过程及性能优化分析
什么是 Preload、Prefetch 和 Preconnect?
今天我们将研究一下能显著提升页面性能的方法 —— 资源提示与指令。你也许听说过 preload,prefetch 和 preconnect,可是我们想研究的更深一点,搞清他们之间的区别并且充分的利用它们。它们带来的好处包括允许前端开发人员来优化资源的加载,减少往返路径并且在浏览页面时可以更快的加载到资源。
前端黑板报
2019/12/11
6K0
Resource Hints 知多少
在上篇文章 探究网页资源究竟是如何阻塞浏览器加载的 中介绍到 JS 会阻塞 DOM 的加载,样式会阻塞页面的渲染,外链样式里的自定义字体还会对文字造成闪动给用户带来不好的体验,诸如此类问题还有挺多,那到底该如何解决它们呢?
用户4456933
2021/06/01
1.3K0
Resource Hints 知多少
穷追猛打,阿里二面问了我30分钟从URL输入到渲染...
同样的问题,可以拿来招聘P5也可以是P7,只是深度不同。所以我重新整理了一遍整个流程,本文较长,建议先收藏。
用户9899350
2022/07/29
6310
穷追猛打,阿里二面问了我30分钟从URL输入到渲染...
Web性能优化小结
下载性能 消灭重定向 域名收敛,减少DNS解析 减少文件数量(减少TCP连接数) 压缩文件体积 CDN 客户端缓存 渲染性能 CSS放顶部 JS放底部 心理性能 进度条 有效提示 转“菊花” 移动网络的“空口”信道 TCP 慢启动:不同的应用类型获得的连接资源不公平——下载 vs 网游 Head-of-line blocking HTTP无法多路复用TCP连接(HTTP2可以) 三次握手和四次挥手过程冗余(TCP Fast Open,QUIC) 预解析和预加载 # DNS预解析 <l
linjinhe
2018/06/06
8270
仅需 5 分钟,快速优化 Web 性能的10 个手段
作者:Marc 译者:前端小智 来源:dev 本人已经过原作者制授权翻译。 在这篇文章中,主要介绍10种快速提高网站性能的方法,你只需5分钟内就可以将它应用到你的网站上,废话不多说,让我们进入正题吧
前端小智@大迁世界
2020/10/28
8230
仅需 5 分钟,快速优化 Web 性能的10 个手段
前端性能优化系列 | 加载优化
在浏览器发起网络请求时,并非每个字节都具有相同的优先级,所以,浏览器通常会对所要加载的内容进行推测,将相对重要的信息先呈现给用户。比如浏览器一般会先加载CSS,再去加载JavaScript脚本和图像文件。当然,浏览器的判断并不一定都是准确的,下面就来看看如何影响浏览器对资源加载的优先级。
用户6256742
2024/08/01
2050
前端性能优化系列 | 加载优化
优秀的网站都用了这几个属性
得益于浏览器技术的不断发展,现代网页应用体验已经不断接近原生应用,许多大公司也将原生应用迁移到浏览器,甚至更极端的,放弃原生应用,只提供网页应用。随之而来的,网页应用的代码量在不断增加,如果还像以前的样子,将所有代码放到一两个文件中,势必会影响网页加载和渲染的速度。所以网页应用一般都会利用构建工具,如webpack、gulp和rollup等,将代码按模块、路由或者命名空间进行分割,然后生成一个个比较小的js、css和html文件。但是问题又随之而来了,在如此众多的资源文件中,该如何决定加载的先后顺序和优先级呢?幸运的是,浏览器提供了preload、prefetch、preconnect和prerender等指令用来帮助网页优化资源的加载。这些指令用于<link>标签中,可以用来加载图像、css、js和字体等关键资源。
coder_koala
2021/09/22
6110
京东微信购物首页性能优化实践
一般来说产品是按以下方式进行迭代的,我认为循环的起点应该是「收集用户反馈」,我们对页面的优化依据和目标一个重要来源就是用户的反馈,因此说网页优化我们先从网页监控开始聊起。
前端劝退师
2019/12/26
1.7K0
京东微信购物首页性能优化实践
快速优化 Web 性能的10 个手段
优化网站的性能需要花费大量的时间,并且如果要根据自己的需求进行优化则花费的时间可能更多。
疯狂的技术宅
2020/09/01
2K0
快速优化 Web 性能的10 个手段
prelink
现如今网络越来越快,网页应用也变得越来越受人们欢迎,与此同时,人们对应用响应速度的期望值也越来越高。 怎样提升网站的响应速度,怎样让用户更快的看到想要的内容已经变得越发重要了。 对此,除了开发者们绞尽脑汁优化应用外,浏览器产商们也提供了各种各样方式来帮助开发者预加载资源。
epoos
2022/10/28
6010
Web页面全链路性能优化指南
性能优化不单指优化一个页面的打开速度,在开发环境将一个项目的启动时间缩短使开发体验更好也属于性能优化,大文件上传时为其添加分片上传、断点续传也属于性能优化。在项目开发以及用户使用的过程中,能够让任何一个链路快一点,都可以被叫做性能优化。
唐志远
2022/10/27
1.9K0
Web页面全链路性能优化指南
前端性能优化总结
最近花了一些时间在项目的性能优化上,背后做了很多工作,但是最后依然没有达到自己想要的结果,有些失望,但是还是记录下自己的执着。
前端迷
2020/07/02
1.3K0
有货移动Web端性能优化探索实践
在移动互联网的时代里,对于一个web站点来说,移动端的用户体验尤为重要。现代web站点的设计和开发都是以移动优先作为第一原则,我们也专门为了移动端的web站点做了相应的优化和提升。而网页的打开速度和页面的流畅度,对于用户是否长时间访问至关重要。我们在移动端的站点通过一系列的方法,最终为了快速打开页面展示网页内容,触达用户,同时能流畅的浏览网页。 移动端的硬件条件,网络条件相对于桌面端,会复杂的多,设备类型多样,硬件配置参差不齐,分辨率碎片化,网络状况在移动过程中稳定性,速率都会变化,而对于一个页面到达用户的
用户1263954
2018/04/03
1.3K0
有货移动Web端性能优化探索实践
写在 2021 的前端性能优化指南
当收集浏览器端每个用户核心性能指标时,可通过 web-vitals 收集并通过 sendBeacon 上报到打点系统。
山月
2021/10/27
1.4K0
写在 2021 的前端性能优化指南
前端性能优化
前端性能优化与重绘与回流有关系的原因是:频繁的触发重绘与回流,会导致UI频繁染,最终会导致js变慢,会导致页面性能变差
javascript艺术
2021/05/28
9470
前端性能优化
前端 Web 性能清单
考虑添加 preconnect 或 dns-prefetch 资源提示以建立与重要第三方来源的早期连接。
海拥
2023/05/23
1.2K0
前端 Web 性能清单
相关推荐
性能知识点二
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档