该存储库包含 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++
库的补充以及此类算法的基于容器的版本。
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++ 的
库。
meta
meta
库包含 C++
库的 C++14 和 C++17 版本中可用的类型检查的兼容版本。
numeric
该numeric
库包含 128 位整数类型以及 C++20 按位数学函数的实现。
profiling
profiling
库包含用于分析 C++ 实体的实用程序代码。 目前它是其他 Abseil 库的私有依赖项。
random
random
库包含用于生成伪随机值的函数。
status
status
库包含错误处理的抽象,特别是absl::Status
和absl::StatusOr
。
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 以了解我们的设计理念。
请仔细阅读我们的绕绳下降兼容性保证,了解我们对您的承诺以及我们对您的期望回报。