Microsoft has opened up the code for the C++ Standard Library that comes with Visual Studio

At the ongoing CppCon 2019 conference these days, Microsoft announced about opening the code of their implementation of the C ++ Standard Library (STL, C ++ Standard Library), which is part of the MSVC toolkit and the Visual Studio development environment. The library implements the features described in the current C++14 and C++17 standards, and also evolves towards supporting the future C++20 standard, following the changes in the current working draft. Code open under the Apache 2.0 license with binary exceptions that solve the problem with the inclusion of runtime libraries in the generated executable files.

The development of this library is planned to be further developed as an open project developed on GitHub, accepting pull requests from third-party developers with fixes and the implementation of new features (participation in the development requires signing a CLA agreement on the transfer of property rights to the transferred code). It is noted that moving the STL development to GitHub will help Microsoft customers track development progress, experiment with the latest changes themselves, and help review incoming feature requests.

Opening up the code will also allow the community to use off-the-shelf implementations of features from the new standards in other projects. For example, the code license is chosen to allow code to be exchanged with the library libc++ from the LLVM project. STL and libc++ differ in the internal representation of data structures, but if desired, libc++ developers can port the functionality of interest from the STL (for example, charconv) or both projects can develop some innovations together. The exceptions added to the Apache license remove the requirement to mention the use of the original product when shipping binaries compiled with the STL to end users.

Of the key goals of the project, full compliance with the requirements of the specifications, ensuring high performance, ease of use (debugging, diagnostics, error detection tools) and compatibility at the source code and ABI level with previous releases of Visual Studio 2015/2017 are called. Among the areas that Microsoft is not interested in developing are porting to other platforms and adding non-standard extensions.

Source: opennet.ru

Add a comment