Template function overloading

The rules for declaring overloaded template functions have now been clarified. To some extent, the declaration matching rules are linked to partial specialisation of classes but the syntax is the usual template function syntax:

	template<typename T> void f(T);		// #1
	template<typename T> void f(T*);	// #2:
			// overloads f(T)
	template<typename T> void f(T**);	// #3:
			// overloads f(T) and f(T*)
	int	i;
	int*	pi = &i;
	int**	ppi = &pi;
	f(i);					// calls #1
	f(pi);					// calls #2
	f(ppi);					// calls #3