17c.c++并非一人之笔,C++17标准是怎样配合完成的

泉源:界面新闻2026-07-25 20:20:04
字号
超大
标准

“17c.c++:并非一人之笔”若是是在讨论 C++17,焦点意思是:C++17 并不是某一位程序员单独写出的程序,也不是一小我私家单独决议的语言版本,而是由语言设计者、标准委员会成员、提案作者、编译器与标准库维护者以及开发者社区配合推动形成的标准。

需要先澄清的是,“17c.c++”并不是 C++ 标准的正式写法。手艺资料中通常写作“C++17”,它指的是 C++ 在 2017 年宣布的一代语言标准。因此,“并非一人之笔”强调的是 C++17 的形成历程,而不?是在说明某个详细源代码文件的作者数目。

C++的最初设计者,不即是C++17的唯一作者

C++ 的早期设计与 Bjarne Stroustrup 亲近相关。他在 C 语言基础上吸收了 Simula 等语言的面向工具头脑,逐步设计并生长出 C++。从语言历史的?角度看,把他称为 C++ 的主要首创人或最初设计者是合理的。

但?一门语言从早期设计走向成熟标准,涉及的内容远远凌驾某小我私家能够自力完成的规模。语规则则、类型系统、模板、异常、并发、标准库、编译器行为和兼容性都需要恒久讨论。C++11、C++14、C++17 以及后续标准,都是在既有用果上一直修订和扩展的效果。

以是,下面两种说法表达的工具并不相同:

“C++首创人”与“C++17配合制订者”的区别
说法 准确寄义
C++的主要首创人 强调语言早期的焦点设计和历史起点
C++17的作者 容易造成误解,由于标准由多人协作制订
C++17提案?作者 通常?只对应某项特征或某组设计,并不代表整套标准
C++17标准的制订加入者 包括委员会成员、提案?作者、审阅者、实现者和反响者等

哪些人配合写下了C++17

C++17 的?标准化事情主要在 ISO/IEC 系统下的? C++ 标准事情组 WG21 中推进。WG21 并不是一个由简单认真人闭门写作的团队,而是由来自差别国家、公司、研究机构和开源项目的专家配合加入。差别加入者关注的重点也纷歧样。

  • 语言设计者:认真提出或完善语法、类型系统、模板机制、常量表?达式等?语言功效,使新特征能够与既有 C++ 规则坚持一致。
  • 标准库设计者:围绕容器、算法、字符串、文件系统和通用工具等内容提出计划,处置惩罚接口命名、类型约束、异常行为和可移植性问题。
  • 提案作者:通;嵴攵阅掣雒魅肺侍庾刺岚,说明使用场?景、设计取舍、示例代码和可能的兼容性影响。
  • 焦点语言与库事情组:会审查提案的手艺细节和标准语言,找出歧义、冲突或无法实现的部分。
  • 编译器和标准库维护者:通过实现试验验证计划是否可行,并反响编译本钱?、二进制兼容性、过失诊断和现实使用中的问题。
  • 通俗开发者和用户:真实项目中的反响能够袒露设计在大型工程、跨平台开发和旧代码兼容方面的缺陷。

因此,一项功效可能有明确的提出者,但最终进入标准时,往往已经经由多轮修改。提案作者提供了主要起点,其他加入者则配合决议它是否成熟、怎样表述以及怎样与整个语言生态兼容。

一个C++17特征怎样进入正式标准

“并非一人之笔”不但体现在加入者许多,也体现在标准形成有一套重复审查的历程。一个想法从提出到成?为 C++17 的正式内容,通常要履历以下环节:

  • 先发明现实问题:开发者可能需要更清静的类型封装、更精练的语法,或者缺少可移植的文件系统接口。
  • 形成书面提案:提案需要诠释问题、给出接口或语法设计,并?说明与现有规则的关系。
  • 聚会讨论和修改:委员会会较量差别计划,讨论命名、界线条件、性能、错?误处置惩罚和向后兼容。
  • 举行实现验证:编译器和标准库实现者会实验支持该计划,实践中发明的问题可能促使提案重新设计。
  • 审查标准语言:功效设计获得认可后,还需要把它写成足够准确的标准语言,阻止差别实现爆发不?一致的效果。
  • 经由正式接纳:只有完成响应的委员会流程并纳入标准文本,功效才成为 C++17 的标准内容。

这个历程也意味着,并不是所有看起来有价值的建议都会进入某一版标准。有些提案需要继续完善,有些会由于实现价钱、兼容性危害或缺少共识而推迟到后续版?本,尚有一些计划?可能最终被其他设计取代。

C++17中的代表性效果为何能体现协作

C++17 引入了多项开发者经常使用的语言和库功效。例如,结构化绑定让程序可以更利便地拆解返回值和聚合工具;if constexpr 改善了模板代码中的条件分支;折叠表?达式简化了可变参数模板的处置惩罚;内联变量解决了部分头文件界说和链接方面的问题。

在标?准库方面,std::optional 用于表达“可能没有值”的效果,std::variant 提供了类型清静的多类型存储,std::any 适合生涯类型在运行时才确定的工具,std::string_view 可以在不拥有字符串?内容的情形下提供轻量会见。文件系统库也在这一版本中成为标准库的主要组成部分。

这些功效背后通常都有详细提案和主要孝顺者,但从“某个功效的设计者”推导出“C++17整套标准的唯一作者”并禁绝确。功效之间需要坚持统一的命名气概、生命周期规则、异常约定和泛型接口,这些协调事情自己就需要整体审查。

阅读这句话时最容易爆发的误解

若是在文章问题、视频问题或项目说明中看到“17c.c++:并非一人之笔”,可以从三个层面明确。第一,它可能是在用不正式的写法指代 C++17;第二,它强调的是标准化协作,而不是否定某位设计者的孝顺;第三,它纷歧定能证实某个详细项目或页面有几多作者。

若是搜索效果中的“17c.c++”现实是某个网站名称、文章名称?、代码客栈或内部项目代号,那么仅凭这几个词无法确认它的详细作者。此时应审查页面中的上下文、项目说明、版本纪录或作者信息,不可把 C++17 的标准化历史直接套用到该项目上。

对开发者而言,这种明确有什么现实意义

明确 C++17“并非一人之笔”,有助于准确看待标准、编?译器和代码示例之间的?关系。标准形貌的是语言和库应当具备的规则,不即是某个编译器的源代码;编译器与标准库则认真把这些规则详细实现出来。纵然某项功效已经属于 C++17,详细编译器版本也可能保存支持水平差别。

编写 C++17 项目时,应明确设置对应的语言标准选项,并检查编译器和标准库是否支持所使用的功效。团队还需要关注旧代码兼容、差别平台行为、第三方库要求和构建情形,而不可只凭证某个问题判断“能否直接使用”。

因此,“17c.c++:并非一人之笔”更准确的诠释是:C++17 有清晰的历史设计脉络,也有详细孝顺者,但它最终是一份经由提案、讨论、实现、审查和正式接纳的?整体效果。把小我私家孝顺与社区协作同时望见,才是明确 C++17 泉源的完整方法。

校对:罗昌平(rsln0LhyhW9amXY2JGVPfAtTlKfWu1zrzKg)

责任编辑: 罗昌平
为你推荐
用户谈论
登录后可以讲话
网友谈论仅供其表达小我私家看法,并不批注证券时报态度
暂无谈论
腾讯<X>春风汽车::智能化+全球化,加速!
网站地图