пожалуйста, прокомментируйте код, что не так в моей реализации этой известной задачи
template <typename T>
T arithmetic_sum(T first) {
return first;
}
template<typename T, typename... Types>
auto arithmetic_sum(T first, Types ...others) ->decltype(first + arithmetic_sum(others...)) {
return first + arithmetic_sum(others...);
}
(GCC 4.9)
например этот звонок
auto i = arithmetic_sum(123, 123.45, 0.55l);
не может быть скомпилировано с ошибкой:
ошибка: нет соответствующей функции для вызова 'arithmetic_sum (int, double, long double)'
auto i = арифметическая_сумма (123, 123,45, 0,55 л); ^
->decltype(...)
. coliru.stacked-crooked.com/a/47bd3cf7dd892766 - person Baum mit Augen   schedule 21.07.2015