Microsoft оголосила про відкриття коду реалізації стандартної бібліотеки С++ (STL, C++ Standard Library)
Microsoft оголосила про відкриття коду своєї реалізації стандартної бібліотеки С++ (STL, C++ Standard Library)
Microsoft оголосила про відкриття коду своєї реалізації стандартної бібліотеки С++ (STL, C++ Standard Library), що входить до складу інструментарію MSVC і середовища розробки Visual Studio. Бібліотека реалізує можливості, описані в актуальних стандартах C++14 і C++17, а також розвивається у напрямі підтримки майбутнього стандарту C++20, слідуючи змін у поточному робочому чернетці. Код відкритий під ліцензією Apache 2.0 з винятками для бінарних файлів, що вирішують проблему з включенням runtime-бібліотек до складу виконуваних файлів, що формуються.
Розробку даної бібліотеки надалі планується вести як відкритий проект, що розвивається на GitHub, який приймає від сторонніх розробників pull-запити з виправленнями та реалізацією нових можливостей (для участі в розробці потрібне підписання CLA-угоди про передачу майнових прав на код, що передається). Зазначається, що переклад розробки STL на GitHub допоможе клієнтам Microsoft відслідковувати хід розробки, експериментувати з найсвіжішими змінами і допомагати рецензувати запити, що надходять на додавання нововведень.
Відкриття коду також дозволить спільноті використовувати в інших проектах готові реалізації можливостей із нових стандартів. Наприклад, ліцензія на код вибрана таким чином, щоб надати можливість обмінюватися кодом з бібліотекою libc++ від проекту LLVM. STL і libc++ відрізняються внутрішнім уявленням структур даних, але за бажання розробники libc++ можуть портувати цікаву функціональність із STL (наприклад, charconv) чи обидва проекту спільно зможуть розвивати якісь нововведення. Додані до ліцензії Apache винятки скасовують вимоги щодо згадування використання вихідного продукту при постачанні кінцевим користувачам бінарних файлів, скомпільованих із STL.
З ключових цілей проекту називається повна відповідність вимогам специфікацій, забезпечення високої продуктивності, зручність використання (засоби налагодження, діагностики, виявлення помилок) та сумісність на рівні вихідних текстів та ABI з минулими випусками Visual Studio 2015/2017. Серед областей, які Microsoft не зацікавлена розвивати, відзначаються портування на інші платформи та додавання нестандартних розширень.