Na probíhající konferenci CppCon 2019 společnost Microsoft oznámila otevření kódu své implementace standardní knihovny C++ (STL, C++ Standard Library), která je součástí sady nástrojů MSVC a vývojového prostředí Visual Studio. Knihovna realizuje možnosti popsané v aktuálních standardech C++14 a C++17, a také se vyvíjí směrem k podpoře budoucího standardu C++20, sledující změny v aktuálním pracovním výkresu. Kód pod licencí Apache 2.0 s výjimkami pro binární soubory, které řeší problém s zahrnutím runtime knihoven do generovaných spustitelných souborů.
Vývoj této knihovny bude v budoucnu plánován jako vyvíjený otevřený projekt na GitHubu, který přijímá od externích vývojářů pull requesty s opravami a implementací nových funkcí (k účasti na vývoji je nutné podepsat smlouvu o předání majetkových práv na předávaný kód). Je zdůrazněno, že přenesení vývoje STL na GitHub pomůže zákazníkům Microsoft sledovat průběh vývoje, experimentovat s nejnovějšími změnami a pomáhat recenzovat příchozí žádosti o přidání novinek.
Otevření kódu rovněž umožní komunitě využít hotové implementace možností z nových standardů v jiných projektech. Například, licence pro kód byla zvolena tak, aby umožnila sdílení kódu s knihovnou z projektu LLVM. STL a libc++ se liší vnitřním zastoupením datových struktur, ale vývojáři libc++ mohou na žádost portovat požadovanou funkčnost ze STL (například charconv) nebo oba projekty společně mohou vyvíjet nějaké novinky. Výjimky přidané do licence Apache ruší požadavky na zmínku o použití původního produktu při dodávání koncovým uživatelům binárních souborů zkompilovaných se STL.
Hlavním cílem projektu je plné dodržování požadavků specifikací, zajištění vysokého výkonu, použitelnost (nástroje pro ladění, diagnostiku, odhalování chyb) a kompatibilita na úrovni zdrojových kódů a ABI s předchozími verzemi Visual Studio 2015/2017. Mezi oblastmi, kterými se Microsoft nechce zabývat, je přenos na jiné platformy a přidávání nestandardních rozšíření.
Zdroj: opennet.ru
