Abseil - C++ 通用库:开源代码集合扩展标准库,多方面信息全解析!

Abseil - C++ 通用库:开源代码集合扩展标准库,多方面信息全解析! Abseil - C 通用库该仓库包含 Abseil C 库代码。Abseil 是一个开源的 C 代码集合符合 C17 标准旨在扩展 C 标准库。目录- 关于 Abseil- 快速开始- 构建 Abseil- 支持情况- 代码映射- 版本发布- 许可证- 相关链接关于 AbseilAbseil 是个开源的 C 库代码集合目的是扩展 C 标准库。其库代码来自谷歌内部的 C 代码库经过大量测试且已投入生产使用也是我们日常编码依赖的代码。在某些情况中Abseil 提供了 C 标准库缺失的功能在其他情况里针对谷歌代码库使用时发现的特殊需求Abseil 给出了标准库的替代方案。我们会在提供的库代码里明确标注这些情况。Abseil 并非要和标准库竞争只是我们发现这些实用工具在我们的代码库中很有用现在想把这些资源提供给整个 C 社区。快速开始要是您想马上开始使用得至少阅读 Abseil 快速入门指南。该指南涵盖了设置开发环境、下载 Abseil 代码、运行测试以及让一个简单二进制文件正常工作的相关信息。构建 AbseilBazel 和 CMake 是 Abseil 官方支持的构建系统。关于使用 Bazel 构建系统构建 Abseil 的更多信息可参阅快速入门指南。要是您需要 CMake 支持可查看 CMake 构建说明和 CMake 快速入门。支持情况Abseil 遵循谷歌的基础 C 支持政策。有关当前支持的编译器版本、平台和构建工具的列表可参阅相关表格。代码映射Abseil 包含以下 C 库组件-base基础库包含初始化代码以及其他 Abseil 代码所依赖的代码。基础库中的代码不能依赖其他代码除了 C 标准库。-algorithm算法库包含对 C 库的扩展以及基于容器的算法实现。-cleanup清理库包含类似控制流结构的类型 absl::Cleanup用于在作用域退出时执行回调。-container容器库包含额外的 STL 风格容器包括 Abseil 的无序 “Swiss table” 容器。-crc循环冗余校验CRC库包含用于计算数据错误检测循环冗余校验的代码。-debugging调试库包含用于启用内存泄漏检查、堆栈跟踪和符号化工具的代码。-flags标志库包含处理使用 Abseil 构建的库和二进制文件的命令行标志的代码。-hash哈希库包含哈希框架以及 Abseil 中可哈希类型的默认哈希函数实现。-log日志库包含 LOG 和 CHECK 宏以及将日志消息写入磁盘、标准错误输出或用户可扩展目标的工具。-memory内存库包含增强 C 内存管理的工具。-meta元库包含类似于 C 库中可用的类型检查。-numeric数值库包含 128 位整数类型以及 C20 位运算数学函数的实现。-profiling性能分析库包含用于对 C 实体进行性能分析的实用代码。目前它是其他 Abseil 库的私有依赖项。-random随机库包含生成伪随机值的函数。-status状态库包含用于错误处理的抽象特别是 absl::Status 和 absl::StatusOr。-strings字符串库包含各种字符串处理例程和实用工具。-synchronization同步库包含并发原语Abseil 的 absl::Mutex 类是 std::mutex 的替代方案和各种同步抽象。-time时间库包含用于处理绝对时间点、时间间隔以及在时区中进行时间格式化和解析的抽象。-types类型库包含非容器实用类型。-utility实用工具库包含实用工具和辅助代码。版本发布Abseil 建议用户 “紧跟最新版本”尽可能频繁地更新到主分支的最新提交。不过我们也知道这种方式并非适合所有项目所以我们还提供长期支持版本并会把严重 bug 的修复补丁回溯到这些版本。有关更多详细信息可参阅我们的版本管理文档。许可证Abseil C 库遵循 Apache 许可证。有关更多信息可参阅 LICENSE 文件。相关链接如需了解更多关于 Abseil 的信息- 请阅读我们的 [Abseil 简介](链接待补充)。- 阅读 [为何采用 Abseil](链接待补充) 以了解我们的设计理念。- 查看 [Abseil 兼容性保证](链接待补充)了解我们对您的承诺以及我们对您的期望。