8 izvrsnih knjižnica za programiranje na C ++

C ++ je programski jezik opće namjene koji je sada star više od 40 godina, a dizajniran je 1979. Daleko od toga da gubi paru, C ++ se i dalje nalazi na vrhu više indeksa popularnosti programskog jezika.

Izglađivanje puta do upotrebe C ++-a široka je podrška jeziku među tvorcima IDE-a, urednicima, kompajlerima, testnim okvirima, kvalitetom koda i drugim alatima. Programerima softvera također je na raspolaganju mnoštvo izvrsnih knjižnica koje pomažu u izradi C ++ aplikacija. Evo osam na koje se programeri C ++ oslanjaju. 

Biblioteka aktivnih predložaka

Iz Microsofta, Active Template Library (ATL) skup je C ++ klasa za izgradnju COM (Common Object Model) objekata, s podrškom za COM značajke kao što su dvostruka sučelja, standardna sučelja COM popisivača, točke povezivanja i ActiveX kontrole. Dostupan s Visual Studio IDE-om, ATL se može koristiti za izradu objekata s jednim niti, objekata modela stana, objekata modela bez navoja ili objekata s besplatnim navojem i modela apartmana.

Asio C ++ knjižnica

Knjižnica Asio C ++ koristi se za mrežno i I / O programiranje na niskoj razini, nudeći dosljedni asinkroni model. Pružajući osnovne građevne blokove za istodobnost, umrežavanje C ++ i druge vrste I / O-a, Asio se koristi u aplikacijama, od aplikacija za pametne telefone i igara do visoko interaktivnih web stranica i transakcijskih sustava u stvarnom vremenu. Projekti koji koriste Asio uključuju biblioteku WebSocketPP i udaljeni program za otkrivanje pogrešaka DDT3 za jezik Lua. Asio je dostupan kao besplatni otvoreni izvor pod licencom Boost Software, a podržan je na Linuxu, Windowsu, MacOS-u i FreeBSD-u.

Eigen

Eigen je knjižnica predložaka C ++ za linearnu algebru, uključujući matrice, vektore, numeričke rješavače i srodne algoritme. Podržane su sve veličine matrica, od malih, fiksnih matrica do proizvoljno velikih, gustih matrica. Algoritmi su odabrani zbog pouzdanosti. Podržane su sve standardne numeričke vrste. Za brzinu Eigen sadrži predloške izraza za inteligentno uklanjanje vremenskih vremana i omogućavanje lijene procjene. Slobodno dostupan pod Mozilla Public License 2 i može se preuzeti sa stranice projekta Eigen, Eigen je opremljen API-jem koji su predlagači opisali kao izražajan, čist i prirodan za programere C ++. Testni paket za Eigen pokrenut je protiv mnogih kompajlera kako bi se osigurala pouzdanost.

FloatX

FloatX ili Float eXtended knjižnica je samo zaglavlja za nisko preciznu emulaciju tipa plutajuće točke. Iako je izvorno kompatibilan s C ++ kompajlerima, FloatX mogu pozivati ​​drugi jezici poput Pythona ili Fortrana. Tipovi s pomičnim zarezom šire se od izvornih tipova s ​​jednom i dvostrukom preciznošću. Osigurane su vrste predložaka koje korisniku omogućuju odabir broja bitova koji se koriste za eksponent kao i značajnih dijelova broja s pomičnom zarezom. FloatX se temelji na ideji knjižnice FlexFloat za oponašanje plutajućih tipova smanjene preciznosti, ali implementira superset funkcionalnosti FlexFloat u C i pruža omote C ++. FloatX je nastao iz inicijative Open Transprecision Computing. Dostupan je besplatno pod Apache licencom 2.0. 

OpenCV

OpenCV ili Open Source Computer Vision Library je knjižnica računalnog vida i strojnog učenja napisana na jeziku C ++ i dostupna pod BSD licencom. OpenCV je izgrađen kako bi pružio zajedničku infrastrukturu za računalne programe za vid i ubrzao upotrebu percepcije strojeva u komercijalnim proizvodima. Više od 2.500 optimiziranih algoritama za prepoznavanje lica, otkrivanje objekata, klasifikaciju objekata, izdvajanje 3D modela, pretraživanje slika i još mnogo toga, OpenCV je prikupio korisničku zajednicu s više od 47 000 osoba. Dostupna na web mjestu projekta OpenCV, knjižnica nudi sučelja C ++, Java, Python i Matlab te podržava Windows, Linux, Android i MacOS. CUDA i OpenCL sučelja su u razvoju.

Poco C ++ knjižnice

Namijenjene pojednostavljenju razvoja C ++-a, Poco (prijenosne komponente) C ++ knjižnice su C ++ knjižnice za više platformi za izgradnju internetskih i mrežnih aplikacija koje će se izvoditi na sustavima od stolnih računala i poslužitelja do mobilnih i IoT uređaja. Biblioteke se također mogu koristiti za izgradnju mikroservisa s REST API-ima za strojno učenje ili analitiku podataka. Poco biblioteke slične su konceptu Java Class Library, Microsoftovog .NET Framework ili Apple Cocoa.

Programeri mogu koristiti Poco knjižnice za izgradnju poslužitelja aplikacija na C ++-u koji razgovaraju s bazama podataka SQL, Redis ili MongoDB ili za izradu softvera za IoT uređaje koji razgovaraju s pozadinskim oblacima u oblaku. Među značajkama knjižnica su okvir predmemorije, rukovanje HTML obrascima, FTP klijent za prijenos datoteka te HTTP poslužitelj i klijent. Poco knjižnice dostupne su besplatno pod licencom Boost Software i mogu se preuzeti s GitHub-a. 

Knjižnica Windows predložaka

Izvorno od Microsofta, Windows Template Library (WTL) je (od 2004.) biblioteka otvorenog koda za izgradnju laganih Windows aplikacija i komponenata korisničkog sučelja. Pozicioniran kao alternativa alatnom paketu Microsoft Foundation Classes, WTL proširuje ATL i pruža skup klasa za kontrole, dijaloške okvire, okvire prozora i GDI objekte.

Wt

Wt je web GUI biblioteka u modernom C ++-u koja programerima omogućuje izradu interaktivnog web korisničkog sučelja s widgetima, bez potrebe za pisanjem JavaScript-a. Rješenje na strani poslužitelja, Wt zahtijeva rukovanje zahtjevima i prikazivanje stranica, pružajući ugrađenu sigurnost, PDF prikaz, 2D i 3D sustav slikanja, objektno-relacijsku biblioteku mapiranja, knjižnicu grafikona i okvir za provjeru autentičnosti. Osnovna knjižnica je otvorenog koda, pružajući hibridni okvir od jedne stranice koji se može implementirati na Linux, Unix ili Windows.

Razvila ga je tvrtka za softverski inženjering Emweb, Wt je kompatibilan s preglednicima HTML5 i HTML4, kao i s običnim korisničkim agentima HTML-a. A Wt se može integrirati s JavaScript bibliotekama treće strane. Uz Wt, aplikacija je definirana kao hijerarhija widgeta - u rasponu od generičkih widgeta poput gumba do specijaliziranih widgeta poput cijelog widgeta bloga. Stablo widgeta u pregledniku se prikazuje kao HTML / JavaScript. Wt se može preuzeti s web stranice projekta. Dostupni su i uvjeti korištenja za otvoreni izvor i za komercijalnu upotrebu.