Quali sono i vantaggi dell'utilizzo delle librerie C ++ Boost? [chiuso]
Domanda
Quindi, ho letto tutto e sembra che le librerie di Boost siano molto utilizzate in pratica (non nel mio negozio, però). Perchè è questo? e cosa lo rende così meraviglioso?
Soluzione
Boost è ampiamente utilizzato perché:
- È open source e peer-reviewed.
- Fornisce una vasta gamma di funzionalità agnostiche della piattaforma che STL ha perso.
- È un complemento di STL piuttosto che un rimpiazzo.
- Molti sviluppatori Boost fanno parte del comitato standard C ++. In effetti, molte parti di Boost sono considerate incluse nella prossima libreria standard C ++.
- È ben documentato.
- La sua licenza consente l'inclusione in progetti open-source e closed-source.
- Le sue funzionalità non sono generalmente dipendenti l'una dall'altra, quindi puoi collegare solo le parti richieste. [ commento di Luc Hermitte ]
Altri suggerimenti
Dalla home page:
" ... uno dei progetti di libreria C ++ più apprezzati e sapientemente progettati al mondo. " & # 8212; Herb Sutter e Andrei Alexandrescu, standard di codifica C ++
" Articolo 55: familiarizza con Boost. " & # 8212; Scott Meyers, C ++ effettivo, 3a edizione.
" La soluzione ovvia per la maggior parte dei programmatori è quella di utilizzare una libreria che fornisce una piattaforma elegante ed efficiente indipendente dai servizi necessari. Esempi sono BOOST ... " & # 8212; Bjarne Stroustrup, Abstraction, librerie ed efficienza in C ++
Quindi, è una gamma di librerie ampiamente utilizzate e accettate, ma perché dovresti averne bisogno?
Se necessario:
- regex
- associazione funzioni
- funzioni lambda
- test unitari
- puntatori intelligenti
- non copiabile, facoltativo
- serializzazione
- date generiche
- filesystem portatile
- buffer circolari
- config utils
- libreria di immagini generiche
- TR1
- discussioni
- uBLAS
e altro quando scrivi il codice in C ++, dai un'occhiata a Boost .
Poiché aggiungono molti elementi mancanti alla libreria standard, molti di questi vengono inclusi nello standard.
Promuovi le persone non mentono:
Perché un'organizzazione dovrebbe usare Boost?
In una parola, Produttività. Uso di librerie di alta qualità come Boost accelera lo sviluppo iniziale, risulta in meno bug, riduce reinvenzione della ruota e tagli costi di manutenzione a lungo termine. E da allora Il potenziamento delle biblioteche tende a diventare de standard di fatto o di diritto, molti i programmatori hanno già familiarità con loro.
Sono dieci delle librerie Boost incluso nella libreria standard C ++ TR1, e così sono previsti per il pieno successivo standardizzazione. Più librerie Boost sono in preparazione per TR2. utilizzando Boost libraries dà un'organizzazione un vantaggio nell'adozione di nuovi tecnologie.
Molte organizzazioni utilizzano già programmi implementato con Boost, come Adobe Acrobat Reader 7.0.
Alcune classi Boost sono molto utili (shared_ptr), ma penso che siano andate un po 'fuori di testa con tratti e concetti in Boost. I tempi di compilazione e le enormi dimensioni binarie sono completamente pazzi con Boost, come nel caso di qualsiasi codice pesante per template. Deve esserci un equilibrio. Non sono sicuro che Boost l'abbia trovato.
Aggiunge librerie che consentono un approccio più moderno alla programmazione C ++.
Nella mia esperienza molti programmatori C ++ sono in realtà i primi programmatori C ++ degli anni '90, praticamente scrivendo classi C ++, non usando molto i generici. L'approccio più moderno utilizza i generici per comporre il software in un modo che assomiglia di più ai linguaggi dinamici, ma alla fine si ottiene comunque il controllo / prestazioni del tipo. È un po 'brutto da guardare. Ma una volta superati i problemi di sintassi, è davvero bello. Boost ti offre molti degli strumenti necessari per comporre facilmente le cose. puntatori intelligenti, funzioni, lambda, collegamenti, ecc. Poi ci sono librerie di boost che sfruttano questo nuovo modo di scrivere C ++ per fornire cose come networking, regex, ecc. ecc.
se stai scrivendo un sacco di per loop, o oggetti funzione a rotazione manuale, o facendo la gestione della memoria, allora dovresti assolutamente dare un'occhiata al boost.
BOOST è una raccolta di librerie che riempie le esigenze comuni a molti progetti C ++. In generale, danno priorità alla correttezza, riusabilità, portabilità, prestazioni di runtime ed efficienza dello spazio rispetto alla leggibilità del codice di implementazione BOOST, o talvolta ai tempi di compilazione. Tendono a non soddisfare requisiti funzionali di alto livello (ad es. Framework applicativi) e invece (per fortuna) offrono elementi costitutivi che possono essere combinati più liberamente senza dettare o dominare il design dell'applicazione.
I motivi importanti per considerare l'utilizzo di BOOST includono:
- la maggior parte delle biblioteche sono testate e progettate abbastanza bene: generalmente ottengono una recensione ragionevolmente valida da alcuni programmatori eccellenti, rispetto alle persone con soluzioni home-brew nello stesso spazio problematico e ampiamente utilizzate abbastanza da raccogliere un ampio feedback del mondo reale
- è già scritto e la tua soluzione probabilmente non lo è
- è piuttosto portatile (ma varia in base alla libreria)
- più persone nella comunità C ++ avranno un vantaggio nell'aiutarti con il tuo codice
- BOOST è spesso un banco di prova per l'introduzione dello standard C ++, quindi avrai meno lavoro da fare nella riscrittura del codice per renderlo compatibile con i futuri standard senza BOOST
- a causa della domanda della comunità, i fornitori di compilatori hanno maggiori probabilità di testare e reagire ai problemi di correttezza con l'utilizzo di BOOST
- la familiarità con le librerie boost ti aiuterà a fare un lavoro simile su altri progetti, possibilmente in altre società, dove qualsiasi codice che potresti scrivere ora potrebbe non essere disponibile per il riutilizzo
Le librerie sono descritte in una riga o due qui: http://www.boost.org/ doc / librerie / .
Perché la libreria standard C ++ non è tutto quel completo .
Qualunque cosa con Kevlin Henney dovrebbe essere presa nota di.
Potenzia sostanzialmente la sinossi di ciò che diventerà lo Standard, inoltre, con tutta la revisione e l'utilizzo dei peer che ti dà Boost, puoi essere abbastanza sicuro che otterrai un buon affare per le tue dipendenze.
Comunque la maggior parte dei negozi non usa Boost, perché è una dipendenza esterna. E in realtà ridurre anche le dipendenze esterne è molto importante.
Boost è in C ++ come .NET Framework è in C #, ma forse su scala minore.
Uso un po 'la libreria del filesystem e boost :: shared_ptr è piuttosto ingegnoso. Ho sentito che fa anche altre cose.