2016-12-15 1 views
-5

인수를 참조로 전달할 때 템플릿을 사용하려면 어떻게해야합니까? 여기 참조로 인수를 전달하는 동안 함수에서 템플릿을 사용하는 방법

template <typename T> 

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

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

내 오류입니다 :

당신은 fun를 호출 할 때 템플릿 매개 변수 값을 지정해야합니다

error: use of undeclared identifier 'T'

+6

어떤 컴파일러입니까? 'SomeElement'와'DifferentElement'에 대한 거짓 선언으로 잘 작동합니다 (rextester.com에서 gcc, clang 및 vC++로 시도) – wasthishelpful

+2

질문을 [편집]하여 [mcve]를 제공하십시오. –

+0

나는 리눅스를 사용하고있다 –

답변

2

:

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

어떤 컴파일러는 자동으로 추론 할 수 있지만, 경고를 줄 것이다 .

+0

OP가 오래된 컴파일러에있는 것처럼 보이므로 형식을 자동으로 추론 할 수 없습니다. – grisevg

+5

C++ 11 (다행히도) 전에 템플릿 인자 공제가 존재합니다. – Rerito

+0

@rerito 제 잘못,'template '와 혼동했습니다. – grisevg

관련 문제