Das Repository enthält den Abseil C++-Bibliothekscode. Abseil ist eine Open-Source-Sammlung von C++-Code (konform mit C++14), die zur Erweiterung der C++-Standardbibliothek entwickelt wurde.
Über Abseilen
Schnellstart
Abseilen bauen
Unterstützung
Codemap
Veröffentlichungen
Lizenz
Links
Abseil ist eine Open-Source-Sammlung von C++-Bibliothekscode, die zur Erweiterung der C++-Standardbibliothek entwickelt wurde. Der Code der Abseil-Bibliothek stammt aus Googles eigener C++-Codebasis, wurde ausgiebig getestet und in der Produktion verwendet und ist derselbe Code, auf den wir in unserem täglichen Leben als Programmierer angewiesen sind.
In einigen Fällen stellt Abseil Teile bereit, die im C++-Standard fehlen; In anderen Fällen bietet Abseil Alternativen zum Standard für spezielle Anforderungen, die wir durch die Verwendung in der Google-Codebasis gefunden haben. Wir kennzeichnen diese Fälle deutlich im Bibliothekscode, den wir Ihnen zur Verfügung stellen.
Abseil soll kein Konkurrent der Standardbibliothek sein; Wir haben gerade festgestellt, dass viele dieser Dienstprogramme innerhalb unserer Codebasis einen Zweck erfüllen, und wir möchten diese Ressourcen nun der gesamten C++-Community zur Verfügung stellen.
Wenn Sie einfach anfangen möchten, stellen Sie sicher, dass Sie zumindest den Abseil Quickstart durchgehen. Der Quickstart enthält Informationen zum Einrichten Ihrer Entwicklungsumgebung, zum Herunterladen des Abseil-Codes, zum Ausführen von Tests und zum Ausführen einer einfachen Binärdatei.
Bazel und CMake sind die offiziellen Buildsysteme für Abseil. Weitere Informationen zum Erstellen von Abseil mit dem Bazel-Build-System finden Sie im Schnellstart. Wenn Sie CMake-Unterstützung benötigen, lesen Sie bitte die CMake-Build-Anweisungen und den CMake-Schnellstart.
Abseil befolgt die Foundational C++ Support Policy von Google. In dieser Tabelle finden Sie eine Liste der derzeit unterstützten Versionen von Compilern, Plattformen und Build-Tools.
Abseil enthält die folgenden C++-Bibliothekskomponenten:
base
Die base
enthält Initialisierungscode und anderen Code, von dem der gesamte andere Abseil-Code abhängt. Der Code innerhalb base
darf nicht von anderem Code (außer der C++-Standardbibliothek) abhängen.
algorithm
Die algorithm
enthält Ergänzungen zur C++
-Bibliothek und Container-basierte Versionen solcher Algorithmen.
cleanup
Die cleanup
enthält den kontrollflusskonstruktähnlichen Typ absl::Cleanup
der zum Ausführen eines Rückrufs beim Beenden des Bereichs verwendet wird.
container
Die container
enthält zusätzliche Container im STL-Stil, einschließlich der ungeordneten „Swiss Table“-Container von Abseil.
crc
Die crc
-Bibliothek enthält Code zur Berechnung fehlererkennender zyklischer Redundanzprüfungen für Daten.
debugging
Die debugging
Bibliothek enthält nützlichen Code zum Aktivieren von Leckprüfungen sowie Stacktrace- und Symbolisierungsdienstprogramme.
flags
Die flags
-Bibliothek enthält Code zur Handhabung von Befehlszeilen-Flags für Bibliotheken und Binärdateien, die mit Abseil erstellt wurden.
hash
Die hash
-Bibliothek enthält das Hashing-Framework und Standard-Hash-Funktor-Implementierungen für hashbare Typen in Abseil.
log
Die log
enthält LOG
und CHECK
Makros sowie Funktionen zum Schreiben protokollierter Nachrichten auf Festplatte, stderr
oder vom Benutzer erweiterbare Ziele.
memory
Die memory
enthält Speicherverwaltungsfunktionen, die
-Bibliothek von C++ erweitern.
meta
Die meta
enthält kompatible Versionen von Typprüfungen, die in den C++14- und C++17-Versionen der C++
-Bibliothek verfügbar sind.
numeric
Die numeric
Bibliothek enthält 128-Bit-Integer-Typen sowie Implementierungen der bitweisen mathematischen Funktionen von C++20.
profiling
Die profiling
Bibliothek enthält Dienstprogrammcode zum Profilieren von C++-Entitäten. Es ist derzeit eine private Abhängigkeit von anderen Abseil-Bibliotheken.
random
Die random
enthält Funktionen zur Generierung pseudozufälliger Werte.
status
Die status
enthält Abstraktionen für die Fehlerbehandlung, insbesondere absl::Status
und absl::StatusOr
.
strings
Die strings
-Bibliothek enthält eine Vielzahl von Strings-Routinen und Dienstprogrammen, einschließlich einer C++14-kompatiblen Version des C++17-Typs std::string_view
.
synchronization
Die synchronization
enthält Parallelitätsprimitive (Abseils absl::Mutex
Klasse, eine Alternative zu std::mutex
) und eine Vielzahl von Synchronisationsabstraktionen.
time
Die time
enthält Abstraktionen für die Berechnung mit absoluten Zeitpunkten, Zeitdauern sowie Formatierungs- und Analysezeiten innerhalb von Zeitzonen.
types
Die types
enthält Nicht-Container-Dienstprogrammtypen, wie eine C++14-kompatible Version des C++17-Typs std::optional
.
utility
Die utility
enthält Dienstprogramm- und Hilfscode.
Abseil empfiehlt Benutzern „Live-at-Head“ (so oft wie möglich auf den neuesten Commit aus dem Master-Zweig aktualisieren). Wir sind uns jedoch bewusst, dass diese Philosophie nicht für jedes Projekt funktioniert. Deshalb bieten wir auch Langzeit-Support-Releases an, in die wir Korrekturen für schwerwiegende Fehler zurückportieren. Weitere Informationen finden Sie in unserem Release-Management-Dokument.
Die Abseil C++-Bibliothek ist unter den Bedingungen der Apache-Lizenz lizenziert. Weitere Informationen finden Sie unter LIZENZ.
Weitere Informationen zum Thema Abseilen:
Konsultieren Sie unsere Abseil-Einführung
Lesen Sie Warum Abseil einführen, um unsere Designphilosophie zu verstehen.
Sehen Sie sich unsere Abseil-Kompatibilitätsgarantien an, um zu verstehen, was wir Ihnen versprechen und was wir im Gegenzug von Ihnen erwarten.