(1). При использовании шаблона C ++ правильно ли, что компилятор (например, g ++) не будет компилировать определение шаблона (которое может быть только в заголовочном файле, а не в исходном файле) напрямую, а сгенерирует код на основе определения шаблона для каждого из его экземпляров, а затем скомпилировать сгенерированный код для его реализации?
(2). Если я хочу написать библиотеку C ++, которая предоставляет классы шаблонов и функции шаблонов, невозможно ли скомпилировать библиотеку в общий файл (.so, .a), потому что их экземпляры не будут нигде в коде библиотеки, а появляются только в программа пользователя? Если да, означает ли это, что библиотеки шаблонов - это просто файлы исходного кода, а не предварительно скомпилированные файлы?
Как реализована C ++ стандартная библиотека шаблонов (STL)? Его исходный код предварительно скомпилирован или скомпилирован вместе с программой пользователя?
(3). В С
как написать библиотеку, предоставляющую функции, действующие как функции шаблона в C ++? Является ли перегрузка хорошим решением?
Если мне нужно написать процедуру в другую функцию для аргументов разных типов, есть ли хороший способ повторного использования кода? Это хороший способ сделать это http://www.vlfeat.org/api/imop_8c_source.html? Любые другие способы?
Спасибо и всего наилучшего!