没有函数模板的实例匹配参数列表错误

时间:2011-11-13 21:04:35

标签: c++

我不确定为什么我会收到参数列表不匹配的错误。函数模板实例化似乎与main中的实例相匹配... 你能告诉我有什么问题吗? 这是我的代码:

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

1 个答案:

答案 0 :(得分:2)

我从其他人的评论中发现,IntelliScence存在问题。代码是对的。