8 fantastiche librerie per la programmazione C ++

Il C ++ è un linguaggio di programmazione per sistemi generico che ha ormai più di 40 anni, essendo stato progettato nel 1979. Lungi dal perdere forza, il C ++ si colloca ancora in cima agli indici di popolarità di più linguaggi di programmazione.

L'ottimizzazione del percorso verso l'utilizzo del C ++ è un ampio supporto per il linguaggio tra i creatori di IDE, editor, compilatori, framework di test, qualità del codice e altri strumenti. Gli sviluppatori di software hanno anche a loro disposizione molte eccellenti librerie per assistere nella creazione di applicazioni C ++. Eccone otto su cui fanno affidamento gli sviluppatori C ++. 

Libreria di modelli attiva

Da Microsoft, Active Template Library (ATL) è un insieme di classi C ++ per la creazione di oggetti COM (Common Object Model), con supporto per funzionalità COM come interfacce doppie, interfacce di enumeratori COM standard, punti di connessione e controlli ActiveX. Disponibile con l'IDE di Visual Studio, ATL può essere usato per creare oggetti a thread singolo, oggetti modello apartment, oggetti modello a thread libero o oggetti modello a thread libero e apartment.

Libreria Asio C ++

La libreria Asio C ++ viene utilizzata per la programmazione di I / O di rete e di basso livello, offrendo un modello asincrono coerente. Fornendo elementi costitutivi di base per concorrenza, reti C ++ e altri tipi di I / O, Asio è stato utilizzato in applicazioni che vanno dalle app per smartphone e giochi a siti Web altamente interattivi e sistemi di transazione in tempo reale. I progetti che utilizzano Asio includono la libreria WebSocketPP e il debugger remoto DDT3 per il linguaggio Lua. Asio è disponibile come open source gratuito con la licenza Boost Software e supportato su Linux, Windows, MacOS e FreeBSD.

Eigen

Eigen è una libreria di modelli C ++ per l'algebra lineare, incluse matrici, vettori, risolutori numerici e algoritmi correlati. Sono supportate tutte le dimensioni delle matrici, dalle matrici piccole e fisse alle matrici arbitrariamente grandi e dense. Gli algoritmi sono selezionati per l'affidabilità. Sono supportati tutti i tipi numerici standard. Per la velocità, Eigen dispone di modelli di espressione per rimuovere in modo intelligente i provvisori e consentire una valutazione pigra. Disponibile gratuitamente sotto la Mozilla Public License 2 e scaricabile dalla pagina del progetto Eigen, Eigen è stato dotato di un'API descritta dai proponenti come espressiva, pulita e naturale per i programmatori C ++. La suite di test per Eigen è stata eseguita su molti compilatori per garantire l'affidabilità.

FloatX

FloatX, o Float eXtended, è una libreria di sola intestazione per l'emulazione di tipo a virgola mobile a bassa precisione. Sebbene sia nativamente compatibile con i compilatori C ++, FloatX può essere chiamato da altri linguaggi come Python o Fortran. I tipi a virgola mobile vengono estesi oltre i tipi nativi a precisione singola e doppia. Vengono forniti tipi di modello che consentono all'utente di selezionare il numero di bit utilizzati per l'esponente nonché parti significative del numero in virgola mobile. FloatX si basa sull'idea della libreria FlexFloat per l'emulazione di tipi mobili a precisione ridotta, ma implementa un superset di funzionalità FlexFloat in C e fornisce wrapper C ++. FloatX è nato dall'iniziativa Open Transprecision Computing. È disponibile gratuitamente con la licenza Apache 2.0. 

OpenCV

OpenCV, o Open Source Computer Vision Library, è una libreria di computer vision e machine learning scritta nativamente in C ++ e disponibile con una licenza BSD. OpenCV è stato creato per fornire un'infrastruttura comune per le applicazioni di visione artificiale e accelerare l'uso della percezione della macchina nei prodotti commerciali. Oltre 2.500 algoritmi ottimizzati per riconoscimento facciale, rilevamento di oggetti, classificazione di oggetti, estrazione di modelli 3D, ricerca di immagini e molto altro, OpenCV ha riunito una comunità di utenti di oltre 47.000 persone. Disponibile dal sito Web del progetto OpenCV, la libreria fornisce interfacce C ++, Java, Python e Matlab e supporta Windows, Linux, Android e MacOS. Le interfacce CUDA e OpenCL sono in fase di sviluppo.

Librerie Poco C ++

Destinate a semplificare lo sviluppo C ++, le librerie C ++ Poco (Portable Components) sono librerie C ++ multipiattaforma per la creazione di applicazioni Internet e di rete da eseguire su sistemi che vanno da desktop e server a dispositivi mobili e IoT. Le librerie possono essere utilizzate anche per creare microservizi con API REST per l'apprendimento automatico o l'analisi dei dati. Le librerie Poco sono concettualmente simili a Java Class Library, .NET Framework di Microsoft o Apple Cocoa.

Gli sviluppatori possono utilizzare le librerie Poco per creare server applicazioni in C ++ che comunicano con database SQL, Redis o MongoDB o per creare software per dispositivi IoT che comunicano con back-end cloud. Tra le caratteristiche delle librerie vi sono un framework cache, gestione di moduli HTML, un client FTP per il trasferimento di file e un server e client HTTP. Le librerie Poco sono disponibili gratuitamente con la licenza software Boost e possono essere scaricate da GitHub. 

Libreria di modelli di Windows

Originariamente da Microsoft, la Windows Template Library (WTL) è (dal 2004) una libreria open source per la creazione di applicazioni Windows leggere e componenti dell'interfaccia utente. Posizionato come alternativa al toolkit Microsoft Foundation Classes, WTL estende ATL e fornisce un insieme di classi per controlli, finestre di dialogo, finestre con frame e oggetti GDI.

Peso

Wt è una libreria GUI Web nel moderno C ++ che consente agli sviluppatori di creare interfacce utente Web interattive con widget, senza dover scrivere JavaScript. Una soluzione lato server, Wt richiede la gestione e il rendering delle pagine, fornendo sicurezza integrata, rendering PDF, un sistema di pittura 2D e 3D, una libreria di mappatura relazionale a oggetti, una libreria di grafici e un framework di autenticazione. La libreria principale è open source e fornisce un framework ibrido a pagina singola che può essere distribuito su Linux, Unix o Windows.

Sviluppato dalla società di ingegneria del software Emweb, Wt è compatibile con i browser HTML5 e HTML4 e con i semplici programmi utente HTML. E Wt può integrarsi con librerie JavaScript di terze parti. Con Wt, un'applicazione è definita come una gerarchia di widget, che vanno da widget generici come pulsanti a widget specializzati come un intero widget di blog. L'albero dei widget viene visualizzato come HTML / JavaScript nel browser. Wt può essere scaricato dalla pagina web del progetto. Sono disponibili termini di utilizzo sia open source che commerciali.