17c.c++并非一人之笔
222
订阅已订阅已珍藏
珍藏点击播报本文,,,,,,,约
“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++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 起源的齐全方式。。。。。。
人民网校对:黄耀明(iz3aFheokR2jkPZP80yFHoy8DIAjz0iAWS)
关注公家号:人民网财经
分享让更多人看到






























微信扫一扫


第一功夫为您推送权威资讯
报路全球 传布中国
关注人民网,,,,,,,传布正能量