Сами шаблоны не скомпилированы, особые экземпляры шаблонов есть.Шаблоны могут быть созданы простым использованием или явным образом
Например, с учетом шаблона функции:
template<class T> void f() {}
Это просто шаблон для функции, котораявы можете использовать:
f<int>(); // compiler will instantiate a concrete f<int>()
..., что приводит к компиляции конкретного экземпляра.В качестве альтернативы вы можете явно создать его экземпляр:
template void f<int>();
Однако оригинальный шаблон никогда не компилируется, он просто используется для создания конкретных экземпляров.