2016-12-15 82 views
-5

如何在傳遞參數作爲參考時使用模板?如何在函數中使用模板,同時通過引用傳遞參數

template <typename T> 

void fun(T &A) 
{ 
     //code here 
} 

int main() 
{ 
     SomeElement A; 
     fun(A); 
     DifferentElement B; 
     fun(B); 
} 

這是我的錯誤:

error: use of undeclared identifier 'T'

+6

哪個編譯器?對於'SomeElement'和'DifferentElement'虛擬聲明適用於我(在rextester.com上用gcc,clang和vC++嘗試) – wasthishelpful

+2

請[編輯]你的問題以提供[mcve]。 –

+0

我正在使用Linux –

回答

2

你需要指定模板參數值,當你調用fun

SomeElement A; 
fun<SomeElement>(A); 
DifferentElement B; 
fun<DifferentElement>(B); 

一些編譯器可以自動推斷他們,但會給予警告。

+0

OP看起來像一個較舊的編譯器,它不能自動推導出類型。 – grisevg

+5

模板參數推導存在,因爲之前C++ 11(幸運) – Rerito

+0

@rerito我不好,我混淆了它與模板 grisevg

相關問題