KÀimasoleval CppCon 2019 konverentsil teatas Microsoft oma C++ standardraamatukogu (STL, C++ Standard Library) koodi avamisest, mis on osa MSVC tööriistadest ja Visual Studio arenduskeskkonnast. Raamatukogu rakendab vÔimalusi, mis on kirjeldatud kehtivates C++14 ja C++17 standardites, ning areneb ka tulevase C++20 standardi toe suunas, jÀrgides muutusi praegustes töömustrites. Kood on avaldatud Apache 2.0 litsentsi all, sealhulgas erandid binaarfailide jaoks, mis lahendavad probleemi runtime-raamatukogude kaasamisega genereeritud tÀitmisfailidesse.
Selle raamatukogu arendamine plaanitakse edaspidi kui avatud projekt, mida arendatakse GitHubis, kus kolmandate osapoolte arendajad saavad esitada pull-pĂ€ringuid paranduste ja uute vĂ”imaluste elluviimisega (arenduses osalemiseks on nĂ”utud CLA-lepingu sĂ”lmimine, mis annab ĂŒle Ă”igused edastatud koodile). MĂ€rgitakse, et STL arendamise ĂŒleminek GitHubile aitab Microsofti klientidel jĂ€lgida arenduse kulgu, katsetada uusimaid muudatusi ja aidata tĂ€iustuste lisamise pĂ€ringute ĂŒlevaatamisel.
Koodi avamine vĂ”imaldab ka kogukonnal kasutada uute standardite realiseerimiseid teistes projektides. NĂ€iteks on koodile valitud litsents selliselt, et vĂ”imaldada koodi jagamist LLVM projekti raamatukoguga. STL ja libc++ erinevad sisemiste andmestruktuuride esitlemisel, kuid vajadusel saavad libc++ arendajad portida huvipakkuvaid funktsioone STL-ist (nĂ€iteks charconv) vĂ”i mĂ”lemad projektid saavad ĂŒhiselt arendada mĂ”ningaid uuendusi. Apache litsentsi lisatud erandid tĂŒhistavad nĂ”uded originaaltoote kasutamise mainimisele lĂ”ppkasutajatele binaarfailide tarnimisel, mis on koostatud STL-iga.
Projektile seatud peamisteks eesmĂ€rkideks on vastavus spetsifikatsioonide nĂ”uetele, kĂ”rge jĂ”udlus, kasutusmugavus (silumise, diagnostika, veateadete vahendid) ja lĂ€htekoodi ning ABI ĂŒhilduvus varasemate Visual Studio 2015/2017 vĂ€ljaannetega. Microsofti poolt arendamiseks ebasoovitavate valdkondade seas on muudele platvormidele portimine ja mitte-standardsete laienduste lisamine.
Allikas: opennet.ru
