Baru-baru ini Boost tersedia di proyek tempat saya bekerja, dan saya tidak punya banyak pengalaman dengannya. Perpustakaan memiliki begitu banyak bagian dan fitur sehingga sulit untuk mengetahui di mana harus mulai mempelajarinya - terutama karena saya akan mencoba mempelajarinya saat membuat kode produksi (sehingga tidak dapat memperlambat saya terlalu banyak).
Saya akan sangat menghargai jika seseorang dapat mendaftar sekitar 3 hingga 5 fitur yang sangat berguna secara umum, pemrograman setiap hari dan menyatakan mengapa mereka berguna. Maka saya bisa mulai mempelajari dan menggunakannya - setidaknya akan memberi saya pijakan di perpustakaan dan tempat yang ramah untuk mulai mempelajarinya / menerapkannya :)
Terima kasih sebelumnya!
Jawaban:
Jika Anda menggunakan kompiler pra TR1 maka pointer pintar
Jika kompiler Anda sudah memiliki pointer pintar, gunakan saja.
Alasannya jelas C ++ tanpa smart pointer pada dasarnya bukan C ++
Meningkatkan ptr_contaier libraries.
Semua kontainer STL diimplementasikan kembali secara khusus untuk memegang pointer. Kontainer tidak hanya mengambil kepemilikan pointer sehingga ketika kontainer dihancurkan secara otomatis menghancurkan semua pointer. TETAPI juga menyediakan akses ke elemen sebagai referensi objek normal (bukan pointer) ini membuatnya mudah untuk menggunakan objek dalam algoritma standar tanpa fungsi pembungkus.
Meningkatkan perpustakaan lambda. (lihat komentar di bawah)
Fungsi dan pengikat STL OK untuk hal-hal sederhana. Tapi boost :: lambda mengambil langkah berikutnya dan membuat segalanya lebih sederhana ketika menggunakan algoritma standar.
boost :: any dan boost :: varian
Ketika Anda perlu memegang benda tanpa ingin tahu jenisnya yang tepat.
Wadah multi indeks
Wadah yang memungkinkan berbagai cara berbeda untuk mengakses elemen.
Lewatlah sudah hari-hari ketika Anda memiliki vektor objek dan peta terpisah untuk vektor pencarian cepat. Ini mengurangi pelat ketel yang harus Anda tulis untuk mempertahankan kedua wadah saat memasukkan / menghapus elemen ke dalam wadah.
boost :: lexical_cast
Mungkin yang paling tidak berguna dalam kehidupan nyata tetapi banyak kesenangan untuk dimainkan adalah boost :: lexical_cast. Itu mengkonversi objek apa pun ke / dari string (selama jenis itu memiliki << dan >> operator yang tepat ditentukan). Sangat berguna untuk membuang pesan kesalahan saat menghapus bug.
sumber
Boost bukan kerangka kerja, atau perpustakaan. Ini adalah koleksi perpustakaan yang dikontrol kualitasnya dan ditinjau oleh rekan sejawat. Anda tidak belajar Meningkatkan. Perpustakaan bersifat individual - ketika Anda membutuhkan sesuatu, Anda memeriksa untuk melihat apakah ada dalam Meningkatkan, jika itu, maka Anda mempelajari perpustakaan itu. Itu dia. Anda tidak bisa memahami peningkatan :: opsional dari mendapatkan pemahaman tentang peningkatan :: varian.
sumber
Boost adalah koleksi perpustakaan. Lain kali Anda melakukan kata kode, pilih perpustakaan di Boost yang menurut Anda dapat membantu Anda dan menggunakannya. Dokumentasinya sangat bagus dan Anda seharusnya tidak memiliki masalah dalam mengambil penggunaan sederhana. Yang lebih kompleks akan datang ketika Anda mencoba melakukan hal-hal yang lebih pintar.
Contoh: singleton safe thread dengan boost :: thread call_once.
Contoh: membaca file konfigurasi kunci: nilai menggunakan tokenizer.
sumber