Microsoft hat den Standard-C ++ - Bibliothekscode in Visual Studio veröffentlicht

Microsoft-Logo

Microsoft-Logo

Auf der CppCon 2019 Konferenz das wurde in diesen Tagen gefeiert, Die Vertreter von Microsoft nutzten die Gelegenheit, um die Eröffnung des Codes anzukündigen für seine Umsetzung aus der C ++ Standard Library (auch als STL bekannt), das Teil des MSVC Toolkit und der Visual Studio-Entwicklungsumgebung ist.

Die Bibliothek implementiert die in den aktuellen C ++ 14- und C ++ 17-Standards beschriebenen Funktionen. Es wurde auch entwickelt, um den zukünftigen C ++ 20-Standard nach den Änderungen im aktuellen Arbeitsentwurf zu unterstützen.

Durch die Gründe, warum sich die Leute bei Microsoft für diesen Schritt entschieden haben, in der Aussage erklären sie:

Es gibt mehrere Gründe, warum wir dies tun. Einer davon ist die Arbeit an der STL auf GitHub. Auf diese Weise können unsere Kunden unsere Entwicklung verfolgen, unsere neuesten Änderungen testen und uns helfen, unsere Pull-Anforderungen zu verbessern, indem wir sie überprüfen.

Da die C ++ - Standardisierung beschleunigt wird und jedes Jahr über größere Funktionen abgestimmt wird, halten wir es für wichtig, die Kernfunktionen als Open-Source-Beiträge zu akzeptieren. (Beispielsweise sind das C ++ 20-Format und chronologische Bibliotheken potenzielle Kandidaten.) Wir möchten auch einen Beitrag zur C ++ - Community leisten, indem wir die Implementierung unserer Kernfunktionen ermöglichen. (Zum Beispiel charconv aus C ++ 17)

Mit ihm Microsoft-Mitarbeiter haben bekannt gegeben, dass sie planen, diese Bibliothek als offenes Projekt weiterzuentwickeln Dies wird auf GitHub entwickelt, das Pull-Anfragen von externen Entwicklern mit Korrekturen und der Implementierung neuer Funktionen akzeptiert (um an der Entwicklung teilnehmen zu können, ist eine CLA-Vereinbarung erforderlich, um die Eigentumsrechte auf den übertragenen Code zu übertragen).

Es wird beobachtet, dass Die Übertragung der Entwicklung von STL auf GitHub hilft Microsoft-Kunden dabei Verfolgen Sie den Entwicklungsfortschritt, experimentieren Sie mit den neuesten Änderungen und helfen Sie dabei, eingehende Anfragen nach Innovationen zu überprüfen.

Öffnen Sie auch den Code Ermöglichen Sie der Community, vorgefertigte Implementierungen zu verwenden Möglichkeiten für neue Standards in anderen Projekten.

Über die Lizenz des Codes dieser Bibliothek, Es wird unter der Apache 2.0-Lizenz als offen vorgeschlagen, mit Ausnahmen für Binärdateien, die das Problem lösen, Laufzeitbibliotheken in die Zusammensetzung der generierten ausführbaren Dateien einzubeziehen.

Deutlich sein, MSVC STL wird nicht mit libc ++ zusammengeführt, da es sich immer noch um separate Bibliotheken handelt.

Microsoft erklärt, warum die Codelizenz wird so ausgewählt, dass ein Code-Austausch mit der libc ++ - Bibliothek des LLVM-Projekts möglich ist. STL und libc ++ unterscheiden sich in der internen Darstellung von Datenstrukturen. Wenn sie dies wünschen, können libc ++ - Entwickler interessante STL-Funktionen (z. B. charconv) verwenden oder beide Projekte können gemeinsam einige Innovationen entwickeln.

MSVC STL wird unter der Apache v2.0-Lizenz mit LLVM-Ausnahmen vertrieben, die kürzlich vom Clang / LLVM / libc ++ - Projekt erstellt wurde.

Die der Apache-Lizenz hinzugefügten Ausnahmen heben die Anforderung auf, die Verwendung des Quellprodukts bei der Bereitstellung von STL-kompilierten Binärdateien an Endbenutzer zu erwähnen.

Diese zulässige Open Source-Lizenz wurde ausgewählt, weil sie dieselbe Lizenz wie libc ++ hat Dies erleichtert das Teilen von Code zwischen Bibliotheken. Um klar zu sein, wird die MSVC STL nicht mit libc ++ zusammengeführt. Es handelt sich immer noch um unterschiedliche Bibliotheken, die unterschiedliche Plattformen mit unterschiedlichen Datenstrukturdarstellungen unterstützen.

Andererseits ist eines der Hauptziele des Projekts die vollständige Einhaltung der Anforderungen Spezifikationen, die eine hohe Leistung, Benutzerfreundlichkeit (Debugging, Diagnose, Fehlererkennungstools) sowie Kompatibilität auf Quell- und ABI-Ebene mit früheren Versionen von Visual Studio 2015/2017 gewährleisten.

Unter den Bereichen, die Microsoft ist nicht daran interessiert, Portabilität auf andere Plattformen zu entwickeln und benutzerdefinierte Erweiterungen hinzuzufügen.

Wenn Sie mehr über die Aussage von Microsoft erfahren möchten, können Sie diese konsultieren im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.