Microsoft avoimen lähdekoodin C++-standardikirjasto, joka sisältyy Visual Studioon

Näinä päivinä järjestettävässä CppCon 2019 -konferenssissa Microsoft ilmoitti hänen C++ Standard Libraryn (STL, C++ Standard Library) toteutuksen koodin avaamisesta, joka on osa MSVC-työkalupakkia ja Visual Studio -kehitysympäristöä. Kirjasto toteuttaa nykyisissä C++14- ja C++17-standardeissa kuvattuja ominaisuuksia, ja se on myös kehittymässä kohti tukea tulevalle C++20-standardille nykyisen työluonnoksen muutosten seurauksena. Koodi on auki Apache 2.0 -lisenssillä lukuun ottamatta binääritiedostoja, jotka ratkaisevat ajonaikaisten kirjastojen sisällyttämisen luotuihin suoritettaviin tiedostoihin.

Tämän kirjaston kehitystä on jatkossa tarkoitus toteuttaa avoimena GitHubissa kehitettävänä projektina, jossa otetaan vastaan ​​ulkopuolisten kehittäjien vetopyyntöjä korjauksilla ja uusien ominaisuuksien käyttöönotolla (kehitykseen osallistuminen edellyttää CLA-sopimuksen allekirjoittamista siirrosta omistusoikeuksista siirrettyyn koodiin). On huomattava, että STL-kehityksen siirtäminen GitHubiin auttaa Microsoftin asiakkaita seuraamaan kehityksen edistymistä, kokeilemaan uusimpia muutoksia ja arvioimaan saapuvia innovaatioiden lisäyspyyntöjä.

Avoimen lähdekoodin avulla yhteisö voi myös käyttää uusien standardien ominaisuuksien valmiita toteutuksia muissa projekteissa. Esimerkiksi koodilisenssi valitaan mahdollistamaan koodin jakaminen kirjaston kanssa libc++ LLVM-projektista. STL ja libc++ eroavat tietorakenteiden sisäisestä esityksestä, mutta haluttaessa libc++-kehittäjät voivat siirtää kiinnostavia toimintoja STL:stä (esim. charconv) tai molemmat projektit voivat yhdessä kehittää joitain innovaatioita. Apache-lisenssiin lisätyt poikkeukset poistavat vaatimuksen viitata alkuperäisen tuotteen käyttöön toimitettaessa loppukäyttäjille STL:llä koottuja binaaritiedostoja.

Projektin keskeisiä tavoitteita ovat spesifikaatiovaatimusten täyttäminen, korkean suorituskyvyn varmistaminen, helppokäyttöisyys (virheenkorjaustyökalut, diagnostiikka, virheiden havaitseminen) sekä lähdekooditason ja ABI:n yhteensopivuus Visual Studio 2015/2017 aiempien julkaisujen kanssa. Niitä alueita, joita Microsoft ei ole kiinnostunut kehittämään, ovat siirtäminen muille alustoille ja epätyypillisten laajennusten lisääminen.

Lähde: opennet.ru

Lisää kommentti