Кодт wrote:
> Куда деваются неиспользуемые классы и функции — это сильно зависит от того, как была собрана библиотека.
> Если каждая экспортируемая функция, переменная, таблица виртуальных методов помещена в отдельный объектный файл — то линковщик при сборке программы оставит только то, что попрошено.
> Если в одном объектном файле (полученном из компилируемого исходного файла) много экспортируемых функций — то достаточно использовать любую из них, чтобы в собранной программе оказались все.
В общем случае это не так.
По-умолчанию, только в отладочном режиме не устраняются неиспользуемые ф-ции (опция линкера OPT:REF).
P.S. Кроме того, при включенной опции OPT:ICF (включена в релизе по-умолчанию), линкер "сворачивает" бинарно идентичные ф-ции, что, в частности, предотвращает code bloat, появляющийся при инстанциации одного и того же шаблона разными типами (т.е. vector<int> будет использовать то же самый код, что и vector<long>).
--
Maxim YegorushkinPosted via RSDN NNTP Server 1.9 alpha