8 perpustakaan hebat untuk pemrograman C ++

C ++ adalah bahasa pemrograman sistem bertujuan umum yang sekarang berusia lebih dari 40 tahun, yang telah dirancang pada tahun 1979. Jauh dari kehilangan tenaga, C ++ masih berada di peringkat atas dari beberapa indeks popularitas bahasa pemrograman.

Memperhalus jalur ke penggunaan C ++ adalah dukungan luas untuk bahasa di antara pembuat IDE, editor, compiler, framework pengujian, kualitas kode, dan alat lainnya. Pengembang perangkat lunak juga memiliki banyak pustaka yang sangat baik untuk membantu membangun aplikasi C ++. Inilah delapan yang diandalkan oleh pengembang C ++. 

Perpustakaan Template Aktif

Dari Microsoft, Active Template Library (ATL) adalah sekumpulan kelas C ++ untuk membangun objek COM (Common Object Model), dengan dukungan untuk fitur COM seperti antarmuka ganda, antarmuka pencacah COM standar, titik koneksi, dan kontrol ActiveX. Tersedia dengan Visual Studio IDE, ATL dapat digunakan untuk membuat objek berulir tunggal, objek model apartemen, objek model berulir bebas, atau objek berulir bebas dan model apartemen.

Library Asio C ++

Pustaka Asio C ++ digunakan untuk jaringan dan pemrograman I / O tingkat rendah, menawarkan model asinkron yang konsisten. Menyediakan blok bangunan dasar untuk konkurensi, jaringan C ++, dan jenis I / O lainnya, Asio telah digunakan dalam aplikasi mulai dari aplikasi dan game ponsel cerdas hingga situs web yang sangat interaktif dan sistem transaksi waktu nyata. Proyek yang menggunakan Asio termasuk pustaka WebSocketPP dan debugger jarak jauh DDT3 untuk bahasa Lua. Asio tersedia sebagai open source gratis di bawah Boost Software License, dan didukung di Linux, Windows, MacOS, dan FreeBSD.

Eigen

Eigen adalah pustaka template C ++ untuk aljabar linier, termasuk matriks, vektor, pemecah numerik, dan algoritme terkait. Semua ukuran matriks didukung, dari matriks kecil dan tetap hingga matriks besar dan padat sewenang-wenang. Algoritme dipilih untuk keandalan. Semua tipe numerik standar didukung. Untuk kecepatan, Eigen menampilkan template ekspresi untuk secara cerdas menghapus temporaries dan mengaktifkan evaluasi malas. Tersedia secara gratis di bawah Mozilla Public License 2 dan dapat diunduh dari halaman proyek Eigen, Eigen telah dilengkapi dengan API yang dijelaskan oleh pendukungnya sebagai ekspresif dan bersih serta alami bagi programmer C ++. Rangkaian pengujian untuk Eigen telah dijalankan terhadap banyak kompiler untuk memastikan keandalan.

FloatX

FloatX, atau Float eXtended, adalah pustaka khusus header untuk emulasi tipe titik mengambang dengan presisi rendah. Meskipun secara native kompatibel dengan kompiler C ++, FloatX dapat dipanggil oleh bahasa lain seperti Python atau Fortran. Jenis titik mengambang diperluas melampaui jenis presisi tunggal dan ganda asli. Jenis template disediakan yang memungkinkan pengguna untuk memilih jumlah bit yang digunakan untuk eksponen serta bagian penting dari bilangan floating point. FloatX didasarkan pada gagasan pustaka FlexFloat untuk meniru jenis mengambang presisi rendah, tetapi mengimplementasikan superset fungsionalitas FlexFloat di C dan menyediakan pembungkus C ++. FloatX muncul dari inisiatif Open Transprecision Computing. Ini tersedia gratis di bawah Lisensi Apache 2.0. 

OpenCV

OpenCV, atau Open Source Computer Vision Library, adalah computer vision dan pustaka pembelajaran mesin yang ditulis secara native dalam C ++, dan tersedia di bawah lisensi BSD. OpenCV dibangun untuk menyediakan infrastruktur umum untuk aplikasi visi komputer dan mempercepat penggunaan persepsi mesin dalam produk komersial. Lebih dari 2.500 algoritma yang dioptimalkan untuk pengenalan wajah, deteksi objek, klasifikasi objek, ekstraksi model 3D, pencarian gambar, dan banyak lagi, OpenCV telah mengumpulkan komunitas pengguna lebih dari 47.000 orang. Tersedia dari situs web proyek OpenCV, pustaka menyediakan antarmuka C ++, Java, Python, dan Matlab serta mendukung Windows, Linux, Android, dan MacOS. Antarmuka CUDA dan OpenCL sedang dalam pengembangan.

Perpustakaan Poco C ++

Dimaksudkan untuk menyederhanakan pengembangan C ++, Pustaka C ++ Poco (Komponen Portabel) adalah pustaka C ++ lintas platform untuk membangun aplikasi Internet dan jaringan untuk dijalankan pada sistem mulai dari desktop dan server hingga perangkat seluler dan IoT. Pustaka juga dapat digunakan untuk membangun layanan mikro dengan REST API untuk pembelajaran mesin atau analisis data. Pustaka Poco memiliki konsep yang serupa dengan Pustaka Kelas Java, Microsoft .NET Framework, atau Apple Cocoa.

Pengembang dapat menggunakan pustaka Poco untuk membangun server aplikasi dalam C ++ yang terhubung dengan database SQL, Redis, atau MongoDB, atau untuk membangun perangkat lunak untuk perangkat IoT yang terhubung dengan back-end cloud. Di antara fitur-fitur perpustakaan adalah kerangka kerja cache, penanganan formulir HTML, klien FTP untuk mentransfer file, dan server dan klien HTTP. Pustaka Poco tersedia gratis di bawah Boost Software License dan dapat diunduh dari GitHub. 

Perpustakaan Template Windows

Berasal dari Microsoft, Windows Template Library (WTL) adalah (sejak 2004) pustaka sumber terbuka untuk membangun aplikasi Windows ringan dan komponen UI. Diposisikan sebagai alternatif dari toolkit Microsoft Foundation Classes, WTL memperluas ATL dan menyediakan sekumpulan kelas untuk kontrol, dialog, jendela bingkai, dan objek GDI.

Wt

Wt adalah pustaka GUI web dalam C ++ modern yang memungkinkan pengembang membangun UI web interaktif dengan widget, tanpa harus menulis JavaScript. Solusi sisi server, Wt tidak meminta penanganan dan rendering halaman, menyediakan keamanan bawaan, rendering PDF, sistem lukisan 2D dan 3D, perpustakaan pemetaan relasional objek, perpustakaan bagan, dan kerangka kerja otentikasi. Pustaka inti adalah open source, menyediakan kerangka kerja halaman tunggal hybrid yang dapat diterapkan di Linux, Unix, atau Windows.

Dikembangkan oleh perusahaan rekayasa perangkat lunak Emweb, Wt kompatibel dengan browser HTML5 dan HTML4 serta dengan agen pengguna HTML biasa. Dan Wt dapat berintegrasi dengan pustaka JavaScript pihak ketiga. Dengan Wt, aplikasi didefinisikan sebagai hierarki widget - mulai dari widget umum seperti tombol tekan hingga widget khusus seperti widget blog secara keseluruhan. Pohon widget dirender sebagai HTML / JavaScript di browser. Wt dapat diunduh dari halaman web proyek. Persyaratan penggunaan open source dan komersial tersedia.