Формула для получения среднего числа чисел, конечно, хорошо известна:
И эту формулу можно легко использовать для получения среднего значения chrono::duration
s:
template <class Rep0, class Period0>
auto
sum(const std::chrono::duration<Rep0, Period0>& d0)
{
return d0;
}
template <class Rep0, class Period0, class ...Rep, class ...Period>
auto
sum(const std::chrono::duration<Rep0, Period0>& d0,
const std::chrono::duration<Rep, Period>& ...d)
{
return d0 + sum(d...);
}
template <class ...Rep, class ...Period>
auto
avg(const std::chrono::duration<Rep, Period>& ...d)
{
return sum(d...) / sizeof...(d);
}
Но chrono::time_point
нельзя добавить друг к другу. Как я могу усреднить time_point
s?