关于Abseil
Abseil是一个开源的C++库代码集合,旨在增强C++标准库。ABSEL库代码是从谷歌自己的C++代码库中收集的,已经被广泛地测试并用于生产,并且是我们日常编码生活中依赖的代码。
在某些情况下,AbSEIL提供C++标准中缺失的部分;在其他情况下,Abseil为我们在谷歌代码库中发现的特殊需求提供了标准的替代方案。我们在提供给您的库代码中清楚地表示这些案例。
Abseil不是标准库的竞争对手;我们发现,这些实用程序中有许多在我们的代码库中起作用,现在我们希望将这些资源作为一个整体提供给C++社区。
快速入门
如果你想开始,确保你至少完成了Abseil快速入门。Quickstart包含有关设置开发环境、下载Abseil代码、运行测试以及获取简单二进制代码的信息。
代码概览
base
Abseil基础
基本库包含初始化代码和所有其他Abseil代码所依赖的其他代码。基中的代码可能不依赖于任何其他代码(除了C++标准库之外)。algorithm
算法库包含C++的算法>库和基于容器的版本的算法。cleanup
cleanup库包含控制流构造,如类型absl::cleanup,用于在作用域退出时执行回调。container
容器库包含其他STL样式的容器,包括Abseil的无序“Swiss table”容器。debugging
调试库包含用于启用泄漏检查、stacktrace和符号化实用程序的代码。hash
散列库包含Abseil中可散列类型的散列框架和默认散列函子实现。memory
内存库包含std::make_unique()
和相关内存管理工具的C++11兼容版本。meta
元库包含C++ 11兼容版本的类型检查,其中C++ 14和C++ 17版本中的C++ < Type特征>
库。numeric
该数字库包含与C++11兼容的128位整数。profiling
剖析库包含用于剖析C++实体的实用代码。它目前是其他Abseil库的私有依赖项。status
status包含错误处理的抽象,特别是absl::status
和absl::StatusOr<T>
。strings
字符串库包含各种字符串例程和实用程序,包括与C++17std::string_
视图类型兼容的C++11版本。synchronization
同步库包含并发原语(Abseil的absl::Mutex
类,std::Mutex
的替代品)和各种同步抽象。time
时间库包含用于计算的抽象,包括绝对时间点、持续时间,以及时区内的格式化和解析时间。types
类型库包含非容器实用程序类型,比如C++17std::optional
类型的C++11兼容版本。utility
实用程序库包含实用程序和帮助程序代码。