2016-12-15 54 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

相关问题