Только заголовок

редактировать

В контексте языков программирования C или C ++ библиотека называется только для заголовков, если полные определения всех макросов, функций и классов, составляющих библиотеку, видны компилятору в заголовочный файл форма. Библиотеки только для заголовков не должны быть отдельно скомпилированы, упакованы и установлены для использования. Все, что требуется, - это указать компилятору на расположение заголовков, а затем #include файлы заголовков в источник приложения. Еще одно преимущество состоит в том, что оптимизатор компилятора может выполнять гораздо лучшую работу, когда доступен весь исходный код библиотеки.

К недостаткам относятся:

  • хрупкость - большинство изменений в библиотеке потребуют перекомпиляции всех модулей компиляции с использованием этой библиотеки
  • более длительное время компиляции - модуль компиляции должен увидеть реализацию всех компонентов во включенных файлах, а не только их интерфейсы
  • раздувание кода (это может быть оспорено) - необходимое использование встроенных операторов в неклассовых функциях может приводит к раздуванию кода из-за чрезмерного встраивания.

Тем не менее, форма только для заголовков популярна, потому что позволяет избежать (часто гораздо более серьезной) проблемы упаковки.

Для шаблонов C ++ включение определений в заголовок - единственный способ компиляции, поскольку компилятору необходимо знать полное определение шаблонов для создания экземпляров.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-23 04:14:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте