it-swarm.com.de

Was sind die Vorteile der Verwendung der C ++ Boost-Bibliotheken?

Also habe ich durchgelesen und es scheint, dass die Boost-Bibliotheken in der Praxis viel genutzt werden (allerdings nicht in meinem Laden). Warum ist das? und was macht es so wunderbar?

116
jdt141

Boost wird so häufig verwendet, weil:

  • Es ist Open Source und von Fachleuten geprüft.
  • Es bietet eine breite Palette von plattformunabhängigen Funktionen, die STL übersehen hat.
  • Es ist eher eine Ergänzung zu STL als ein Ersatz.
  • Viele der Boost-Entwickler gehören dem C++ - Standardkomitee an. Tatsächlich wird davon ausgegangen, dass viele Teile von Boost in der nächsten C++ - Standardbibliothek enthalten sind.
  • Es ist gut dokumentiert.
  • Seine Lizenz erlaubt die Einbeziehung in Open-Source- und Closed-Source-Projekte.
  • Seine Funktionen sind normalerweise nicht voneinander abhängig, sodass Sie nur die Teile verknüpfen können, die Sie benötigen. [ Luc Hermitte s Kommentar]
125
blackwing

Von der Homepage:

"... eines der angesehensten und am besten entworfenen C++ - Bibliotheksprojekte der Welt." - Herb Sutter und Andrei Alexandrescu, C++ - Codierungsstandards

"Punkt 55: Machen Sie sich mit Boost vertraut." - Scott Meyers, Effective C++, 3. Aufl.

"Die naheliegende Lösung für die meisten Programmierer ist die Verwendung einer Bibliothek, die eine elegante und effiziente Plattform unabhängig von den benötigten Diensten bietet. Beispiele sind BOOST ..." - Bjarne Stroustrup, Abstraction, Bibliotheken und Effizienz in C++

Es ist also eine Reihe von weit verbreiteten und akzeptierten Bibliotheken, aber warum sollten Sie sie brauchen?

Wenn Sie brauchen:

  • regex
  • funktionsbindung
  • lambda-Funktionen
  • unit-Tests
  • intelligente Zeiger
  • nicht kopierbar, optional
  • serialisierung
  • gattungsdaten
  • portables Dateisystem
  • kreisförmige Puffer
  • konfigurations-Utils
  • generische Bildbibliothek
  • TR1
  • fäden
  • uBLAS

und more Wenn Sie in C++ programmieren, schauen Sie sich Boost an.

37

Da sie der Standardbibliothek viele fehlende Elemente hinzufügen, werden einige davon in den Standard aufgenommen.

Boost people lügen nicht:

Warum sollte eine Organisation Boost verwenden?

In einem Wort Produktivität. Die Verwendung hochwertiger Bibliotheken wie Boost beschleunigt die Erstentwicklung, führt zu weniger Fehlern, verringert die Neuerfindung des Rads und senkt die langfristigen Wartungskosten. Und da Boost-Bibliotheken tendenziell de facto oder de jure werden, sind viele Programmierer bereits mit ihnen vertraut.

Zehn der Boost-Bibliotheken sind in der TR1 der C++ Standard Library enthalten und für eine spätere vollständige Standardisierung vorgesehen. Weitere Boost-Bibliotheken für TR2 sind in Vorbereitung. Die Verwendung von Boost-Bibliotheken verschafft einem Unternehmen einen Vorsprung bei der Einführung neuer Technologien.

Viele Unternehmen verwenden bereits mit Boost implementierte Programme wie Adobe Acrobat Reader 7.0.

23
Vinko Vrsalovic

Einige Boost-Klassen sind sehr nützlich (shared_ptr), aber ich denke, sie sind ein bisschen durchgeknallt mit Eigenschaften und Konzepten in Boost. Kompilierzeiten und riesige Binärgrößen sind bei Boost völlig verrückt, wie es bei jedem vorlagenintensiven Code der Fall ist. Es muss ein Gleichgewicht geben. Ich bin nicht sicher, ob Boost es gefunden hat.

14
jeramiah

Es werden Bibliotheken hinzugefügt, die einen moderneren Ansatz für die C++ - Programmierung ermöglichen.

Nach meiner Erfahrung sind viele C++ - Programmierer wirklich C++ - Programmierer der frühen neunziger Jahre, die so ziemlich C++ - Klassen schreiben und nicht viel Generika verwenden. Der modernere Ansatz verwendet Generika, um Software in einer Art und Weise zusammenzustellen, die eher dynamischen Sprachen ähnelt, und dennoch erhalten Sie am Ende eine Typprüfung/Leistung. Es ist ein bisschen hässlich anzusehen. Aber sobald Sie die Syntaxprobleme überwunden haben, ist es wirklich ganz nett. Boost bietet Ihnen viele Tools, die Sie zum einfachen Erstellen von Inhalten benötigen. Smart Pointer, Funktionen, Lambdas, Bindings usw. Dann gibt es Boost-Bibliotheken, die diese neuere Art des Schreibens von C++ nutzen, um Dinge wie Networking, Regex usw. bereitzustellen.

wenn Sie viele for-Schleifen oder Hand-Rolling-Funktionsobjekte schreiben oder die Speicherverwaltung durchführen, sollten Sie auf jeden Fall Boost-Out prüfen.

8
Keith Nicholas

BOOST ist eine Sammlung von Bibliotheken, die viele C++ - Projekte gemeinsam haben. Im Allgemeinen legen sie Priorität auf Korrektheit, Wiederverwendbarkeit, Portabilität, Laufzeitleistung und Platzersparnis gegenüber der Lesbarkeit des BOOST-Implementierungscodes oder manchmal der Kompilierungszeiten. Sie decken in der Regel nicht die vollständigen funktionalen Anforderungen auf hoher Ebene ab (z. B. Anwendungsframeworks) und bieten stattdessen (dankenswerterweise) Bausteine, die frei kombiniert werden können, ohne das Anwendungsdesign zu diktieren oder zu dominieren.

Die wichtigsten Gründe für die Verwendung von BOOST sind:

  • die meisten Bibliotheken sind ziemlich gut getestet und entworfen: Sie werden im Allgemeinen von einigen hervorragenden Programmierern mit vernünftigen Testergebnissen bewertet, im Vergleich zu Leuten mit selbst gebrauten Lösungen im selben Problembereich, und sie werden häufig genug verwendet, um ein umfassendes Feedback aus der Praxis zu erhalten
  • es ist bereits geschrieben und Ihre Lösung ist es wahrscheinlich nicht
  • es ist ziemlich portabel (aber das variiert je nach Bibliothek)
  • weitere Mitglieder der C++ - Community haben einen Vorsprung bei der Unterstützung Ihres Codes
  • BOOST ist häufig ein Testfeld für die Einführung in den C++ - Standard. Sie müssen also weniger Zeit aufwenden, um Ihren Code so umzuschreiben, dass er mit zukünftigen Standards ohne BOOST kompatibel ist
  • aufgrund der Nachfrage in der Community testen und reagieren Compiler-Anbieter mit größerer Wahrscheinlichkeit auf Korrektheitsprobleme bei der Verwendung von BOOST
  • wenn Sie mit Boost-Bibliotheken vertraut sind, können Sie ähnliche Arbeiten an anderen Projekten durchführen, möglicherweise in anderen Unternehmen, in denen der Code, den Sie jetzt schreiben, möglicherweise nicht mehr wiederverwendet werden kann

Die Bibliotheken werden hier in ein oder zwei Zeilen beschrieben: http://www.boost.org/doc/libs/ .

8
Tony Delroy

Weil die C++ - Standardbibliothek nicht alles ist vollständig.

6
Hans Sjunnesson

Alles, was mit Kevlin Henney zu tun hat, sollte zur Kenntnis genommen werden.

5
Umber Ferrule

Boost ist in C++ ähnlich wie .NET Framework in C #, aber möglicherweise in kleinerem Maßstab.

3
macbirdie

Steigern Sie im Grunde genommen die Übersicht über das, was der Standard werden wird, und mit all den Peer-Reviews und der Nutzung, die Boost bietet, können Sie ziemlich sicher sein, dass Sie für Ihre Abhängigkeiten ein gutes Geschäft abschließen.

Die meisten Shops verwenden Boost jedoch nicht, da es sich um eine externe Abhängigkeit handelt. In Wirklichkeit ist es auch sehr wichtig, die externen Abhängigkeiten zu verringern.

3
Robert Gould

Ich benutze die Dateisystembibliothek, beende ein bisschen und der boost :: shared_ptr ist ziemlich geschickt. Ich höre, dass es auch andere Dinge tut.

2
Terry G Lorber