2011-11-13 671 views
1

我不知道爲什麼我得到這個參數列表不匹配的錯誤。函數模板實例化似乎與主... 可以告訴我什麼是錯的請嗎? 這裏是我的代碼:沒有函數模板的實例匹配參數列表錯誤

//using decltype operator 

#include <iostream> 
#include <typeinfo> 

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

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 (void) { 
    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 << "Result type is "<< typeid(product (x, y, n)).name() << endl; 
    cout << "Result is " << product (x, y, n) << endl; 
    cout << "Result type is " << typeid(product (z, y, n)).name() << endl; 
    cout << "Result is " << product (z, y, n) << endl; 

    return 0; 
} 
+2

用GCC 4.5.1編譯好。 –

+0

這裏編譯得很好:http://ideone.com/KTncj。你正在使用什麼編譯器? – UncleBens

+0

我正在使用Visual Studio Pro 2010 – GKED

回答

2

我從別人的,有與IntelliScence問題的意見想通。代碼是正確的。

相關問題