該存儲庫包含 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 以了解我們的設計理念。
請仔細閱讀我們的繞繩下降相容性保證,了解我們對您的承諾以及我們對您的期望回報。