大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

微软宣布开源使用二十余年的 C++ 标准库

  • 2019-09-17
  • 本文字数:1386 字

    阅读完需:约 5 分钟

微软宣布开源使用二十余年的C++标准库

2019 年 9 月 16 日,微软 C++团队在官方博客发文称:“在 CppCon 2019 大会,我们(MSVC 团队)宣布开源 C ++标准库(也可称为 STL)。”


据了解,MSVC C++标准库开源之后,新的存储库地址为https://github.com/microsoft/STL,其中包含了所有的产品源代码、新的 CMake 构建系统和更多信息的自述文件。微软 C++团队正在努力将其迁移到 GitHub 中,目前虽然可以克隆和构建代码,但是在查看拉取请求之前,还需要做一些准备工作,例如添加测试套件等等,具体的迁移状态,可以点击此处查看。


微软 C++团队在官方博客中,也回答了几个大家都很关心的问题,下面我们就一起来看看吧。


1.为什么要开源 C++ STL?


微软 C++团队:选择开源主要是因为以下的原因:开源之后,在 GitHub 中使用 STL 允许用户跟踪我们的开发,并可尝试使用最新更改,同时还可以通过审查来帮助改进我们的拉取请求;随着 C++标准化的加速发展,每年都有很多大型功能都是被大家投票要开发的,我们认为接受开源贡献的主要功能是非常重要的,例如 C++ 20 的计时和格式库。另外,我们也希望能够通过主要功能的实现来回馈 C++社区,例如 C++ 13 charconv。


2.STL 使用的是什么开源许可?是否会直接影响 Visual Studio 的客户?


微软 C++团队:MSVC STL 的开源许可为Apache License v2.0


LLVM Exceptions,是由 Clang / LLVM / libc ++项目创建的。


之所以会选择这个较为宽松的开源许可,是因为拥有libc ++相同的许可能够使得库之间共享代码变得更容易。需要注意的是,MSVC STL 并没有与 libc ++合并, 它们仍然是支持具有不同数据结构表示的不同平台的不同库,不过,如果 libc ++的维护者有兴趣从 MSVC 的 STL 中获取功能实现,或者同时协作开发两个库中的新功能,我们可以提供帮助,不必担心许可。


对于 MSVC STL 的客户来说,可能会担心开源许可的问题,微软在开源许可中明确指出,客户使用 MSVC STL 编译自己源代码生成目标代码或类似输出时(例如静态库、动态库、可执行文件等),将已编译的产品发送给最终用户时,无需提供归属信息。这也是我们选择这个开源许可的原因,避免扰乱客户的业务。


(附加说明:MSVC 的 STL 中包含来自 Boost 的源代码,Math 和 Ryu 可在 Boost Software License v1.0 下使用。这是另一个开源许可,也包含对象代码的显式异常。我们派生的源代码是在 Apache License v2.0 LLVM Exceptions 发布的。)


3.是否有打算开源 MSVC 工具集中的其它工具吗?


微软 C++团队:目前没有这样的计划,之所以开源 STL,是因为它与其他 MSVC 库和编译器不同。


具体而言,STL 是由 C ++标准化委员会快速发展和设计的,与其他 MSVC 库不同,由委员会设计是开源的一个优势,这意味着我们不需要花费任何时间和精力进行功能设计审查,另外,实施战略和策略受到更多约束,因此更容易审查。STL 与编译器不同,相对容易贡献,并且松耦合,能够更好的与其它工具交互。


也许,未来我们可能会开源 STL 支持库!


4.在开源过程中遇到了哪些难题?


微软 C++团队:遇到了一个小问题,因为我们花费了一些时间来检测构建系统、测试基础架构和问题跟踪,因为关于 C++ 20 库功能的工作有些延迟了。不过,我们刚刚完成了所有 C ++ 17 库的功能,所以 C++ 20 库应该不会是问题,我们能够更有效地处理 STL,使得其更快地达到 C ++ 20 的完整性。


原文链接:


https://devblogs.microsoft.com/cppblog/open-sourcing-msvcs-stl/


2019-09-17 11:407018
用户头像

发布了 497 篇内容, 共 347.9 次阅读, 收获喜欢 1927 次。

关注

评论 3 条评论

发布
用户头像
好事情啊,C++社区越来越热闹了。
2019-09-18 08:07
回复
用户头像
其实是想大家帮他review bug
2019-09-17 19:15
回复
也有这层意思,哈哈哈,不过开源总归是件好事情。
2019-09-20 10:44
回复
没有更多了
发现更多内容

可视化设计中的交互:实用方法指南

inBuilder低代码平台

交互设计 可视化设计 职能层交互 决策层交互 协同交互

中昊芯英创始人杨龚轶凡作为中国AI芯片企业代表受邀出席迪拜AIM SUMMIT

科技经济

西格电力直供微电网设计③:短路电流计算与设备选型实例

西格电力

微电网 直供微电网 微电网管理系统 设备选型 分布式电源

在职场生存中如何做个不好惹的人

老李说技术

职场 职场 PUA 职场发展 职场妙招

人工智能AI在行业的应用和技术方案

金陵老街

人工智能 AI 大模型

内存泄漏 vs. 内存溢出:剖析Java虚拟机两大内存绝症的病因与疗法

poemyang

垃圾回收 Java虚拟机

2025年MES系统排名:万界星空MES与其他品牌对比优势

万界星空科技

mes 云mes 万界星空科技mes 制造业转型 AI低代码MES

安势清源SCA助力赛事!开源小满EasyXMen轻量级性能指标实时监控系统挑战赛决赛名单揭晓,巅峰对决即将开启!

安势信息

安势 清源SCA 开源小满 EasyXMen

区块链Web3 系统的开发技术

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Web3 软件的开发框架

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Data + AI 时代,对象存储为 AI 应用注入全局动力

火山引擎开发者社区

招聘实习生丨加入我们,共建 RTE 开发者社区

声网

Agentic AI基础设施实践经验系列(四):MCP服务器从本地到云端的部署演进

亚马逊云科技 (Amazon Web Services)

人工智能

面试官狂问的 27 个 RAG 问题全解析:从基础到架构优化,一次讲透!

测试人

软件测试

让 ETL 更懂语义:DataWorks 支持数据集成 AI 辅助处理能力

阿里云大数据AI技术

人工智能 阿里云 AI辅助 Dataworks

事半功倍:.NET 开发者的 Visual Studio 效率技巧!

追逐时光者

.net Visual Studio

中昊芯英斩获2025全球数字贸易创新大赛人工智能赛道金奖第一名​

科技经济

并行智能体是否将重塑软件开发模式?

Baihai IDP

程序员 AI 智能体 AI编程 并行智能体

数字孪生项目开发技术栈

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

1688图片搜索API秘籍!轻松获取相似商品数据

Datafox(数据狐)

1688图片搜索接口 1688图片识别接口 1688图搜API 1688拍立淘api 1688按图搜索接口

企业必读:等保测评的几个误区——你的信息真的安全吗?

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

英伟达领投,语音AI初创Uniphore估值25亿美元;ElevenLabs创始人:语音的意义不在准确,而在打动丨日报

声网

今日立冬 | 万物始藏 冬之伊始

中烟创新

储能规模定多大?—— 西格电力容量配置优化模型与工具方法

西格电力

新能源行业 #高性能存储 智慧储能电站 储能 绿电直连

喜报 | 隐语社区 SCQL Maintainer 荣获中国信通院 2025 年度 OSCAR“开源+人物”奖

隐语SecretFlow

达能×火山引擎:用AI升级消费者洞察

字节跳动数据平台

LED屏幕样品可提供吗?

Dylan

产品 LED LED display LED显示屏 LED屏幕

从电网守护到全运接力,5G-A机器人的破壁之旅

脑极体

AI

数字孪生项目开发框架与特点

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

2025新规:歇业、整改、罚款!——只因忽略一件事

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

企业的“数字安全基建”——等保测评,为未来“扫雷”

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

微软宣布开源使用二十余年的C++标准库_语言 & 开发_Stephan T. Lavavej_InfoQ精选文章