Я нахожу, что если есть много классов, время компиляции резко возрастает, когда я использую один *.h и один *.cpp файл для каждого класса. Я уже использую предварительно скомпилированные заголовки и инкрементную привязку, но время компиляции очень велико (да, я использую boost;)
Итак, я придумал следующий трюк:
- определены *.cpp файлы как не компилируемые
- определены *.cxx файлы как компилируемые
- добавлен один файл *.cxx для каждого приложения модуль и # включили в него все *.cpp файлы этого модуля.
Таким образом, вместо 100 единиц перевода я получил всего 8 единиц перевода. Время компиляции сократилось в 4-5 раз.
Недостатки в том, что вы должны вручную включать все *.cpp файлы (но это не кошмар для обслуживания, так как если вы забудете включить что-то, на которое ссылается компоновщик) и что некоторые удобства VS IDE не работают с эта схема, например Go To/Move to Реализация и т.д.
Итак, вопрос в том, действительно ли множество единиц перевода cpp действительно является единственным истинным способом? Является ли мой трюк известным шаблоном, или, может быть, я что-то упускаю? Спасибо!