шаблон функции как параметр функции

искусственный интеллект
#include <iostream>
using namespace std;

template<typename T, typename T2>
void sortArray(T *a, T2 num)
{
	T tmp ;
	int i, j ;
	for (i=0; i<num; i++)
	{
		for (j=i+1; j<num; j++)
		{
			if (a[i] < a[j])
			{
				tmp = a[i];
				a[i] = a[j];
				a[j] = tmp;
			}
		}
	}
}

template<class T>
void pirntArray(T *a, int num)
{
	int i = 0;
	for (i=0; i<num; i++)
	{
		cout<<a[i]<<" ";
	}
}

void main()
{
	int num = 0;
	char a[] = "ddadeeettttt";
	num = strlen(a);

	printf("排序之前\n");
	pirntArray<char>(a, num);

	sortArray<char, int>(a, num); //显示类型调用 模板函数 <>
	printf("排序之后\n");
	pirntArray<char>(a, num);
	cout<<"hello..."<<endl;
	system("pause");
	return ;
}