-1

伙计们,

试图弄清楚为什么 Xcode 6.0 不喜欢这种语法

template <int i>
int test(array<int, i> v) 
{
  int result = 0;
  for (int value : v) {
     result += value;
  }    
 return result; 
}

int main(int argc, const char * argv[]) 
{
    array<int, 5> n = { { 1, 2, 3, 4, 5 } };
    cout << test(n);
    return 0;
}

我看到 Xcode 抱怨 test(n) 调用没有匹配的函数。

4

1 回答 1

1

它不起作用,因为第二个模板参数的类型std::arraystd::size_t,而不是int。将声明更改为:

template <size_t i>
int test(array<int, i> v) 
于 2015-09-26T21:30:00.350 回答