Некоторое время назад моя кодовая база была очень близка к #include
аду. Каждый раз, когда я менял даже слегка важный файл .h, практически все файлы перекомпилировались.
Основная причина такой высокой зависимости заголовка заключалась в том, что у меня есть много небольших функций, которые должны быть встроенными, и у меня сложилось впечатление, что для работы inline они должны быть в той же единице перевода, что и вызывающий код, поэтому они должны быть в шапке. Чтобы встроенная функция даже компилировала другие заголовки, в заголовок также необходимо включить ad infimum.
Введите генерация кода времени ссылки (в Visual Studio). Одним из основных заявленных преимуществ этого является то, что теперь встроенная функция может пересекать единицы перевода.
Но я все еще сомневаюсь. Как я могу быть действительно уверен, что эти функции действительно встроены? Я понимаю, что компилятор может делать все, что захочет, независимо от того, где я определяю функцию.
Есть ли способ проверить, что встраивается?