Ich arbeite an einem großen Projekt, das die STL verwendet und habe eine Frage über Ihre bevorzugte Art, Ihre STL #includes
zu organisieren.Wie organisieren Sie Ihre STL-Header?
- Möchten Sie # jeden Header in der Quelldatei, in der er verwendet wird, einschließen? Wenn zum Beispiel sowohl
foo.cpp
als auchbar.cpp
std::string
erfordern, dann werden beide#include <string>
. - Bevorzugen Sie eine einzelne Header-Datei, die alle STL-Header enthält, die Ihr Projekt verwendet (z. B. fügen Sie sie zu dem vorkompilierten Header "stdafx.h" von MS hinzu).
Der Vorteil des ersten Verfahrens ist, dass die CPP-Datei eine eigenständige Einheit ist und kann, ohne sich Sorgen zu machen in einem anderen Projekt verwendet werden, dass Sie eine #include
fehlt sind. Die Vorteile der zweiten Methode sind, dass Sie Ihre Compiler vorkompilierte Header-Unterstützung verwenden können und Sie können STL #includes
in pragmas
, die einige Warnungen deaktivieren (zum Beispiel einige Boost-Header führen Warnungen beim Kompilieren auf Stufe 4) umbrechen.
Welche bevorzugen Sie zu verwenden?
Danke für die Antwort und die Buchempfehlung. – Rob