Быстрый ответ: заголовки STL и Boost действительно принадлежат предварительно скомпилированному заголовочному файлу, хотя эти заголовочные файлы определяют классы шаблонов.
При создании предварительно скомпилированного файла заголовка компилятор анализирует текст заголовка (важная задача!) И преобразует его в двоичный формат, оптимизированный для выгоды компилятора.
Несмотря на то, что классы шаблонов будут создаваться при компиляции других файлов .cpp, они будут создаваться из информации в предварительно скомпилированном заголовке, что значительно ускоряет чтение компилятором.
<ч />
(позднее)
Одна вещь, которую вы должны не включить в предварительно скомпилированный заголовок, - это файлы, которые являются частью вашего проекта и часто меняются, даже если каждый файл .CPP содержит эти файлы.
Причина в том, что генерация предварительно скомпилированного заголовка может занять много времени, потому что библиотеки boost, stl и windows очень большие.
У вас может быть простой файл (например, "StringDefs.h"), который все использует. Если StringDefs.h включен в stdafx.h, и один разработчик касается StringDefs.h, то каждый разработчик должен дождаться перекомпиляции всего предварительно скомпилированного заголовка . Было бы намного быстрее, если бы StringDefs.h был исключен из предварительно скомпилированного заголовка и проанализирован вместе с каждым файлом .CPP.