a gdzie czytałeś?! jakiś punkt zaczepienia daj - czasopismo, książka, autor, może nawet link, bo to w internecie było? ciekaw jestem, bo te 90% to jakoś z d**y mi się wzięte wydaje... z drugiej strony faktycznie wiele rzeczy przyspiesza:
prekompilacja nagłówków:
np w visual studio i borland c++ można zgrupować największe nagłówki i ustawić kompilatorowi, żeby kompilował je tylko raz. Jak te nagłówki są w wielu .cpp wstawiane i są faktycznie duże (np "vcl.h" jest ogromniaste) to zysk jest ogromny.
oszczędność w stosowaniu szablonów:
taak, eksportowanie szablonów to przyszłość, obecnie każdy szablon jest w całości includowany i kompilowany w każdym pliku cpp - więc to długo trwa - jak sobie damy siana z szablonami - będzie szybciej.
podział projektu na wiele wiele mniejszych plików, zamiast jednego bydlaka - zmiana w jednym pliku pociąga tylko rebuild właśnie jego, a nie całego projektu.
coś jeszcze mi chodziło po głowie, ale wypadło. Cóż... ogólne metoda to redukowanie kodu źródłowego przeznaczonego do kompilacji i tyle. A ponieważ znakomita większość tego kodu leży w plikach nagłówkowych, to na nich się to koncentruje. Jest kilka specyficznych tricków, np:
nagłówek:
class ukryta_implementacja;
class interfejs {
private:
ukryta_implementacja* uchwyt;
public:
interfejs();
~interfejs();
// różne deklaracje metod publicznych
};
plik .cpp
class ukryta_implementacja {
// wszystkie flaki, zmienne, funkcje itp
};
interfejs::interfejs() : uchwyt(new ukryta_implementacja ) {}
~interfejs() { delete uchwyt; }
// i reszta metod, z reguły "działających" tak:
int interfejs::funkcja(argumenty) {
return uchwyt->metoda(argumenty);
}
Taka konstrukcja zapobiega rekompilacji kiedy np chcesz zmienić w klasie prywatne składowe. Bez tego triku wszystkie moduły używające twojej klasy muszą być zrekompilowane, bo nie będą zgodne na poziomie binarnym. Wkurzające, bo przecież interfejsu nie zmieniłeś tylko prywatne jakieś flaki - w ten sposób możesz tego uniknąć, dodatkowo skracasz nagłówek i jeszcze przed wścibskimi naprawdę ukrywasz prywatne dane.
No i dla każdego kompilatora idzie coś tam poustawiać, żeby szybciej szło na etapie wprowadzania poprawek - u borlanda np jakąś heurystykę można włączyć, i faktycznie jak się zrobi małe modyfikacje w źródle, to szybko mu idzie - oczywiście takiego kodu jako release bym nie puścił, ale jest...