時間:2019-10-25 來源:互聯網 瀏覽量:
2019 年 9 月 16 日,微軟 C++ 團隊在官方博客發文稱:“在 CppCon 2019 大會,我們(MSVC 團隊)宣布開源 C ++ 標準庫(也可稱為 STL)。”
STL托管與Github上,該倉庫包含所有的產品源代碼、一個新的 cmake 構建係統等。
目前,STL已經在Github上獲得 3463 個Star,278個Fork(Github地址:https://github.com/microsoft/STL)
此外,微軟 C++ 團隊在官方博客對一些主要的問題做了相應回答
1、為什麼開源STL?
微軟C++團隊表示主要有一下幾個原因:
在GitHub上開源STL,可以使我們的客戶能夠隨時了解我們的發展情況,並嚐試我們最新的更改,還能通過審查來幫助改進pull隨著C ++標準化的加速發展,每年都有很多大型的功能特性被投票通過,我們堅信接受主要特性作為開源貢獻將是非常重要的。我們也希望通過實現主要的功能特性,為C ++社區做出貢獻。(例如,C ++ 17的charconv。)2、STL使用什麼許可證,是否會影響到Visual Studio的用戶?
MSVC的STL是在Apache License v2.0下發布的,隻有LLVM Exceptions ,是由 Clang / LLVM / libc ++ 項目創建的。選擇這個開放源碼許可,是因為與libc++具有相同的許可以使我們的庫之間更容易代碼共享。需要說明的是,MSVC的STL並沒有與libc++合並;它們仍然是不同的庫,如果libc++的維護者有興趣從MSVC的STL獲取功能特性,或者在兩個庫的協作中開發新特性,而不需要考慮開源許可問題。
3、是否打算開源MSVC工具集中的其他東西?
目前沒有這樣的計劃,選擇STL是因為它不同於其他MSVC庫和編譯器。我們選擇開源STL是因為它不同於其他MSVC庫和編譯器,具體來說,與其他MSVC庫不同,STL是由c++標準化委員會快速發展和設計的。這也是開源的優勢之一,這意味著我們不需要在特性設計評審上花費任何的時間和精力,此外,STL也相對容易實現,而且有點鬆散耦合,能夠更好的與其他工具交互
4、是否遇到了什麼困難?
有一個小問題,我們花費了一些時間去全麵檢查自己的係統構建,測試基礎設施和問題跟蹤,這會延遲C++ 20 庫特性的一些工作,我們剛剛實現了所有c++ 17庫特性,所以這算不上是太大的問題。
5、這個開源庫有什麼作用?
如果你隻是想使用 STL 的程序員,則不需要此存儲庫,你隻需要安裝 Visual Studio IDE,然後選擇 Desktop development with C++。
如果你想參與 STL 的開發,那你可以通過該倉庫提交 issue、PR 之類的。最後你還可以通過倉庫獲取代碼,並在其它應用或者庫中使用它,別忘了遵守STL的許可協議哦~~