template의 식별자로서
typename 과 class는 키워드만 다를뿐 동일한 작동을 한다고 한다.
---
타입을 넣지 않고 숫자만 해도 일단은 되는데 아마도 이러면 int 형으로 인식을 하겠..지?
아무튼, template <> 안에 갯수에 따라서 그거 보다 작은 숫자의 형을 지정할 수는 있지만 그걸 넘는 숫자를 지정할 수는 없다.
그나저나.. short 형으로 해도 큰 문제는 없지만(영역을 안 넘으면) char로 하면
C에서 처럼 0~255 범위가 아닌 문자로 인식을 하기 때문에 비교를 제대로 못하는 것 같이 작동한다.
typename 과 class는 키워드만 다를뿐 동일한 작동을 한다고 한다.
template <class identifier> function_declaration;
template <typename identifier> function_declaration;
[링크 : http://www.cplusplus.com/doc/tutorial/templates/] |
---
타입을 넣지 않고 숫자만 해도 일단은 되는데 아마도 이러면 int 형으로 인식을 하겠..지?
#include <iostream> using namespace std;
template <class myType>
myType GetMax (myType a, myType b)
{
return (a>b?a:b);
}
int main()
{
cout << GetMax(1,2);
return 0;
} |
아무튼, template <> 안에 갯수에 따라서 그거 보다 작은 숫자의 형을 지정할 수는 있지만 그걸 넘는 숫자를 지정할 수는 없다.
template <class myType>
myType GetMax (myType a, myType b)
{
return (a>b?a:b);
}
int a,b;
GetMax<int>(a,b); // okay
GetMax<int,int>(a,b); // error
---
int a;
short b;
GetMax<int>(a,b); // okay |
그나저나.. short 형으로 해도 큰 문제는 없지만(영역을 안 넘으면) char로 하면
C에서 처럼 0~255 범위가 아닌 문자로 인식을 하기 때문에 비교를 제대로 못하는 것 같이 작동한다.
template <class T, class U> T GetMin (T a, U b)
{
return (a<b?a:b);
}
int a;
short b;
GetMin<int>(a,b); //okay
GetMin<int,int>(a,b); //okay
|
'Programming > C++ STL' 카테고리의 다른 글
c++ cout 제어하기 (0) | 2013.02.15 |
---|---|
c++ inheritance(상속) (0) | 2013.02.15 |
Essential C++ (0) | 2013.02.14 |
참조에 의한 전달(pass by reference) (0) | 2013.02.09 |
C++ 첫걸음 *-_-* (0) | 2013.02.09 |