La domanda riguarda il contenuto del file binario .pch creato dal compilatore di Visual Studio. Cosa contiene? È solo l'albero analizzato dei file di intestazione, o anche il codice oggetto?Cosa contengono le intestazioni precompilate di Visual Studio?
Considerate questo esempio:
// myheader.h
#include <vector>
class A {
public:
void add(int i) { v.push_back(i); }
private:
std::vector<int> v;
};
Sarebbe compresa questa intestazione nel set da precompilato risultato in un modello di istanza completa di vettore <int> essere compilato e aggiunto al PCH?
Per dare un po 'più di contesto; se solo l'albero di analisi è precompilato, ciò significa che il codice oggetto per i modelli istanziati verrà comunque creato una volta per unità di compilazione con conseguente aumento del tempo di compilazione e di collegamento. Quindi "unità crea"/riducendo le unità compilate sarebbe ancora un fattore rilevante nel diminuire i tempi di costruzione anche con le intestazioni precompilate abilitate.