-9ee91d3e43Export of internal Abseil changes by Abseil Team <absl-team@google.com> -8efba58a3bExport of internal Abseil changes by Abseil Team <absl-team@google.com> -b49b8d16b6Export of internal Abseil changes by Abseil Team <absl-team@google.com> -67222ffc4cExport of internal Abseil changes by Abseil Team <absl-team@google.com> -c5c4db4f51Export of internal Abseil changes by Abseil Team <absl-team@google.com> -14550beb3bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -52e88ee56bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -36d37ab992Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -ad1485c898Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -f3840bc5e3Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -278b26058cExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -c6c3c1b498Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -44efe96dfcExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -3c98fcc046Merge pull request #340 from jtsylve/macos_cxx17_fix by Matt Calabrese <38107210+mattcalabrese-google@users.noreply.github.com> -74d91756c1Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -e6b050212cExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -c964fcffacExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -72e09a54d9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -d65e19dfcdExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -5162fc83d2Merge pull request #336 from shields/patch-2 by Shaindel Schwartz <31392632+shaindelschwartz@users.noreply.github.com> -0389f7bf58Merge pull request #335 from shields/patch-1 by Shaindel Schwartz <31392632+shaindelschwartz@users.noreply.github.com> -e9324d926aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -43ef2148c0Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -a13d3df2b3Merge pull request #323 from gosnik/master by Gennadiy Rozental <rogeeff@google.com> -310a11865cMerge pull request #324 from RasPat1/patch-1 by Gennadiy Rozental <rogeeff@google.com> -8f11724067Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -b1dd425423Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -361cb8a9dbExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -0238ab0a83Merge pull request #321 from christoph-cullmann/c4245_fix... by Xiaoyi Zhang <zhangxy988@gmail.com> -61c9bf3e3eExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -bc9101f998Merge pull request #320 from christoph-cullmann/master by Xiaoyi Zhang <zhangxy988@gmail.com> -2f76a9bf50Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -4adaf54909Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -27c30ec671Avoid undefined behavior when nullptr is passed to memcpy... by Roman Gershman <romange@gmail.com> -ce65f5ac3cExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -a18fc7461eExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -8a394b19c1Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -daf381e853Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -fa00c32107Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -436ba6c4a0Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -0cbdc774b9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -27c2f6e2f3Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -aa468ad755Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -cd86d0d20aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -33841c5c96Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -ca3f87560aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -d902eb869bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -a02f62f456Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -0b545b4601Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -dbae8764fbExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -044da8a29cExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -6cc6ac44e0Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -666fc1266bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -93dfcf74cbExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -2c8421e1c6Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -5b65c4af51Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -eab2078b53Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -253eb74164[CMake] Set correct flags for clang-cl (#278) by Loo Rong Jie <loorongjie@gmail.com> -e75672f6afExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -bf29470384Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -6fd827124fMerge pull request #280 from chiumichael/master by Derek Mauro <761129+derekmauro@users.noreply.github.com> -7c7754fb3eExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -256be56344Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -88a152ae74Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -c1cecb25a9Implement Span::first and Span::last from C++20 (#274) by Girts <girtsf@users.noreply.github.com> -38b704384cChanged HTTP URLs to HTTPS where possible (#270) by nik7273 <nik8470@gmail.com> -febc5ee6a9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -9fdf5e5b80Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -419f3184f8Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -b312c3cb53Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -308ce31528Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -93d155bc44Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -426eaa4aa4Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -2901ec32a9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -d78310fe5aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -a4cb1c8ba6Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -540e2537b9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -89ea0c5ff3Merge pull request #255 from uilianries/hotfix/conan by ahedberg <ahedberg@google.com> -5e0dcf72c6Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -0dffca4e36Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -6b4201f9efFix GCC8 warnings by Boris Staletic <boris.staletic@gmail.com> -0b1e6d417bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -efccc50260Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -5e6a78131fExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -5eea0f713cExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -66f9becbb9Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -018b4db1d7Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -9449ae9439Merge pull request #243 from ThomsonTan/FixIntrinsic by Alex Strelnikov <strel@google.com> -b16aeb6756Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -7ffbe09f3dExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -01b471d9f3Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -7bd8f36c74Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -968a34ffdaExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -3e2e9b5557Merge pull request #231 from uilianries/feature/conan by Mark Barolak <mbxx@users.noreply.github.com> -111ca7060aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -389ec3f906Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -8fbcdb9095Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -455dc17ba1Export of internal Abseil changes. by Abseil Team <absl-team@google.com> -f197d7c72aExport of internal Abseil changes. by Abseil Team <absl-team@google.com> -284378a71bExport of internal Abseil changes. by Abseil Team <absl-team@google.com> GitOrigin-RevId:9ee91d3e43Change-Id: Ia06e548bc106cc9d136f6c65714be6645317aced
Abseil - C++ Common Libraries
The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++11) designed to augment the C++ standard library.
Table of Contents
About Abseil
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.
Quickstart
If you want to just get started, make sure you at least run through the Abseil Quickstart. The Quickstart contains information about setting up your development environment, downloading the Abseil code, running tests, and getting a simple binary working.
Building Abseil
Bazel is the official build system for Abseil, which is supported on most major platforms (Linux, Windows, macOS, for example) and compilers. See the quickstart for more information on building Abseil using the Bazel build system.
If you require CMake support, please check the CMake build instructions.
Codemap
Abseil contains the following C++ library components:
baseAbseil Fundamentals
Thebaselibrary contains initialization code and other code which all other Abseil code depends on. Code withinbasemay not depend on any other code (other than the C++ standard library).algorithm
Thealgorithmlibrary contains additions to the C++<algorithm>library and container-based versions of such algorithms.container
Thecontainerlibrary contains additional STL-style containers, including Abseil's unordered "Swiss table" containers.debugging
Thedebugginglibrary contains code useful for enabling leak checks, and stacktrace and symbolization utilities.hash
Thehashlibrary contains the hashing framework and default hash functor implementations for hashable types in Abseil.memory
Thememorylibrary contains C++11-compatible versions ofstd::make_unique()and related memory management facilities.meta
Themetalibrary contains C++11-compatible versions of type checks available within C++14 and C++17 versions of the C++<type_traits>library.numeric
Thenumericlibrary contains C++11-compatible 128-bit integers.strings
Thestringslibrary contains a variety of strings routines and utilities, including a C++11-compatible version of the C++17std::string_viewtype.synchronization
Thesynchronizationlibrary contains concurrency primitives (Abseil'sabsl::Mutexclass, an alternative tostd::mutex) and a variety of synchronization abstractions.time
Thetimelibrary contains abstractions for computing with absolute points in time, durations of time, and formatting and parsing time within time zones.types
Thetypeslibrary contains non-container utility types, like a C++11-compatible version of the C++17std::optionaltype.utility
Theutilitylibrary contains utility and helper code.
License
The Abseil C++ library is licensed under the terms of the Apache license. See LICENSE for more information.
Links
For more information about Abseil:
- Consult our Abseil Introduction
- Read Why Adopt Abseil to understand our design philosophy.
- Peruse our Abseil Compatibility Guarantees to understand both what we promise to you, and what we expect of you in return.