8 perpustakaan hebat untuk pengaturcaraan C ++

C ++ adalah bahasa pengaturcaraan sistem tujuan umum yang kini berusia lebih dari 40 tahun, telah dirancang pada tahun 1979. Jauh dari kehilangan tenaga, C ++ masih berada di kedudukan teratas dalam beberapa indeks populariti bahasa pengaturcaraan.

Melicinkan jalan ke penggunaan C ++ adalah sokongan yang luas untuk bahasa di antara pembuat IDE, editor, penyusun, kerangka ujian, kualiti kod, dan alat lain. Pembangun perisian juga mempunyai banyak perpustakaan yang sangat baik untuk membantu membina aplikasi C ++. Berikut adalah lapan yang bergantung kepada pembangun C ++. 

Perpustakaan Templat Aktif

Dari Microsoft, Active Template Library (ATL) adalah sekumpulan kelas C ++ untuk membangun objek COM (Common Object Model), dengan sokongan untuk ciri-ciri COM seperti antaramuka ganda, antara muka enumerator COM standard, titik sambungan, dan kawalan ActiveX. Tersedia dengan Visual Studio IDE, ATL dapat digunakan untuk membangun objek utas tunggal, objek model apartmen, objek model utas bebas, atau kedua-dua objek berulir bebas dan model apartmen.

Perpustakaan Asio C ++

Perpustakaan Asio C ++ digunakan untuk pengaturcaraan rangkaian / I / O peringkat rendah, yang menawarkan model tak segerak yang konsisten. Menyediakan blok asas untuk konkurensi, rangkaian C ++, dan jenis I / O lain, Asio telah digunakan dalam aplikasi mulai dari aplikasi dan permainan telefon pintar hingga laman web yang sangat interaktif dan sistem transaksi masa nyata. Projek yang menggunakan Asio termasuk perpustakaan WebSocketPP dan debugger jarak jauh DDT3 untuk bahasa Lua. Asio tersedia sebagai sumber terbuka percuma di bawah Boost Software License, dan disokong pada Linux, Windows, MacOS, dan FreeBSD.

Eigen

Eigen adalah pustaka templat C ++ untuk aljabar linier, termasuk matriks, vektor, pemecah berangka, dan algoritma yang berkaitan. Semua ukuran matriks disokong, dari matriks tetap kecil hingga matriks padat dan besar sewenang-wenangnya. Algoritma dipilih untuk kebolehpercayaan. Semua jenis angka standard disokong. Untuk kepantasan, Eigen menampilkan templat ekspresi untuk membuang temporer dengan bijak dan membolehkan penilaian malas. Tersedia secara percuma di bawah Mozilla Public License 2 dan boleh dimuat turun dari halaman projek Eigen, Eigen telah dilengkapi dengan API yang digambarkan oleh penyokong sebagai ekspresif dan bersih dan semula jadi untuk pengaturcara C ++. Set ujian untuk Eigen telah dijalankan terhadap banyak penyusun untuk memastikan kebolehpercayaan.

FloatX

FloatX, atau Float eXtended, adalah pustaka header sahaja untuk peniruan jenis titik terapung berketepatan rendah. Walaupun sesuai dengan kompilator C ++, FloatX boleh dipanggil oleh bahasa lain seperti Python atau Fortran. Jenis titik apungan dilampaui jenis ketepatan tunggal dan ketepatan asli. Jenis templat disediakan yang membolehkan pengguna memilih bilangan bit yang digunakan untuk eksponen dan juga bahagian penting dari nombor titik terapung. FloatX didasarkan pada idea perpustakaan FlexFloat untuk meniru jenis terapung berketepatan berkurang, tetapi menerapkan superset fungsi FlexFloat dalam C dan menyediakan pembungkus C ++. FloatX muncul dari inisiatif Open Transprecision Computing. Ia tersedia secara percuma di bawah Apache License 2.0. 

OpenCV

OpenCV, atau Open Source Computer Vision Library, adalah perpustakaan visi komputer dan pembelajaran mesin yang ditulis dalam bahasa C ++, dan tersedia di bawah lesen BSD. OpenCV dibangun untuk menyediakan infrastruktur umum untuk aplikasi penglihatan komputer dan mempercepat penggunaan persepsi mesin dalam produk komersial. Lebih daripada 2.500 algoritma yang dioptimumkan untuk pengecaman wajah, pengesanan objek, klasifikasi objek, pengekstrakan model 3D, carian gambar, dan banyak lagi, OpenCV telah mengumpulkan komuniti pengguna lebih dari 47,000 orang. Tersedia dari laman web projek OpenCV, perpustakaan menyediakan antara muka C ++, Java, Python, dan Matlab dan menyokong Windows, Linux, Android, dan MacOS. Antaramuka CUDA dan OpenCL sedang dalam pembangunan.

Perpustakaan Poco C ++

Ditujukan untuk mempermudah pengembangan C ++, Poco (Portable Components) C ++ Library adalah perpustakaan C ++ lintas platform untuk membina aplikasi Internet dan rangkaian untuk berjalan pada sistem mulai dari desktop dan pelayan hingga peranti mudah alih dan IoT. Perpustakaan juga dapat digunakan untuk membangun perkhidmatan mikro dengan API REST untuk pembelajaran mesin atau analisis data. Perpustakaan Poco serupa dalam konsep dengan Perpustakaan Kelas Java, Microsoft .NET Framework, atau Apple Cocoa.

Pembangun boleh menggunakan perpustakaan Poco untuk membina pelayan aplikasi di C ++ yang bercakap dengan pangkalan data SQL, Redis, atau MongoDB, atau untuk membina perisian untuk peranti IoT yang bercakap dengan back-end cloud. Antara ciri perpustakaan adalah kerangka cache, pengendalian bentuk HTML, klien FTP untuk memindahkan fail, dan pelayan HTTP dan klien. Perpustakaan Poco boleh didapati secara percuma di bawah Lesen Perisian Boost dan boleh dimuat turun dari GitHub. 

Perpustakaan Templat Windows

Berasal dari Microsoft, Perpustakaan Templat Windows (WTL) adalah (sejak 2004) perpustakaan sumber terbuka untuk membina aplikasi Windows ringan dan komponen UI. Diposisikan sebagai alternatif untuk toolkit Kelas Yayasan Microsoft, WTL memperluas ATL dan menyediakan sekumpulan kelas untuk kawalan, dialog, bingkai bingkai, dan objek GDI.

Wt

Wt adalah perpustakaan GUI web di C ++ moden yang membolehkan pembangun membina UI web interaktif dengan widget, tanpa perlu menulis JavaScript. Penyelesaian sisi pelayan, Wt memang meminta penanganan dan rendering halaman, memberikan keamanan internal, rendering PDF, sistem lukisan 2D dan 3D, perpustakaan pemetaan objek-relasional, perpustakaan grafik, dan kerangka pengesahan. Perpustakaan inti adalah sumber terbuka, menyediakan kerangka halaman tunggal hibrid yang dapat digunakan di Linux, Unix, atau Windows.

Dibangunkan oleh syarikat kejuruteraan perisian Emweb, Wt serasi dengan penyemak imbas HTML5 dan HTML4 serta ejen pengguna HTML biasa. Dan Wt dapat mengintegrasikan dengan perpustakaan JavaScript pihak ketiga. Dengan Wt, aplikasi didefinisikan sebagai hierarki widget - mulai dari widget generik seperti tombol tekan hingga widget khusus seperti keseluruhan widget blog. Pohon widget diberikan sebagai HTML / JavaScript di penyemak imbas. Wt boleh dimuat turun dari laman web projek. Kedua-dua syarat penggunaan sumber terbuka dan komersial tersedia.