La pregunta se refiere al contenido del binario .pch creado por el compilador de Visual Studio. ¿Qué contiene? ¿Es solo el árbol analizado de los archivos de encabezado, o el código objeto también?¿Qué contienen los encabezados precompilados de Visual Studio?
Considere este ejemplo:
// myheader.h
#include <vector>
class A {
public:
void add(int i) { v.push_back(i); }
private:
std::vector<int> v;
};
cabe indicar como esta cabecera en el conjunto que se compilan previamente en un resultado de instancias de plantilla completa del vector <int> ser compilado y se añade a la .pch?
Para dar un poco más de contexto; si solo se precompila el árbol de análisis sintáctico, esto significa que el código objeto para plantillas instanciadas se creará una vez por unidad de compilación con los consiguientes aumentos en el tiempo de compilación y enlace. Por lo tanto, "compilaciones unitarias"/unidades de compilación reducidas seguirían siendo un factor relevante para disminuir el tiempo de compilación incluso con los encabezados precompilados habilitados.