C++0x decltype vs2010

#include <iostream>

#include <typeinfo>

using namespace std;



template<class T1,class T2>

auto product(T1 v1[],T2 v2[], size_t count) -> decltype(v1[0]* v2[0])

{

	decltype(v1[0] * v2[0]) sum(0);

	for(size_t i=0;i<count;i++) sum +=v1[i] * v2[i];

	return sum;

}



int main(){

	double x[] = {100.5,99.5,88.7,77.8};

	short y[] = {3,4,5,6};

	long z[]={11L,12L,13L,14L};

	size_t n=4;



	cout<< product(x,y,n)<<endl;

	cout<< typeid(product(x,y,n)).name()<<endl;

	cout<< product(x,z,n)<<endl;

	cout<< typeid(product(x,z,n)).name()<<endl;

	cout<< product(y,z,n)<<endl;

	cout<< typeid(product(y,z,n)).name()<<endl;

	getchar();

	return 0;

}

  

你可能感兴趣的:(VS2010)