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; }