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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top