返回

文章详情

C++26 DIS 投票结果

Hacker News2026年10月26日 06:11

C++26 在其 DIS 投票中失败。据我所知,这是第一份C++草案失败的案例。C委员会的召集人罗伯特·西科德写道,他认为 SC22 的任何语言标准之前都没有失败过投票,而 WG21 方向组(P5000R1)的成员大卫·范德沃德也表示,没有一份早期的C++草案甚至没有收到一个反对票。因此,反射、std::execution、库增强和契约都在一个 ISO 尚未批准的草稿中,没人知道延迟会持续多久。投票于2026年10月23日结束,罗伯特·西科德在次日的LinkedIn上发布了结果:我的立场# 在投票进行时,我保持了这一系列的中立,不想让任何一方感到压力。投票已经结束,所以我可以说出我的立场。我喜欢契约这个想法,自从它们在C++20中被移除后,我一直在失落。我一直关心 API 设计、库、良好的接口和框架,这也是我在 LEWG 的原因。 我喜欢契约的原因源于这样的经验。检查是一个好处,也是一个好的好处:程序可以验证自己的假设。第二个我同样关心的方面是文档。函数签名中的前置条件或后置条件记录了 API 设计者的意图,这样用户就知道期望什么以及如何使用该函数,而像 Doxygen 或 cppreference.com 这样的文档系统可以直接显示这一点。注释可以说同样的事情,但没有任何东西能保持它的真实。它可能会在没有人注意的情况下与代码偏离。契约是代码的一部分。编译器和函数一起检查它,当检查开启时,违规会 loud 失败,因此这些文档不能悄无声息的过期。概念已经在编译时针对函数接受的类型提供了这一点。契约则是仍然缺失的部分,它在运行时对值做同样的事。我希望在标准中看到契约,很遗憾这次它们没有成行。我希望能保留它们。如果设计因此变得更好,那也是一个好的结果。这对我来说不是一个抽象问题。我已经在我的研讨会上开始教授 C++26 契约,mp-units 使用的是 C++26 版本。数字# 第2部分解释了 DIS 必须满足的两个条件。草案未能满足这两个条件:条件要求结果赞成票,来自投票(P-)成员至少三分之二20中的12,达到60%;反对票,来自所有投票机构最多25%22中的9,达到41%。20中的三分之二需要14票赞成,而草案得了12票。22中的四分之一允许五张反对票,而草案得到了九票。仅一项就足以导致草案失败。哪些国家进行了投票,以及如何# 官方结果列出了每个国家。有九个国家投了反对票:丹麦、芬兰、伊朗、意大利、日本、卢森堡、罗马尼亚、西班牙和瑞典。每个国家都在投票时附上了评论。法国和爱尔兰弃权,但也提交了评论,因此共11个国家进行了评论。波兰和美国弃权。我是波兰国家机构的成员。评论本身尚未公布。ISO/IEC 指令(第1部分第2.6.5条)要求在投票结束后12周内提交完整报告,包括结果、委员会主席的决定和评论的完整文本。针对在10月23日结束的投票,最晚将在2027年1月中旬提交。在委员会草案阶段,WG21发布了这样的报告,编号为N5028。我不知道这次是否会这样做。波兰的弃权# 波兰对 C++ 的立场是在波兰标准化委员会的技术委员会 KT 331 中决定的。其投票询问波兰是否应拒绝DIS并向ISO发送技术评论。投票未通过,因此波兰告诉ISO“弃权”,并且无法附上技术评论。我不会分享统计数字或说明谁投了什么票。这是内部投票,我不知道是否可以公布。几个投票决定了波兰是发声还是保持沉默。出于不同的原因,这几乎无效。在波兰投票结束的几天前,我们仍然缺少达到法定人数的票,没有法定人数就没有波兰立场。名单上的某些人已换工作。我尝试通过电子邮件和LinkedIn联系那些安静的人,一些电子邮件被退回,很可能是因为这些地址属于前雇主。无论你认为 C++26 应当如何走,两个事情随之而来:如果你是在国家委员会中,请投票。投票无论你如何投出都是重要的。如果你无法再参与,请请求将自己从投票成员名单中移除。法定人数计算包括你,因此不活跃的成员使其他人更难在此次和以后的每次投票中达到法定人数。

阅读全文 →

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡