Le référentiel contient le code de la bibliothèque Abseil C++. Abseil est une collection open source de code C++ (conforme à C++14) conçue pour augmenter la bibliothèque standard C++.
À propos du rappel
Démarrage rapide
Construction d'un rappel
Soutien
Carte de code
Sorties
Licence
Links
Abseil est une collection open source de code de bibliothèque C++ conçue pour augmenter la bibliothèque standard C++. Le code de la bibliothèque Abseil est collecté à partir de la propre base de code C++ de Google, a été largement testé et utilisé en production, et c'est le même code dont nous dépendons dans notre vie quotidienne de codage.
Dans certains cas, Abseil fournit des éléments manquants au standard C++ ; dans d'autres, Abseil propose des alternatives à la norme pour les besoins spéciaux que nous avons trouvés grâce à l'utilisation dans la base de code de Google. Nous indiquons clairement ces cas dans le code de bibliothèque que nous vous fournissons.
Abseil n'est pas censé être un concurrent de la bibliothèque standard ; nous venons de découvrir que bon nombre de ces utilitaires remplissent une fonction dans notre base de code, et nous souhaitons désormais fournir ces ressources à la communauté C++ dans son ensemble.
Si vous souhaitez simplement commencer, assurez-vous d'avoir au moins suivi le démarrage rapide en rappel. Le Quickstart contient des informations sur la configuration de votre environnement de développement, le téléchargement du code Abseil, l'exécution de tests et le fonctionnement d'un binaire simple.
Bazel et CMake sont les systèmes de construction officiels pour Abseil. Consultez le démarrage rapide pour plus d'informations sur la construction d'Abseil à l'aide du système de construction Bazel. Si vous avez besoin de la prise en charge de CMake, veuillez consulter les instructions de construction de CMake et le démarrage rapide de CMake.
Abseil suit la politique de support C++ fondamentale de Google. Consultez ce tableau pour obtenir une liste des versions actuellement prises en charge par les compilateurs, les plates-formes et les outils de génération.
Abseil contient les composants de bibliothèque C++ suivants :
base
La bibliothèque base
contient du code d'initialisation et d'autres codes dont dépendent tous les autres codes Abseil. Le code dans base
ne peut dépendre d'aucun autre code (autre que la bibliothèque standard C++).
algorithm
La bibliothèque algorithm
contient des ajouts à la bibliothèque
C++ et des versions basées sur des conteneurs de ces algorithmes.
cleanup
La bibliothèque cleanup
contient le type absl::Cleanup
de type control-flow-construct qui est utilisé pour exécuter un rappel à la sortie de la portée.
container
La bibliothèque container
contient des conteneurs supplémentaires de style STL, y compris les conteneurs non ordonnés « table suisse » d'Abseil.
crc
La bibliothèque crc
contient du code pour calculer les contrôles de redondance cyclique de détection d'erreurs sur les données.
debugging
La bibliothèque debugging
contient du code utile pour activer les contrôles de fuite, ainsi que les utilitaires de stacktrace et de symbolisation.
flags
La bibliothèque flags
contient du code pour gérer les indicateurs de ligne de commande pour les bibliothèques et les binaires construits avec Abseil.
hash
La bibliothèque hash
contient le cadre de hachage et les implémentations de foncteurs de hachage par défaut pour les types hachables dans Abseil.
log
La bibliothèque log
contient des macros LOG
et CHECK
et des fonctionnalités permettant d'écrire des messages consignés sur le disque, stderr
ou des destinations extensibles par l'utilisateur.
memory
La bibliothèque memory
contient des fonctionnalités de gestion de mémoire qui augmentent la bibliothèque
de C++.
meta
La meta
contient des versions compatibles des vérifications de type disponibles dans les versions C++14 et C++17 de la bibliothèque C++
.
numeric
La bibliothèque numeric
contient des types entiers de 128 bits ainsi que des implémentations des fonctions mathématiques au niveau du bit de C++20.
profiling
La bibliothèque profiling
contient un code utilitaire pour profiler les entités C++. C'est actuellement une dépendance privée d'autres bibliothèques Abseil.
random
La bibliothèque random
contient des fonctions permettant de générer des valeurs pseudo-aléatoires.
status
La bibliothèque status
contient des abstractions pour la gestion des erreurs, en particulier absl::Status
et absl::StatusOr
.
strings
La bibliothèque strings
contient une variété de routines et d'utilitaires de chaînes, y compris une version compatible C++14 du type std::string_view
C++17.
synchronization
La bibliothèque synchronization
contient des primitives de concurrence (la classe absl::Mutex
d'Abseil, une alternative à std::mutex
) et une variété d'abstractions de synchronisation.
time
La bibliothèque time
contient des abstractions pour le calcul de points temporels absolus, de durées, ainsi que pour le formatage et l'analyse du temps dans les fuseaux horaires.
types
La bibliothèque types
contient des types d'utilitaires non conteneurs, comme une version compatible C++14 du type std::optional
C++17.
utility
La bibliothèque utility
contient du code utilitaire et d'assistance.
Abseil recommande aux utilisateurs de "live-at-head" (mettre à jour le plus souvent possible le dernier commit de la branche master). Cependant, nous réalisons que cette philosophie ne fonctionne pas pour tous les projets, c'est pourquoi nous fournissons également des versions de support à long terme dans lesquelles nous rétroportons les correctifs pour les bogues graves. Consultez notre document de gestion des versions pour plus de détails.
La bibliothèque Abseil C++ est sous licence selon les termes de la licence Apache. Voir LICENCE pour plus d’informations.
Pour plus d’informations sur la descente en rappel :
Consultez notre introduction au rappel
Lisez Pourquoi adopter Abseil pour comprendre notre philosophie de conception.
Parcourez nos garanties de compatibilité en rappel pour comprendre à la fois ce que nous vous promettons et ce que nous attendons de vous en retour.