Microsoft открыл код стандартной библиотеки С++, поставляемой в Visual Studio

На проходящей в эти дни конференции CppCon 2019 компания Microsoft объявила об открытии кода своей реализации стандартной библиотеки С++ (STL, C++ Standard Library), входящей в состав инструментария MSVC и среды разработки Visual Studio. Библиотека реализует возможности, описанные в актуальных стандартах C++14 и C++17, а также развивается в направлении поддержки будущего стандарта C++20, следуя за изменениями в текущем рабочем черновике. Код открыт под лицензией Apache 2.0 с исключениями, позволяющими использовать код в проекте LLVM.

Разработку данной библиотеки в дальнейшем планируется вести как развиваемого на GitHub открытого проекта, принимая от сторонних разработчиков pull-запросы с исправлениями и реализацией новых возможностей (для участия в разработке требуется CLA-подписание соглашения о передаче имущественных прав на передаваемый код). Отмечается, что перевод разработки STL на GitHub поможет клиентам Microsoft отслеживать ход разработки, экспериментировать с самими свежими изменениями и помогать рецензировать поступающие запросы на добавление новшеств.

Открытие кода также позволит сообществу использовать в других проектах готовых реализации возможностей из новых стандартов. Например, лицензия на код выбрана таким образом, чтобы предоставить возможность обмениваться кодом с библиотекой libc++ от проекта LLVM. STL и libc++ отличаются внутренним представлением структур данных, но при желании разработчики libc++ могут портировать интересующую функциональность из STL (например, charconv) или оба проекта совместно смогут развивать какие-то новшества. Добавленные в лицензию Apache исключения, отменяют требования по упоминанию использования исходного продукта при поставки конечным пользователям продукта, скомпилированного с STL.

Из ключевых целей проекта называется полное соответствие требованиям спецификаций, обеспечение высокой производительности, удобство использования (средства отладки, диагностики, выявления ошибок) и совместимость на уровне исходных текстов и ABI c прошлыми выпусками Visual Studio 2015/2017. Среди областей, которые Microsoft не заинтересована развивает, отмечаются портирование над другие платформы и добавление нестандартных расширений.

Источник: http://www.opennet.ru/opennews/art.shtml?num=51507