Pracuję nad dużym projektem korzystającym ze STL i mając pytanie dotyczące preferowanego sposobu organizacji STL #includes
.W jaki sposób organizujesz nagłówki STL?
- Wolisz #include każdego nagłówka w pliku źródłowym, którego jest użyty. Na przykład, jeśli oba wymagają
foo.cpp
i, oba będą#include <string>
. - Wolisz mieć pojedynczy plik nagłówkowy, który zawiera wszystkie nagłówki STL używane przez projekt (to znaczy dodaje je do skompilowanego nagłówka MS 'stdafx.h').
Zaletą pierwszej metody jest to, że plik .cpp jest niezależną jednostką i może być używany w innym projekcie, nie martwiąc się, że jesteś brakuje #include
. Zaletami drugiej metody jest to, że możesz użyć skompilowanych nagłówków kompilatorów i możesz zawinąć STL #includes
w pragmas
, który wyłącza niektóre ostrzeżenia (na przykład niektóre nagłówki Boost będą powodować ostrzeżenia podczas kompilacji na poziomie 4).
Które wolisz używać?
Dzięki za odpowiedź i rekomendację książki. – Rob