我编写的模板函数具有以下签名:
template<class IteratorT>
auto average(IteratorT& begin, IteratorT& end) -> decltype(*begin)
我认为这会很好,但显然它没有。我通过传入指向数组开头和结尾的指针来调用该函数:
int integers[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
auto average = sigma::average(&integers[0], &integers[8]);
但是 clang 告诉我它找不到匹配的函数:
错误:没有匹配的函数调用“
average
”
我做错了什么?