The C++ Standard Library (STL) which ships as part of the MSVC toolset and the Visual Studio IDE is being released as open source by Microsoft. The Microsoft Visual C++ compiler and libraries toolset (MSVC) team made the announcement at CppCon 2019.
The library is now on GitHub in a repository containing all the product source code and a new CMake build system. Obviously, this doesn’t affect developers who just want to use the STL, as this is available for use in the Visual Studio IDE. However, developers wanting to participate in the STL’s development can do so by using the GitHub repo – or will be able to do so soon. The move to GitHub is still underway, but you can already clone and build the code.
The development team says that the move has been made because:
“As C++ Standardization accelerates, with more large features being voted in every year, we believe that accepting major features as open source contributions will be important. (For example, C++20’s chrono and format libraries are potential candidates.)”
The library is distributed under the Apache License v2.0 with LLVM Exceptions. Microsoft says the choice was made because having the same license as libc++ will make it easier to share code between the libraries, though they’re not being merged.
The development team says there are no plans to make anything else in the MSVC toolset open source, though some of the support libraries for the STL may be open sourced in the future. The thinking behind making the STL open source is that it is different because it is evolving rapidly and is designed by the C++ Standardization Committee, unlike other MSVC libraries.
The only catch, according to the developers, is that the move to open source will mean the team spending time overhauling the build system, test infrastructure, and issue tracking, which will delay some work on C++20 library features.
Credit: I Programmer