私が作成したテンプレート関数には、次のシグネチャがあります。
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
エラー: ' ' の呼び出しに一致する関数がありません
私は何を間違えましたか?