Мне интересно, какие накладные расходы связаны с неиспользуемыми функциями в вашем коде.
Скажем, например, у вас есть ведение журнала отладки, и затем вы предоставляете большинству своих объектов функцию ToString(), которая используется в журналах отладки.
В сборке релизов ведение журнала отладки не используется. Стоит ли тогда удалять исходный код этих функций ToString()? (например, через макрос?)
Или они просто делают исполняемый файл незначительно большим и в противном случае не влияют на производительность? например нет влияния скорости? Или компилятор или компоновщик возможно даже удаляют функции, если они не используются? Если компилятор или компоновщик не удаляют код, что, если функции ToString() были определены в строке? Предположительно, он попытался бы встроить код, и поскольку функция никогда не вызывается, она исчезнет?
Я предполагаю, что каждая функция должна быть сохранена в статической lib, но как только она скомпилирована для исполняемого файла, наверняка многие вещи просто игнорируются компоновщиком?
В другой заметке, которая примерно похожа, если компилятор не хочет встроить встроенную функцию, так что встроенная функция определяется как функция в нескольких единицах компиляции, будет ли компоновщик отбрасывать лишние определения и связывать только одну из них в конце?
Спасибо