17c.c++并非一人之笔,, ,C++17尺度是若何共同实现的

起源::界面新闻2026-07-27 05:04:57
字号
超大
尺度

“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 起源的?齐全方式。

校对::白岩松(ZH9V9Y8KP8kc5f4CrSfTIMe6tSBlsdP)

责任编纂:: 白岩松
为你推荐
用户评论
登录后能够讲话
网友评论仅供其表白小我见解,, ,并不批注证券时报态度
暂无评论
择天记燃,泪收官年番见
【网站地图】