为什么这个简单的泛型函数总是出错?
#include "stdafx.h"
using namespace System;
generic<typename T> where T:IComparable
T MaxE(array<T>^ x);
int main(array<System::String ^> ^args)
{
array<double>^ h[]={0.0,4.3,6.5,5.6,7.8,2.1,9.5};
array<int>^ k[]={0,2,6,3,9,5,8,7};
double hData=MaxE(h);
int kData=MaxE(k);
Console::WriteLine(hData);
Console::WriteLine(kData);
return 0;
}
generic<typename T> where T:IComparable
T MaxE( array<T>^ x )
{
T val(x[0]);
for (int i=0;i<x->Length;i++)
{
if (val->CompareTo(x[i])<0)
{
val=x[i];
}
}
return val;
}