Programmering

8 fantastiske biblioteker til C ++ programmering

C ++ er et programmeringssprog til generelle formål, der nu er mere end 40 år gammelt og er designet i 1979. C ++ ligger langt fra at miste dampen og ligger stadig øverst på flere indekser for popularitetsprogrammeringssprog.

Udjævning af stien til C ++ -brug er bred understøttelse af sproget blandt producenterne af IDE'er, redaktører, kompilatorer, testrammer, kodekvalitet og andre værktøjer. Softwareudviklere har også mange fremragende biblioteker til rådighed til at hjælpe med at opbygge C ++ - applikationer. Her er otte, som C ++ - udviklere stoler på.

Aktivt skabelonbibliotek

Fra Microsoft er Active Template Library (ATL) et sæt C ++ - klasser til opbygning af COM-objekter (Common Object Model) med understøttelse af COM-funktioner såsom dobbeltgrænseflader, standard COM-tællergrænseflader, forbindelsespunkter og ActiveX-kontroller. Fås med Visual Studio IDE, ATL kan bruges til at bygge objekter med enkelt gevind, lejlighedsmodelobjekter, modelobjekter med fri gevind eller både objekter med frit gevind og lejlighedsmodel.

Asio C ++ - bibliotek

Asio C ++ -biblioteket bruges til netværks- og lavt niveau I / O-programmering og tilbyder en ensartet asynkron model. Asio, der leverer grundlæggende byggesten til samtidighed, C ++ - netværk og andre typer I / O, er blevet brugt i applikationer lige fra smartphone-apps og -spil til meget interaktive websteder og transaktionssystemer i realtid. Projekter, der bruger Asio, inkluderer WebSocketPP-biblioteket og DDT3-fjernfejlfinding til Lua-sproget. Asio er tilgængelig som gratis open source under Boost-softwarelicensen og understøttes på Linux, Windows, MacOS og FreeBSD.

Eigen

Eigen er et C ++ - skabelonbibliotek til lineær algebra, herunder matricer, vektorer, numeriske opløsere og relaterede algoritmer. Alle matrixstørrelser understøttes, fra små, faste matricer til vilkårligt store, tætte matricer. Algoritmer vælges for pålidelighed. Alle standard numeriske typer understøttes. For hastighed har Eigen ekspressionsskabeloner til intelligent fjernelse af midlertidige og muliggør doven evaluering. Gratis tilgængelig under Mozilla Public License 2 og kan downloades fra Eigen-projektsiden. Eigen er udstyret med en API, der af fortalere er beskrevet som udtryksfuld og ren og naturlig for C ++ - programmører. Testpakken til Eigen er kørt mod mange compilere for at sikre pålidelighed.

FloatX

FloatX, eller Float eXtended, er et kun headerbibliotek til emulering af typen med flydende punkt med lav præcision. Mens de er kompatible med C ++ -compilere, kan FloatX kaldes til af andre sprog som Python eller Fortran. Flydepunkttyper udvides ud over de indfødte enkelt- og dobbeltpræcisionstyper. Der tilvejebringes skabelontyper, der giver brugeren mulighed for at vælge antallet af bits, der bruges til eksponenten, såvel som betydelige dele af det flydende punktummer. FloatX er baseret på ideen om FlexFloat-biblioteket til at emulere flydende typer med reduceret præcision, men implementerer et supersæt af FlexFloat-funktionalitet i C og leverer C ++ -indpakninger. FloatX opstod fra Open Transprecision Computing-initiativet. Den er tilgængelig gratis under Apache License 2.0.

OpenCV

OpenCV, eller Open Source Computer Vision Library, er et bibliotek med computersyn og maskinindlæring skrevet indbygget i C ++ og tilgængeligt under en BSD-licens. OpenCV blev bygget til at give fælles infrastruktur til computersynsapplikationer og fremskynde brugen af ​​maskinopfattelse i kommercielle produkter. Mere end 2.500 optimerede algoritmer til ansigtsgenkendelse, objektgenkendelse, objektklassificering, 3D-modelekstraktion, billedsøgning og meget mere har OpenCV samlet et brugerfællesskab på mere end 47.000 personer. Biblioteket er tilgængeligt fra OpenCV-projektwebstedet og leverer C ++, Java, Python og Matlab-grænseflader og understøtter Windows, Linux, Android og MacOS. CUDA- og OpenCL-grænseflader er under udvikling.

Poco C ++ biblioteker

Poco (Portable Components) C ++ - biblioteker, der er beregnet til at forenkle C ++ - udvikling, er C ++ - biblioteker på tværs af platforme til opbygning af internet- og netværksapplikationer til at køre på systemer lige fra desktops og servere til mobile og IoT-enheder. Bibliotekerne kan også bruges til at opbygge mikrotjenester med REST API'er til maskinindlæring eller dataanalyse. Poco-bibliotekerne ligner konceptet Java Class Library, Microsofts .NET Framework eller Apple Cocoa.

Udviklere kan bruge Poco-biblioteker til at opbygge applikationsservere i C ++, der taler til SQL-databaser, Redis eller MongoDB eller til at opbygge software til IoT-enheder, der taler med cloud-back-ender. Blandt funktionerne i bibliotekerne er en cache-ramme, HTML-formhåndtering, en FTP-klient til overførsel af filer og en HTTP-server og klient. Poco-bibliotekerne er tilgængelige gratis under Boost-softwarelicensen og kan downloades fra GitHub.

Windows skabelonbibliotek

Oprindeligt fra Microsoft er Windows Template Library (WTL) (siden 2004) et open source-bibliotek til opbygning af lette Windows-applikationer og UI-komponenter. Placeret som et alternativ til Microsoft Foundation Classes-værktøjssættet, udvider WTL ATL og giver et sæt klasser til kontrolelementer, dialoger, rammevinduer og GDI-objekter.

Wt

Wt er et web-GUI-bibliotek i moderne C ++, der giver udviklere mulighed for at oprette interaktive web-UI'er med widgets uden at skulle skrive JavaScript. En løsning på serversiden, Wt anmoder om håndtering og gengivelse af sider, der leverer indbygget sikkerhed, PDF-gengivelse, et 2D- og 3D-malerisystem, et objektrelationelt kortlægningsbibliotek, et kortbibliotek og en autentificeringsramme. Kernebiblioteket er open source og leverer en hybrid ensidig ramme, der kan implementeres på Linux, Unix eller Windows.

Wt er udviklet af softwareteknikfirmaet Emweb og er kompatibelt med HTML5- og HTML4-browsere samt med almindelige HTML-brugeragenter. Og Wt kan integreres med JavaScript-biblioteker fra tredjepart. Med Wt defineres en applikation som et hierarki af widgets - der spænder fra generiske widgets såsom trykknapper til specialiserede widgets såsom en hel blog-widget. Widget-træet gengives som HTML / JavaScript i browseren. Wt kan downloades fra projektets webside. Både open source og kommercielle anvendelsesbetingelser er tilgængelige.