As long as < is defined for the data type when the template is instantiated then you can call GetLargest(). Your class isn't working because your confusing instances of variables with their types -
Code:
#include <iostream>
using namespace std;
template <class T>
class Whatever
{
private:
T tData;
public:
T GetLargest(T t1, T t2);
};
template<class T>
T Whatever<T>::GetLargest(T tD1, T tD2)
{
if(tD1 > tD2) return tD1;
else return tD2;
}
int main()
{
Whatever <unsigned int> W;
cout << W.GetLargest(2,4);
return 0;
}