Да, можно значительно сократить время сборки в C ++, тщательно управляя структурой кода.
Один из способов добиться этого - широко использовать форвардные объявления. Существует инструмент, который помогает достичь этого: Включите то, что вы используете .
Чтобы сделать это более эффективным, вы также должны запретить компилятору генерировать стандартные реализации конструкторов, деструкторов и операторов присваивания в заголовочный файл. Поэтому объявление их в заголовке, а затем определение их по умолчанию в соответствующем cpp может помочь сохранить некоторые классы вперед, объявленные в заголовочном файле.
Другой способ ускорить время сборки - широко использовать инверсию зависимостей. Но это общее правило для любого языка.
К счастью, C ++ 20 поставляется с поддержкой модулей, что должно значительно упростить этот процесс (больше никаких файлов заголовков).