Oggi mi sono imbattuto in intestazioni precompilate per la prima volta ... sempre per cambiare la mia vita. Non posso credere che la compilazione del mio codice C++ potrebbe essere così veloce. Ha perfettamente senso ora ..Intestazioni precompilate nei file di intestazione
In ogni caso, una cosa che mi confonde è che da quello che ho letto finora, solo le intestazioni precompilate dovrebbero essere aggiunte ai file sorgente (cpp?).
In Visual Studio, è disponibile un'opzione in Proprietà progetto-> C/C++ -> Avanzate in "Forza inclusione file". Ho impostato l'opzione del compilatore su stdafx.h.
Dopo aver eseguito questa operazione, non è più necessario includere le intestazioni che ho aggiunto al mio stdafx.h, anche all'interno dei file di intestazione (i file di origine dovrebbero includere automaticamente stdafx.h). È questo comportamento previsto?
Non riesco a trovare un posto che sia chiaro nella distinzione tra file di intestazione/origine.
Se lo fa..grande, ma temo che sia un'altra di quelle cose che VC++ ti consente di farla franca ma che si interromperà in GCC. E sì..it deve essere portatile; almeno tra GCC e VC++.
Bene, se vuoi che il tuo progetto funzioni anche su gcc, allora ti conviene stare lontano dall'opzione "Forza inclusione file". Boilerplate consiste nel fare il primo #include nel file del codice sorgente del file di intestazione precompilato. –
@Hans, la funzione gcc equivalente sarebbe usare l'opzione della riga di comando '-include' per includere * stdafx.h * all'inizio di ogni file. –