在這種情況下,您希望使用單一參數實例化範本函數而不呼叫它。明確實例化涉及手動建立模板的實例而不使用其函數呼叫。
您指定了以下範本函數:
template <class T> int function_name(T a) {}
而您嘗試如下實例化函數:
template int function_name<int>(int);
導致以下錯誤:
error: expected primary-expression before 'template' error: expected `;` before 'template'
正確的做法明確實例化該函數的方法如下:
template <typename T> void func(T param) {} // definition template void func<int>(int param); // explicit instantiation.
與模板實例化相反,模板專業化涉及為特定模板參數類型定義特定實現。要專門化 int 參數的 func 模板,您可以使用以下語法:
template <typename T> void func(T param) {} // definition template <> void func<int>(int param) {} // specialization
注意專門化語法中模板後面的尖括號。
以上是如何在 C 中明確實例化模板函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!