본문으로 바로가기

What is the difference between a template class and a class template?
What is the difference between a template function and a function template?



출처에 대한 내용을 간단하게만 적어본다.

green house라고 하면 여기서 주체는 house다.

다시 말해, 초록색 집이라고 말하면 [초록색깔의 "집"]을 의미하는 것이지 [집이 보유하고 있는 "초록색"]을 의미하는 것은 아니다.


그러므로 template function이라 함은 "함수"를 의미하는 것이고,

function template이라 함은 "template"을 의미하는 것이다.


마찬가지로 template class는 "class"를 의미하는 것이고,

class template은 "template"을 의미하는 것이다.




1
2
3
4
template <typename T>
T add(T a, T b) {
    return a+b;
}
cs


위의 코드에서 add를 template이라고 한다.

그런데 어떤 종류의 template일까?

위의 코드는 함수를 정의한 것이다.

그러므로 add는 함수 템플릿(function template)이다.


1
add<int>(1,2);
cs

그럼 위의 코드는 뭘까?

위에서 add는 함수이다.

함수이므로 ()연산자를 사용하여 호출하였다.

그런데 <> template이 쓰였으므로 add는 template function이다.


끝.

 



댓글을 달아 주세요