42 Stimmen

Boost C++-Bibliotheken verwenden?

Mögliches Duplikat:
Boost-Bibliothek

Oft, wenn ich ein C++-Projekt ausprobiert habe (und gescheitert bin), bin ich beim Surfen im Internet auf Boost gestoßen. Ich habe versucht, die Boost-Website zu lesen, aber es gab keine gute kurze Beschreibung, warum man Boost verwenden sollte und was es genau ist.

Eines der Dinge, die ich sehr an Python mag, ist, dass alles eingebaut und plattformübergreifend ist, Web-Anfragen, E-Mail, XML, JSON, etc. Ist dies auch bei Boost der Fall?

So, genug geschimpft, jetzt meine konkreten, beantwortbaren Fragen:

  • Was genau ist Boost?
  • Was sind die wichtigsten Gründe für die Verwendung von Boost?
  • Ist sie vollständig plattformübergreifend?
  • Ist es "sicherer" als normaler selbstgebauter Code, bei dem man schnell einen Pufferüberlauf usw. übersieht?
  • Gibt es einen Link zu einer Seite mit einer Beschreibung aller Module von Boost in ein oder zwei Sätzen?

47voto

Konrad Rudolph Punkte 503837

Was genau ist Boost?

Boost ist eine Sammlung von nützlichen und äußerst hochwertigen Bibliotheken für C++, die die eher kleine Standardbibliothek ergänzen.

Was sind die wichtigsten Gründe für die Verwendung von Boost?

Boost bietet hochwertige Werkzeuge, die in C++ fehlen. Ihre Verwendung ist jedoch äußerst vielfältig, so dass es ganz von Ihren Bedürfnissen abhängt, ob Boost für Sie geeignet ist. Aber ich kann mit Sicherheit sagen, dass jede Eine ausreichend große C++-Codebasis würde von der Verwendung von Boost profitieren.

Einige der vielseitigsten Teile sind die shared_ptr (ein referenzzählender Smart Pointer, der hilft, Speicherlecks in zeigerreichem Code zu verhindern), array die eine sehr bequeme Umhüllung für C-artige Arrays fester Größe und andere kleine ungerade Bits bietet, die in den nächsten C++-Standard integriert worden sind.

Ist sie vollständig plattformübergreifend?

Fast immer ja. Dies ist eine der wichtigsten Eigenschaften von Boost.

Gibt es einen Link zu einer Seite, die alle Module von Boost in ein oder zwei Sätzen beschreibt?

Das ist in der Tat der Fall.

12voto

Moo-Juice Punkte 37380

1) Boost ist eine Reihe von APIs, die von einigen der besten Köpfe in C++ entwickelt wurden. Sie können so viel oder so wenig verwenden, wie Sie wollen. Jede API zielt auf ein bestimmtes Paradigma ab und löst es. Zum Beispiel:

lexical_cast<>  - Type-safe ways of casting from one type to another.
program_options - Library for parsing command lines in a type-safe manner
asio            - Asynchronous Input/Output.  Great for working with sockets, IP4/IP6
shared_ptr      - Reference-counted smart pointer

... und viele mehr.

2) Einer der wichtigsten Gründe für die Verwendung von Boost ist, dass die großen Entwickler, die dies getan haben, es auch getan haben. Diese Lösungen sind von Fachleuten geprüft und robust. Wenn Sie ein Problem zu lösen haben und Boost hat eine API, die die Rechnung passt, sind die Chancen, Sie sollten es verwenden.

3) Es ist so plattformübergreifend wie möglich, d.h. ja.

4) Ich würde Boost jedem selbstgebrauten Code vorziehen. Homebrew wird in der Regel von einem einzigen Entwickler verwendet (der Person, die es programmiert hat). Boost wird überall in kommerziellen Anwendungen eingesetzt, und wie ich bereits sagte, ist es von Fachleuten geprüft. Viel robuster geht es nicht mehr.

5) Auf der Hauptseite von boost finden Sie eine Liste der Bibliotheken nach Funktionen und in alphabetischer Reihenfolge.

10voto

Michael Goldshteyn Punkte 68533

Was genau ist Boost?

Boost ist eine Sammlung von C++-Bibliotheken, mit deren Hilfe Sie das Schreiben von eigenem Code zur Lösung gängiger Probleme vermeiden können.

Was sind die wichtigsten Gründe für die Nutzung von Boost?

Boost erspart Ihnen das Entwerfen, Implementieren und Testen der angebotenen Lösungen. Das spart Ihnen enorm viel Zeit und hilft Ihnen, Fehler auf dem Weg zu vermeiden.

Ist sie vollständig plattformübergreifend?

Boost unterstützt viele Plattformen und bietet manchmal Lösungen an, die auf bestimmten Plattformen effizient sind. Sie können die Plattformen, auf denen es getestet wurde, in der Nähe der Unterseite der aktuellen Version sehen Seite unter dem Getestete Compiler Überschrift.

Ist es "sicherer" als normaler selbstgebastelter Code, bei dem man schnell mal einen Pufferüberlauf, usw.?

Ja, es sei denn, Sie haben viel Zeit für das Testen Ihres Codes. Boost verfügt über eine automatisierte Test-Suite und wird von Hunderttausenden, wenn nicht Millionen von Entwicklern im täglichen Einsatz getestet. Außerdem gibt es eine umfangreiche Dokumentation, die Sie bei der Entwicklung mit den enthaltenen Bibliotheken unterstützt. Boost ist nicht nur sicherer als der meiste selbstgebraute Code, es ist auch im Allgemeinen leistungsfähiger.

Gibt es einen Link zu einer Seite, die alle Module von Boost in ein oder zwei Sätzen beschreibt?

Der Schub Dokumentation der Bibliothek Die Seite mit den Links bietet eine Zusammenfassung aller Bibliotheken in Boost in einem Satz.

3voto

Mark Loeser Punkte 16777

Boost ist eine Sammlung von Klassen und anderen Dingen für C++, die in der STL fehlen. Viele der Bibliotheken in Boost werden in den neuen C++-Standard aufgenommen. Es ist auf jeden Fall viel sicherer als das, was Sie sich selbst ausdenken könnten, da dieser Code weit verbreitet ist und von Experten geprüft wurde. Es ist in der Regel vollständig plattformübergreifend, aber es kann einige Probleme geben.

Was den Auftrieb betrifft, so sollten Sie sich dies ansehen: http://www.boost.org/doc/libs/1_45_0/?view=categorized

3voto

Tony Delroy Punkte 98528

BOOST ist eine Sammlung von Bibliotheken, die für viele C++-Projekte benötigt werden. Im Allgemeinen haben Korrektheit, Wiederverwendbarkeit, Portabilität, Laufzeitleistung und Platzersparnis Vorrang vor der Lesbarkeit des BOOST-Implementierungscodes oder manchmal der Kompilierzeit. Sie decken in der Regel nicht die kompletten funktionalen Anforderungen auf hoher Ebene ab (z. B. Anwendungs-Frameworks) und bieten stattdessen (glücklicherweise) Bausteine, die freier kombiniert werden können, ohne den Anwendungsentwurf zu diktieren oder zu dominieren.

Die wichtigsten Gründe für den Einsatz von BOOST sind:

  • Die meisten Bibliotheken sind ziemlich gut getestet und entwickelt: Sie werden in der Regel von einigen hervorragenden Programmierern angemessen bewertet, im Vergleich zu Leuten mit selbstgebastelten Lösungen für denselben Problembereich, und sind weit genug verbreitet, um umfangreiches Feedback aus der Praxis zu erhalten.
  • es ist bereits geschrieben und Ihre Lösung ist wahrscheinlich nicht
  • es ist ziemlich portabel (aber das variiert je nach Bibliothek)
  • mehr Leute in der C++-Gemeinschaft haben einen Vorsprung, wenn es darum geht, Ihnen bei Ihrem Code zu helfen
  • BOOST ist oft ein Testfeld für die Einführung in den C++-Standard, so dass Sie weniger Arbeit haben, wenn Sie Ihren Code umschreiben, um mit zukünftigen Standards ohne BOOST kompatibel zu sein.
  • Aufgrund der Nachfrage aus der Community sind die Compilerhersteller eher bereit, Probleme mit der Korrektheit bei der Verwendung von BOOST zu testen und darauf zu reagieren.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X