当前位置: 首页 > news >正文

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

Abseil - C++ 通用库

该仓库包含 Abseil C++ 库代码。Abseil 是一个开源的 C++ 代码集合(符合 C++17 标准),旨在扩展 C++ 标准库。

目录

- 关于 Abseil
- 快速开始
- 构建 Abseil
- 支持情况
- 代码映射
- 版本发布
- 许可证
- 相关链接

关于 Abseil

Abseil 是个开源的 C++ 库代码集合,目的是扩展 C++ 标准库。其库代码来自谷歌内部的 C++ 代码库,经过大量测试且已投入生产使用,也是我们日常编码依赖的代码。在某些情况中,Abseil 提供了 C++ 标准库缺失的功能;在其他情况里,针对谷歌代码库使用时发现的特殊需求,Abseil 给出了标准库的替代方案。我们会在提供的库代码里明确标注这些情况。Abseil 并非要和标准库竞争,只是我们发现这些实用工具在我们的代码库中很有用,现在想把这些资源提供给整个 C++ 社区。

快速开始

要是您想马上开始使用,得至少阅读 Abseil 快速入门指南。该指南涵盖了设置开发环境、下载 Abseil 代码、运行测试以及让一个简单二进制文件正常工作的相关信息。

构建 Abseil

Bazel 和 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 位整数类型以及 C++20 位运算数学函数的实现。
-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 兼容性保证](链接待补充),了解我们对您的承诺以及我们对您的期望。

http://www.jsqmd.com/news/1169747/

相关文章:

  • UE4视频流播放全攻略:从基础配置到VR环境实战优化
  • PMP/软考高项备考:10大管理47个过程ITTO速记3大核心规律与5个高频考点
  • 科技转型亚洲EMBA怎么选?2026避坑选购指南+优质项目推荐
  • AI原生安全运营:构建深度上下文驱动的云安全防御体系
  • 基于STM32单片机光功率计光照强度光线强弱报警器设计彩屏DIY193
  • 半年超600款新车上市,利润率却跌至3.2%,不造车的Momenta缘何被资本疯抢?
  • 数据分析转大模型:把方案拆到可执行
  • L9958与PIC18F57Q43电机控制方案解析
  • 视频高清修复技术解析:从AI降噪到色彩还原的完整流程
  • 网络安全毕设选题 2024:5个AI+安全实战项目从0到1实现指南
  • Hadoop 3.1.3 环境配置:Ubuntu 18.04 单节点部署与 18 个核心命令验证
  • 自动点击工具怎么选?新手选购与使用入门指南
  • STM32F429ZI与TLA2518 ADC的高精度信号采集方案
  • NAU8224与STM32F042C6构建高效音频系统指南
  • DCS 环保监控对接钉钉 Webhook 机器人告警完整落地方案|西门子 PLC 点位实时推送、环保台账闭环
  • 银行API对接实战:P10文件生成与证书申请全流程详解
  • DNS 服务器配置实战:3分钟完成 Windows 11/Ubuntu 22.04 双系统切换
  • OpenCore Legacy Patcher终极指南:让你的老Mac重获新生
  • 为什么瑞士能享受 25 Gbit 光纤而美国却在“假宽带”中挣扎:从技术架构看市场竞争的谎言
  • 摩托车机油兼容性怎么选?主流合成油全面对比
  • 电力通信现场作业 3 类安全措施实操指南:从 OTDR 使用到板卡更换
  • HBase 2.5.4 伪分布式部署实战:Ubuntu 22.04 单机 3 进程配置与验证
  • 编译验证循环解密:Kunpeng DevKit 如何通过 10 次重试机制解决 90% 构建错误?
  • 宜昌智能锁售后哪家好
  • Unity Shader变体优化:从编译卡顿到异步预热的实战指南
  • 作业的笔记
  • HsMod:炉石传说终极增强插件 - 55项功能完全指南
  • RouterOS 7.x 脚本实现 DNSPod DDNS:3步配置与1分钟定时任务详解
  • 企业数字化升级!本地私有化部署适配方案解析|AI博主实测分享
  • AD7490与TM4C123GH6PZ的嵌入式信号采集系统设计