// Using a template for differnt variable types to find max value in array.
// Date 22:59 29/10/2016
// By Ben a.k.a DreamVB

#include <iostream>

using namespace std;
using std::cout;
using std::endl;

template <class T>T Max(T data[], int Length){
	T m = data[0];
	int i = 1;
	while (i < Length){
		if (m < data[i]){
			m = data[i];
		}
		i++;
	}
	return m;
}

int main(int argc, char *argv[]){
	int small[] {2, 7, 95, 8, 39, 1, 10, 36};
	long medium[] = { 651, 100, 44, 805, 22, 6, 240 };
	double large[] = { 150, 900, 255, 1024, 65534, 2652, 69.852 };

	cout << "max value in small is  " << Max(small, _countof(small)) << endl;
	cout << "max value in medium is " << Max(medium, _countof(medium)) << endl;
	cout << "max value in large is  " << Max(large, _countof(large)) << endl;

	system("pause");
	return 0;
}
