[C++] Dlaczego każdy nagłówek nie może być prekompilowany?

Witam!

Mam pytanie dotyczące prekompilowanych i zwykłych nagłówków.

Wg moich testów z MinGW, oba są dokładnie takie same, z wyjątkiem, że prekompilowane nie są ponownie kompilowane nawet podczas rebuild’u. I to jest chyba jedyna różnica…

Więc dlaczego każdy nagłówek nie może być domyślnie prekompilowany, jeśli kompilator obsługuje taką opcję ? Podejrzewam, że właśnie z powodu, że rebuild ignorował by takie nagłówki.

Czytałem, że opcji rebuild używamy kiedy komponenty projektu się rozsynchronizują. Czy ktoś mógłby mi podać przykład takiej sytuacji, żebym wiedział, że istnieje jednak potrzeba, aby niektóre nagłówki nie były bez wiedzy programisty prekompilowane :?:

Masz klasę podzieloną na .hpp i .cpp dodajesz sobie nową metodę, jeżeli .hpp tej klasy będzie przekompilowany to nie zostanie skompilowany ponownie więc kompilator będzie krzyczeć że nie zadeklarowano w klasie tej nowej metody. Przekompilacja istnieje po to aby nie kompilować za każdym razem to co się nie będzie zmieniać.