Недавно я переключился на Visual Studio 2010, а Intellisense не получал полминуты, чтобы отображаться при использовании библиотек boost
, предложение Microsoft, похоже, использует предварительно скомпилированные заголовки.
За исключением того, что я никогда раньше их не использовал (кроме случаев, когда он был вынужден Ugly ATL Wizards (TM)), поэтому я искал вокруг, чтобы выяснить, как они работают.
В принципе, большой централизованный подход stdafx.h
кажется неправильным. Я никогда не хочу включать (даже дешево) целую кучу файлов заголовков во всех моих источниках. Поскольку я не использую библиотеки Windows (я делаю С++/CLI более высокоуровневые обертки, а затем использую .NET для общения с внешним миром), у меня нет "цельного грузовика без изменений огромных заголовков". Просто boost
и стандартные библиотеки заголовков разбросаны вокруг.
В этой проблеме есть интересный подход, но я не могу понять, как это сделать. Кажется, что каждый исходный файл должен быть скомпилирован дважды (пожалуйста, поправьте меня, если я ошибаюсь): один раз с /Yc и один раз с /Yu. Это добавляет нагрузку на разработчика, который должен вручную настроить систему сборки.
Я надеялся найти "автоматически сгенерированный один прекомпилированный заголовок для каждого исходного файла" или, по крайней мере, некоторые "лучшие практики", но большинство людей, похоже, довольны включением мира в stdafx.h
.
Каковы доступные мне возможности для использования предварительно скомпилированных заголовков на основе исходного файла? Мне не все равно, когда они будут развиваться (пока они не растут), я просто хотите, чтобы intellisense работала быстро.