我编写了此函数,该函数返回由两个迭代器定界的范围内的值的平均值:
template<class InputIterator>
typename std::decay<decltype(*std::declval<InputIterator>())>::type mean (InputIterator first, InputIterator last) {
return std::accumulate(first, last, typename std::decay<decltype(*std::declval<InputIterator>())>::type ()) / std::distance(first, last);
}
从迭代器推断出内部使用和返回的值类型。由于类型推导的语法非常繁琐,我想知道是否有办法避免两次使用它。
我知道我可以添加第二个模板参数并将其默认值设置为值类型,但是我不相信,因为可能会指定另一种值类型,因此我想排除这种可能性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句