リポジトリには、Abseil C++ ライブラリ コードが含まれています。 Abseil は、C++ 標準ライブラリを拡張するように設計された C++ コード (C++14 準拠) のオープンソース コレクションです。
アブセイルについて
クイックスタート
懸垂下降の構築
サポート
コードマップ
リリース
ライセンス
リンク
Abseil は、C++ 標準ライブラリを拡張するために設計された C++ ライブラリ コードのオープンソース コレクションです。 Abseil ライブラリ コードは、Google 独自の C++ コード ベースから収集され、広範囲にテストされ、本番環境で使用されており、私たちが日常のコーディング生活で依存しているコードと同じです。
場合によっては、Abseil は C++ 標準に欠けている部分を提供します。また、Abseil は、Google コード ベースでの使用を通じて発見された、特別なニーズに対応する標準の代替案を提供します。これらのケースは、提供するライブラリ コード内で明確に示されています。
Abseil は、標準ライブラリの競合となることを意図したものではありません。これらのユーティリティの多くがコード ベース内で目的を果たしていることがわかりました。現在、これらのリソースを C++ コミュニティ全体に提供したいと考えています。
すぐに始めたい場合は、少なくとも Abseil クイックスタートを実行してください。クイックスタートには、開発環境のセットアップ、Abseil コードのダウンロード、テストの実行、および単純なバイナリの動作に関する情報が含まれています。
Bazel と CMake は、Abseil の公式ビルド システムです。 Bazel ビルド システムを使用した Abseil のビルドの詳細については、クイックスタートを参照してください。 CMake のサポートが必要な場合は、CMake のビルド手順と CMake クイックスタートを確認してください。
Abseil は、Google の Foundational C++ サポート ポリシーに従います。現在サポートされているバージョンのコンパイラ、プラットフォーム、ビルド ツールのリストについては、この表を参照してください。
Abseil には、次の C++ ライブラリ コンポーネントが含まれています。
base
base
ライブラリには、初期化コードと、他のすべての Abseil コードが依存するその他のコードが含まれています。 base
内のコードは、他のコード (C++ 標準ライブラリ以外) に依存してはなりません。
algorithm
algorithm
ライブラリには、C++ <algorithm>
ライブラリへの追加機能と、そのようなアルゴリズムのコンテナベースのバージョンが含まれています。
cleanup
cleanup
ライブラリには、スコープ終了時にコールバックを実行するために使用される、control-flow-construct のようなタイプabsl::Cleanup
が含まれています。
container
container
ライブラリには、Abseil の順序付けされていない「スイス テーブル」コンテナを含む追加の STL スタイル コンテナが含まれています。
crc crc
ライブラリcrc
データのエラー検出巡回冗長検査を計算するためのコードが含まれています。
debugging
debugging
ライブラリには、リーク チェック、スタックトレースおよびシンボル化ユーティリティを有効にするのに役立つコードが含まれています。
flags
flags
ライブラリには、Abseil で構築されたライブラリおよびバイナリのコマンド ライン フラグを処理するためのコードが含まれています。
hash
hash
ライブラリには、Abseil のハッシュ可能型のハッシュ フレームワークとデフォルトのハッシュ ファンクター実装が含まれています。
log
log
ライブラリには、 LOG
およびCHECK
マクロと、ログに記録されたメッセージをディスク、 stderr
、またはユーザーが拡張可能な宛先に書き込むための機能が含まれています。
memory
memory
ライブラリには、C++ の<memory>
ライブラリを拡張するメモリ管理機能が含まれています。
meta
meta
ライブラリには、C++ <type_traits>
ライブラリの C++14 および C++17 バージョン内で使用できる互換バージョンの型チェックが含まれています。
numeric
numeric
ライブラリには、128 ビット整数型と C++20 のビットごとの数学関数の実装が含まれています。
profiling
profiling
ライブラリには、C++ エンティティをプロファイリングするためのユーティリティ コードが含まれています。 現在、これは他の Abseil ライブラリのプライベート依存関係です。
random
random
ライブラリには、擬似乱数値を生成する関数が含まれています。
status
status
ライブラリには、エラー処理の抽象化、具体的にはabsl::Status
およびabsl::StatusOr<T>
が含まれています。
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 は、ユーザーに「ライブアットヘッド」(できるだけ頻繁に master ブランチから最新のコミットに更新する) を推奨します。ただし、この哲学がすべてのプロジェクトで機能するわけではないことを認識しているため、重大なバグの修正をバックポートする長期サポート リリースも提供しています。詳細については、リリース管理ドキュメントを参照してください。
Abseil C++ ライブラリは、Apache ライセンスの条件に基づいてライセンスされています。詳細については、「ライセンス」を参照してください。
アブセイルについて詳しくは、以下をご覧ください。
アブセイルの紹介を参照してください
当社の設計哲学を理解するには、「アブセイルを採用する理由」をお読みください。
当社のアブセイル互換性保証をよく読んで、当社がお客様に約束することと、お客様に期待することの両方を理解してください。