很多 Google 的工程师经常开玩笑,说离开 Google 就不会写 C++ 了。因为内部有很多好用的扩充库。近日,Google 宣布开源 Abseil,这是从 Google 代码库中抽取出的一组公共库。这是 Google 内部最基本的构建块,经过了充分的测试和优化,像 gRPC、Protobuf 和 TensorFlow 等很多项目都有应用。
这些库是对 C++ 标准库的扩充。有些是弥补标准库缺失的功能,有些是根据内部特殊需求,提供了替代方案。
Abseil 目前遵循 C++11,计划到 2019 年,以 C++14 为基础语言版本。
目前代码已经放在 GitHub 上:https://github.com/abseil/abseil-cpp ,基于 Apache 许可证开源。 我们也可以通过其目录大概猜测一下功能。

Abseil 有如下亮点:
-
零配置:支持大部分平台(操作系统、编译器和架构)。
-
提前采用了几个 C++17 的类型:
string_view,optional和any。不久将支持variant。 -
主要的同步类型
absl::Mutex,接口优雅,而且做了大量优化。 -
高效支持时间处理,提供了概念上与
std::chrono类似的absl::Time和absl::Duration类型。但他们是具体类型,没有使用模板,在所有情况下的行为是固定的。此外,与常用的标准库相比,时钟采样 APIabsl::Now()也做了大量优化。 -
字符串处理程序,包括
absl::StrCat(),absl::StrJoin()和absl::StrSplit()的等。
更多信息,可以访问 Abseil 官网: https://abseil.io 。
广告时间
10 月 17~19 日的 QCon 全球软件开发大会(上海站),C++ 之父 Bjarne Stroustrup 博士将莅临现场,分享《未来的编程和 C++ 的作用》及《Using Modern C++ —— Stepping Up to C++14/17》。
此外,还将有 Google、Facebook、Twitter、Uber、Airbnb、Pinterest、LinkedIn 等公司的专家带来分享。感兴趣的可以点击阅读原文了解更多信息。