Was sind die Vorteile der Verwendung der C ++ Bibliotheken Auftrieb? [geschlossen]
Frage
Also, ich habe durch gelesen und es scheint, dass die Boost-Bibliotheken viel in der Praxis zu gewöhnen (nicht in meinem Geschäft, obwohl). Warum ist das? und was macht es so wunderbar?
Lösung
Erhöhung verwendet wird, so umfangreich, weil:
- Es ist Open-Source und Peer-Review.
- Sie bietet eine von plattformunabhängig Funktionalität rel="noreferrer">, die verpasst STL.
- Es ist eine Ergänzung zu STL eher als ein Ersatz.
- Viele Boost-Entwickler sind auf dem Standard-Komitee C ++. In der Tat ist viele Teile Erhöhung betrachtet in der nächsten C ++ Standard-Bibliothek aufgenommen werden.
- Es ist dokumentiert, schön.
- Die Lizenz Aufnahme in Open-Source und Closed-Source-Projekten ermöglicht.
- Seine Eigenschaften sind nicht in der Regel voneinander abhängig, so können Sie verknüpfen nur die Teile, die Sie benötigen. [ Luc Hermitte 's comment]
Andere Tipps
Von der Startseite:
„... eine der angesehensten und fachmännisch C ++ Bibliothek Projekte in der Welt entwickelt.“ - Herb Sutter und Andrei Alexandrescu, C ++ Coding Standards
"Artikel 55: Machen Sie sich mit kurbeln." -. Scott Meyers, Effective C ++, 3. Ed
„Die offensichtliche Lösung für die meisten Programmierer ist es, eine Bibliothek zu verwenden, die eine elegante und effiziente Plattform unabhängig benötigte Dienste zur Verfügung stellt. Beispiele hierfür sind BOOST ...“ - Bjarne Stroustrup, Abstraktion, Bibliotheken und Effizienz in C ++
Also, es ist eine Reihe von weit verbreiteten und akzeptierten Bibliotheken, aber warum sollten Sie es brauchen?
Wenn Sie:
- regex
- Funktion Bindung
- Lambda-Funktionen
- Unit-Tests
- intelligente Zeiger
- noncopyable, optional
- Serialisierung
- Gattungsdaten
- portable Dateisystem
- Ringpuffer
- config-utils
- generic Bildbibliothek
- TR1
- Themen
- uBLAS
und mehr , wenn Sie Code in C ++, hat einen Blick auf Erhöhung .
Weil sie viele fehlende Dinge auf die Standard-Bibliothek hinzufügen, so sehr, einige von ihnen sind in den Standard aufgenommen zu werden.
Menschen steigern nicht liegen:
Warum sollte eine Organisation Verwendung Auftrieb?
Mit einem Wort: Die Produktivität. Gebrauch von hochwertige Bibliotheken wie Boost- beschleunigt anfängliche Entwicklung, führt zu weniger Fehler, reduziert Neuerfindung-of-the-Rad und Schnitte Langfristig Wartungskosten. Und seit Boost-Bibliotheken neigen de zu werden facto oder de jure-Standards, viele Programmierer sind bereits bekannt sie.
Zehn der Boost-Bibliotheken sind in der C ++ Standard Library ist enthalten TR1, und so ist für später geplant voll Standardisierung. Mehr Boost-Bibliotheken in der Pipeline für TR2 sind. Mit Boost-Bibliotheken gibt eine Organisation ein Vorsprung in neuen Erlass Technologien.
Viele Unternehmen bereits Programme verwenden mit Boost-implementiert, wie Adobe Acrobat Reader 7.0.
Einige Boost-Klassen sind sehr nützlich (shared_ptr), aber ich denke, dass sie ein bisschen verrückt mit Eigenschaften und Konzepte in Boost-ging. Kompilieren Zeiten und große binäre Größen sind völlig verrückt mit Boost, wie es der Fall mit jeder Vorlage schwerer Code. Es muss ein Gleichgewicht sein. Ich bin mir nicht sicher, ob Boost-es gefunden hat.
Es fügt Bibliotheken, die für einen moderneren Ansatz für C ++ Programmierung ermöglichen.
Nach meiner Erfahrung viele C ++ Programmierer sind wirklich die Anfang der 1990er Jahre C ++ Programmierer, so ziemlich Schreiben C ++ Klassen, nicht viel Gebrauch von Generika. Der moderneren Ansatz verwendet Generika-Software zu komponieren zusammen in Art und Weise, das ist mehr wie dynamische Sprachen, aber Sie noch Typprüfung / Leistung am Ende bekommen. Es ist ein bisschen hässlich, zu betrachten. Aber sobald man über die Syntax Probleme bekommen, ist es wirklich ganz nett. Auftrieb gibt Ihnen eine Menge von Werkzeugen, die Sie benötigen Sachen leicht zu komponieren. Smart-Pointer, Funktionen, Lambda-Ausdrücke, Bindungen, usw. Dann gibt es Boost-Bibliotheken, die diese neuere Art und Weise des Schreibens C ++ ausnutzen Dinge wie Vernetzung zu bieten, regex, etc etc ...
Wenn Sie eine Menge für Schleifen schreiben, oder Handfunktion Objekte rollen, oder tut Speicherverwaltung, dann sollten Sie auf jeden Fall überprüfen steigern werden.
BOOST ist eine Sammlung von Bibliotheken Bedürfnisse, die in vielen C ++ Projekten zu füllen. Im Allgemeinen, sie priorisieren Korrektheit, Wiederverwertbarkeit, Portabilität, Laufzeitleistung und Raum-Effizienz über die Lesbarkeit von BOOST Implementierungscode, oder manchmal mal kompilieren. Sie neigen dazu, nicht vollständig auf hohe Ebene funktionale Anforderungen (zum Beispiel Anwendungs-Frameworks) abzudecken, und statt (zum Glück) bietet Bausteine, die mehr frei kombiniert werden können, ohne Diktieren oder dominieren das Anwendungsdesign.
Die wichtige Gründe mit BOOST zu berücksichtigen sind:
- die meisten Bibliotheken sind ziemlich gut getestet und entwickelt: sie in der Regel eine hinreichend sichere Bewertung von einigen ausgezeichneten Programmierern erhalten, im Vergleich zu Menschen mit nach Hause brauen Lösungen im gleichen Problemraum und weit verbreitet genug, um umfangreiches reale Welt Feedback zu sammeln
- es ist bereits geschrieben und Ihre Lösung ist wahrscheinlich nicht
- es ist ziemlich tragbar (aber das variiert je nach Bibliothek)
- mehr Menschen in der C ++ Gemeinschaft einen Vorsprung in Sie mit Ihrem Code zu helfen haben
- BOOST ist oft ein Prüfgelände für Einführung in die C ++ Standard so werden Sie weniger Arbeit haben in Umschreiben Code zu tun, mit zukünftigen Standards sans kompatibel zu sein BOOST
- aufgrund der Nachfrage in der Gemeinschaft, Compiler-Anbieter sind eher zu testen und zu Fragen der Korrektheit mit BOOST Nutzung reagieren
- Vertrautheit mit Boost-Bibliotheken finden Sie auf anderen Projekten eine ähnliche Arbeit tun helfen, möglicherweise auch in anderen Unternehmen, wo alles, was Code, den Sie jetzt vielleicht nicht für die Wiederverwendung zur Verfügung schreiben könnte
Die Bibliotheken werden in einer Zeile oder zwei hier beschrieben: http://www.boost.org/ doc / libs / .
Da die C ++ Standardbibliothek ist nicht alles, was vollständig .
Alles, was mit Kevlin Henney 'Beteiligung getroffen werden sollten zur Kenntnis.
-Boost im Grunde die Zusammenfassung dessen, was der Norm wird sich neben mit allen Peer-Review und Nutzung, die Sie Auftrieb erhält hübsch sein kann, dass Ihr immer ein ziemlich gutes Geschäft für Ihre Abhängigkeiten.
Doch die meisten Geschäfte nicht verwenden Boost, weil seine externe Abhängigkeit. Und in Wirklichkeit Verringerung der externen Abhängigkeiten ist auch sehr wichtig.
Boost ist auf C ++ Art wie .NET Framework C # ist, aber vielleicht in einem kleineren Maßstab.
Ich benutze die Dateisystem-Bibliothek ein wenig verlassen, und die boost :: shared_ptr ist ziemlich raffiniert. Ich höre es tut andere Dinge auch.