2009-01-13 6 views
9

Gibt es eine Möglichkeit, den Quellcode der Boost-Bibliotheken zu erhalten? Ich habe das SVN-Repository durchsucht und konnte nur HPP-Dateien sehen. Keine Quelldateien sind dort verfügbar. Ich würde gerne in den Quellcode für "shared_ptr" schauen. Kann mir jemand helfen?Boost-Quellcode

Auch von wo kann ich BCP Dienstprogramm herunterladen?

Antwort

27

Die überwiegende Mehrheit des Quellcodes ist vollständig in den Header-Dateien - es muss in Ordnung sein, damit Vorlagen funktionieren. Sie können Vorlagencode nicht in Quelldateien einfügen und sie separat kompilieren.

+1

ich von Bruce Eckel (Denken in C++) gelesen habe, dass die gesamten Code in Header-Dateien setzte weniger performant und es ist eine schlechte Praxis. Aber da Boost es benutzt, bin ich verwirrt. Ist es eine akzeptierte Praxis? –

+2

Boost muss dies aufgrund ihrer umfangreichen Verwendung von Vorlagen tun.Es erhöht zwar die Kompilierzeit (manchmal signifikant), aber es gibt keinen wirklichen Weg um es herum. Es erleichtert auch die Verwendung von Boost, da keine Bibliotheken mit Ihrer Anwendung verteilt werden müssen. – Eclipse

+0

Wie ich mich erinnere, ist der Code alle in Vorlagen, die keine konkrete Implementierung hat, bis die Vorlage in Ihrem Client-Code erweitert wird. Der Code ist die instanziierte Vorlage, nicht die "Kopfzeile". – JasonTrue

3

Wie Adam erwähnt, es ist fast alles in den Headern. Einige, wie boost :: regex, benötigen Quelldateien, die aber auch im Hauptdownload enthalten sind.

Das BCP-Dienstprogramm ist im Hauptdownload enthalten.

1

Die Boost-Bibliotheken haben folgende Kernverzeichnisstruktur:

-> boost: die Header-Dateien enthält. Da ein Großteil von Boost in Kopfzeilen implementiert ist, enthält dies auch viele Implementierungs-, normalerweise detaillierte Unterverzeichnisse.

-> lib: Enthält die vorkompilierten Quellen, Testsuiten, Beispiele und manchmal Dokumentation der Bibliotheken.

-> doc: Enthält einige Dokumentation.

-> tools: Enthält die Tools wie Boost.Jam, Boost.Build, Standalone Wave und auch BCP.

3

Der größte Teil der Boost ist in Headern, aber einige Teile sind in cpp -Dateien auch. Die doc index page Liste, welche Bibliotheken nur Header/nicht Header sind. Sie können die Boost-Quelle here herunterladen. Die Quelle bcp ist auch im Archiv im Unterverzeichnis tools/bcp verfügbar.

6

Alle Quelldateien (CPP) sind unter unter/boost/libs/<Bibliotheksname>

Die Mehrheit der Boost-Bibliotheken vollständig aus Header bestehen. Die Ausnahmen sind:

  • Test
  • Gewinde
  • Welle
  • Serialisierung
  • Signale
  • Python
  • regex
  • math
  • Graph
  • iostreams
  • Dateisystem
  • Datetime