Мне не удается ответить на вопросы, связанные с шаблонами. В основном, как шаблоны компилируются компилятором. Я погуглил, но не нашел ответы. Может кто-то помогать мне
Шаблоны сами по себе не компилируются, отдельные экземпляры шаблонов есть. Шаблоны могут быть созданы простым использованием или явным образом
Например. задан шаблон функции:
template<class T> void f() {}
Это просто шаблон для функции, который вы можете использовать:
f<int>(); // compiler will instantiate a concrete f<int>()
... ведущий к компиляции этого конкретного экземпляра. В качестве альтернативы вы можете явно создать его экземпляр:
template void f<int>();
Исходный шаблон, однако, никогда не компилируется, он просто используется для создания конкретных экземпляров.
Прочтите книгу, например C ++ Templates - The Complete Guide Дэвида Вандевурда и Николая М. Джозаттиса. Помимо того, что он объясняет, как их использовать, он также дает некоторое представление о том, как они реализованы.