For_each() 함수에 템플릿을 적용하고 템플릿 함수와 템플릿 함수 객체 등을 만들어 보겠습니다.

template<typename IterT, typename Func>
void For_each(IterT begin, IterT end, Func pf)
{
	...
}

int main()
{
	For_each<int *, void (*)(int) > (arr, arr+5, PrintInt);
}

… 스킵할 내용들

//Pair 클래스
template<typename T1, typename T2>
struct Pair
{
	T1 first;
	T2 second;
	Pair(const T1& ft, const T2& sd): first(ft), second(sd) { }
};

int main()
{
	Pair<int, int> p1(10, 20);f
}