函式樣板執行個體化
每一種類型的第一次呼叫函式樣板時,編譯器會建立具現化。 每個執行個體化是樣板化版本的型別進行特製化函式。 每次類型使用此函數時,就會呼叫此執行個體化。 如果您有幾個相同的執行個體化,即使是在不同的模組時,只有一個複本執行個體化的最後會在可執行檔。
函式樣板中不允許轉換的函式引數,其中參數未相依於樣板引數的任何引數與參數對。
函式樣板可以藉由使用特定的型別做為引數宣告樣板明確執行個體化。 例如,下列程式碼被允許的:
// function_template_instantiation.cpp
template<class T> void f(T) { }
// Instantiate f with the explicitly specified template.
// argument 'int'
//
template void f<int> (int);
// Instantiate f with the deduced template argument 'char'.
template void f(char);
int main()
{
}