Repositori berisi kode perpustakaan Abseil C++. Abseil adalah kumpulan kode C++ sumber terbuka (sesuai dengan C++14) yang dirancang untuk menambah pustaka standar C++.
Tentang Abseil
Mulai cepat
Membangun Abseil
Mendukung
peta kode
Rilis
Lisensi
Tautan
Abseil adalah kumpulan kode pustaka C++ sumber terbuka yang dirancang untuk menambah pustaka standar C++. Kode pustaka Abseil dikumpulkan dari basis kode C++ milik Google, telah diuji secara ekstensif dan digunakan dalam produksi, dan merupakan kode yang sama yang kita andalkan dalam kehidupan coding sehari-hari.
Dalam beberapa kasus, Abseil menyediakan bagian yang hilang dari standar C++; di negara lain, Abseil memberikan alternatif terhadap standar untuk kebutuhan khusus yang kami temukan melalui penggunaan di basis kode Google. Kami menunjukkan kasus tersebut dengan jelas dalam kode perpustakaan yang kami berikan kepada Anda.
Abseil tidak dimaksudkan untuk menjadi pesaing perpustakaan standar; kami baru saja menemukan bahwa banyak dari utilitas ini memiliki tujuan dalam basis kode kami, dan sekarang kami ingin menyediakan sumber daya tersebut kepada komunitas C++ secara keseluruhan.
Jika Anda ingin memulai, pastikan Anda setidaknya menjalankan Panduan Mulai Abseil. Mulai Cepat berisi informasi tentang menyiapkan lingkungan pengembangan Anda, mengunduh kode Abseil, menjalankan pengujian, dan membuat biner sederhana berfungsi.
Bazel dan CMake adalah sistem build resmi untuk Abseil. Lihat mulai cepat untuk informasi selengkapnya tentang membangun Abseil menggunakan sistem pembangunan Bazel. Jika Anda memerlukan dukungan CMake, silakan periksa petunjuk pembuatan CMake dan Panduan Memulai CMake.
Abseil mengikuti Kebijakan Dukungan C++ Dasar Google. Lihat tabel ini untuk daftar kompiler versi, platform, dan alat pembangunan yang didukung saat ini.
Abseil berisi komponen perpustakaan C++ berikut:
base
Pustaka base
berisi kode inisialisasi dan kode lain yang bergantung pada semua kode Abseil lainnya. Kode dalam base
mungkin tidak bergantung pada kode lain (selain pustaka standar C++).
algorithm
Pustaka algorithm
berisi tambahan pada pustaka
C++ dan versi algoritme tersebut yang berbasis kontainer.
cleanup
Pustaka cleanup
berisi tipe seperti kontrol-aliran-konstruksi absl::Cleanup
yang digunakan untuk mengeksekusi panggilan balik saat keluar dari lingkup.
container
Pustaka container
berisi kontainer tambahan bergaya STL, termasuk kontainer "tabel Swiss" Abseil yang tidak berurutan.
crc
Pustaka crc
berisi kode untuk menghitung pemeriksaan redundansi siklik yang mendeteksi kesalahan pada data.
debugging
Pustaka debugging
berisi kode yang berguna untuk mengaktifkan pemeriksaan kebocoran, serta utilitas pelacakan tumpukan dan simbolisasi.
flags
Pustaka flags
berisi kode untuk menangani flag baris perintah untuk pustaka dan biner yang dibangun dengan Abseil.
hash
Pustaka hash
berisi kerangka hashing dan implementasi fungsi hash default untuk tipe hashable di Abseil.
log
Pustaka log
berisi makro LOG
dan CHECK
serta fasilitas untuk menulis pesan log keluar ke disk, stderr
, atau tujuan yang dapat diperluas pengguna.
memory
Pustaka memory
berisi fasilitas manajemen memori yang menambah pustaka
C++.
meta
Pustaka meta
berisi versi pemeriksaan tipe yang kompatibel yang tersedia dalam versi C++14 dan C++17 dari pustaka C++
.
numeric
Pustaka numeric
berisi tipe bilangan bulat 128-bit serta implementasi fungsi matematika bitwise C++20.
profiling
Pustaka profiling
berisi kode utilitas untuk membuat profil entitas C++. Saat ini merupakan ketergantungan pribadi dari perpustakaan Abseil lainnya.
random
Pustaka random
berisi fungsi untuk menghasilkan nilai psuedorandom.
status
Pustaka status
berisi abstraksi untuk penanganan kesalahan, khususnya absl::Status
dan absl::StatusOr
.
strings
Pustaka strings
berisi berbagai rutinitas dan utilitas string, termasuk versi tipe C++17 std::string_view
yang kompatibel dengan C++14.
synchronization
Pustaka synchronization
berisi primitif konkurensi (kelas absl::Mutex
Abseil, alternatif untuk std::mutex
) dan berbagai abstraksi sinkronisasi.
time
Pustaka time
berisi abstraksi untuk komputasi dengan titik waktu absolut, durasi waktu, serta pemformatan dan penguraian waktu dalam zona waktu.
types
Pustaka types
berisi tipe utilitas non-kontainer, seperti versi tipe C++17 std::optional
yang kompatibel dengan C++14.
utility
Pustaka utility
berisi kode utilitas dan pembantu.
Abseil merekomendasikan pengguna "live-at-head" (perbarui ke komit terbaru dari cabang master sesering mungkin). Namun, kami menyadari filosofi ini tidak berlaku untuk setiap proyek, jadi kami juga menyediakan Rilis Dukungan Jangka Panjang yang kami dukung untuk perbaikan bug parah. Lihat dokumen manajemen rilis kami untuk lebih jelasnya.
Pustaka Abseil C++ dilisensikan berdasarkan ketentuan lisensi Apache. Lihat LISENSI untuk informasi lebih lanjut.
Untuk informasi lebih lanjut tentang Abseil:
Konsultasikan Pendahuluan Abseil kami
Baca Mengapa Mengadopsi Abseil untuk memahami filosofi desain kami.
Bacalah dengan teliti Jaminan Kompatibilitas Abseil kami untuk memahami apa yang kami janjikan kepada Anda, dan apa yang kami harapkan dari Anda sebagai imbalannya.