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