该存储库包含 Abseil C++ 库代码。 Abseil 是 C++ 代码的开源集合(符合 C++14),旨在增强 C++ 标准库。
关于绕绳下降
快速入门
建造绕绳下降
支持
代码图
发布
执照
链接
Abseil 是 C++ 库代码的开源集合,旨在增强 C++ 标准库。 Abseil 库代码是从 Google 自己的 C++ 代码库中收集的,经过了广泛的测试并在生产中使用,与我们日常编码生活中依赖的代码相同。
在某些情况下,Abseil 提供了 C++ 标准中缺失的部分;在其他方面,Abseil 提供了标准的替代方案,以满足我们通过在 Google 代码库中使用发现的特殊需求。我们在为您提供的库代码中清楚地指出了这些情况。
Abseil 并不是标准库的竞争对手;它是标准库的竞争对手。我们刚刚发现其中许多实用程序在我们的代码库中都有其用途,现在我们希望向整个 C++ 社区提供这些资源。
如果您想开始,请确保您至少完成了速降快速入门。快速入门包含有关设置开发环境、下载 Abseil 代码、运行测试以及使简单的二进制文件运行的信息。
Bazel 和 CMake 是 Abseil 的官方构建系统。有关使用 Bazel 构建系统构建 Abseil 的更多信息,请参阅快速入门。如果您需要 CMake 支持,请查看 CMake 构建说明和 CMake 快速入门。
Abseil 遵循 Google 的基础 C++ 支持政策。请参阅此表以获取当前支持的版本编译器、平台和构建工具的列表。
Abseil 包含以下 C++ 库组件:
base
base库包含初始化代码和所有其他 Abseil 代码所依赖的其他代码。 base中的代码可能不依赖于任何其他代码(C++ 标准库除外)。
algorithm
该algorithm库包含 C++ <algorithm>库的补充以及此类算法的基于容器的版本。
cleanup
cleanup库包含类似控制流构造的类型absl::Cleanup ,用于在范围退出时执行回调。
container
container库包含其他 STL 样式容器,包括 Abseil 的无序“瑞士表”容器。
crc crc库包含用于计算数据错误检测循环冗余校验的代码。
debugging
debugging库包含可用于启用泄漏检查、堆栈跟踪和符号化实用程序的代码。
flags
flags库包含用于处理使用 Abseil 构建的库和二进制文件的命令行标志的代码。
hash
hash库包含 Abseil 中可哈希类型的哈希框架和默认哈希函子实现。
log
log库包含LOG和CHECK宏以及用于将记录的消息写入磁盘、 stderr或用户可扩展目标的工具。
memory
memory库包含内存管理工具,可增强 C++ 的<memory>库。
meta
meta库包含 C++ <type_traits>库的 C++14 和 C++17 版本中可用的类型检查的兼容版本。
numeric
该numeric库包含 128 位整数类型以及 C++20 按位数学函数的实现。
profiling
profiling库包含用于分析 C++ 实体的实用程序代码。 目前它是其他 Abseil 库的私有依赖项。
random
random库包含用于生成伪随机值的函数。
status
status库包含错误处理的抽象,特别是absl::Status和absl::StatusOr<T> 。
strings
strings库包含各种字符串例程和实用程序,包括 C++17 std::string_view类型的 C++14 兼容版本。
synchronization
synchronization库包含并发原语(Abseil 的absl::Mutex类, std::mutex的替代品)和各种同步抽象。
time
time库包含用于计算绝对时间点、时间持续时间以及时区内格式化和解析时间的抽象。
types
types库包含非容器实用程序类型,例如 C++17 std::optional类型的 C++14 兼容版本。
utility
utility库包含实用程序和帮助程序代码。
Abseil 建议用户“live-at-head”(尽可能频繁地更新到主分支的最新提交)。然而,我们意识到这种理念并不适用于每个项目,因此我们还提供长期支持版本,我们向后移植严重错误的修复程序。有关更多详细信息,请参阅我们的发布管理文档。
Abseil C++ 库根据 Apache 许可证条款获得许可。请参阅许可证了解更多信息。
有关绳降的更多信息:
请参阅我们的绕绳下降简介
请阅读为什么采用 Abseil 以了解我们的设计理念。
请仔细阅读我们的绕绳下降兼容性保证,了解我们对您的承诺以及我们对您的期望回报。