- 우선 template은 선언과 구현부를 h/cpp로 나눠서는 안된다
#include <iostream>
using namespace std;
template<typename T> T square(T a)
{
return a * a;
}
int main()
{
printf("%p\n", &square); // 이렇게 하면 주소가 나올까?
// 아직은 주소가 없기에 출력이 안된다.
printf("%p\n", &square<int>); // 주소가 출력이 된다.
// 함수 포인터를 뽑을 수도 있다
printf("%p\n", static_cast<int(*)(int)>(&square)); // ok
}