
Microsoft logó
A CppCon 2019 konferencián amit napjainkban ünnepeltek, a Microsoft képviselői éltek az alkalommal, hogy bejelentették a kód megnyitását megvalósításához a C ++ szabványos könyvtárból (más néven STL), amely az MSVC Toolkit és a Visual Studio fejlesztői környezet része.
A könyvtár megvalósítja a jelenlegi C ++ 14 és C ++ 17 szabványokban leírt képességeket, és a jövőbeni C ++ 20 szabvány támogatásának irányába is fejlesztették, a jelenlegi munkadokumentumban bekövetkezett változásokat követve.
Által az okok, amelyek miatt a Microsoft emberei úgy döntöttek, hogy megteszik ezt a lépést, a nyilatkozatban kifejtik:
Ennek számos oka van, egyikük az, hogy a GitHubon dolgozzunk az STL-en, ez lehetővé teszi ügyfeleink számára, hogy kövessék a fejlődésünket, ahogy bekövetkezik, teszteljék a legújabb változásainkat, és ezek felülvizsgálatával javítani tudják a húzási kérelmeket.
Mivel a C ++ szabványosítás felgyorsul, és minden évben nagyobb jellemzőket szavaznak meg, fontosnak tartjuk, hogy az alapvető jellemzőket nyílt forráskódú hozzájárulásokként fogadjuk el. (Például a C ++ 20 formátum és az időrendi könyvtárak potenciális jelöltek.) Ezenkívül szeretnénk hozzájárulni a C ++ közösséghez azáltal, hogy lehetővé teszik alapvető funkcióink megvalósítását. (Például charconv a C ++ 17-ből)
Azzal A Microsoft munkatársai tudtára adták, hogy a könyvtár továbbfejlesztését nyitott projektként tervezik amelyet a GitHubon fejlesztenek ki, amely külső fejlesztőktől érkező kéréseket fogadja el javításokkal és új funkciók megvalósításával (a fejlesztésben való részvételhez CLA-megállapodás szükséges az átadott kód tulajdonjogainak átadásához).
Megfigyelhető, hogy A fejlesztés STL-ről a GitHub-ra való átvitele segít a Microsoft ügyfeleinek Kövesse nyomon a fejlesztés előrehaladását, kísérletezzen a legújabb változásokkal, és segítsen áttekinteni a beérkező innovációs kérelmeket.
Nyissa meg a kódot is lehetővé teszi a közösség számára, hogy kész megvalósításokat használjon új szabványok lehetőségei más projektekben.
A könyvtár kódjának licencéről Nyíltnak javasoljuk az Apache 2.0 licenc alatt, kivéve azokat a bináris fájlokat, amelyek megoldják azt a problémát, hogy a futásidejű könyvtárak bekerüljenek a létrehozott futtatható fájlokba.
Hogy világos legyek, Az MSVC STL nem egyesül a libc ++ rendszerrel, mivel ezek továbbra is külön könyvtárak.
A Microsoft elmagyarázza a kódlicenc miértjét úgy van kiválasztva, hogy lehetővé tegye a kódcserét az LLVM projekt libc ++ könyvtárával. Az STL és a libc ++ különbözik az adatstruktúrák belső reprezentációjától, de ha akarják, a libc ++ fejlesztők érdekes STL funkciókat (például charconv) portolhatnak, vagy mindkét projekt közösen fejleszthet néhány újítást.
Az MSVC STL az Apache v2.0 licenc alatt terjesztésre kerül, LLVM kivételekkel, amelyet nemrégiben a Clang / LLVM / libc ++ projekt hozott létre.
Az Apache licenchez hozzáadott kivételekkel megszűnik az a követelmény, hogy megemlítsék a forrás termék használatát az STL által lefordított bináris fájlok végfelhasználóknak történő kézbesítésekor.
Ezt a megengedő nyílt forráskódú licencet azért választották, mert ugyanazzal a licenccel rendelkezik, mint a libc ++ ami megkönnyíti a kódok megosztását a könyvtárak között. Az egyértelműség érdekében az MSVC STL-t nem egyesítik a libc ++ -val; továbbra is külön könyvtárak, amelyek különböző platformokat támogatnak, eltérő adatszerkezeti ábrázolással.
Másrészt a projekt egyik kulcsfontosságú célját a követelményeknek való teljes megfelelésnek nevezik specifikációk, biztosítva a nagy teljesítményt, az egyszerű kezelhetőséget (hibakeresés, diagnosztika, hibakereső eszközök), valamint a forrás és az ABI szintű kompatibilitást a Visual Studio 2015/2017 korábbi verzióival.
A területek között, amelyek A Microsoft nem érdekli a más platformokra való hordozhatóság fejlesztését és az egyéni kiterjesztések hozzáadását.
Ha többet szeretne megtudni a Microsoft nyilatkozatáról, akkor megismerheti azt A következő linken.