auto sum() { return 0; }
template <typename T, typename ... U>
auto sum(T t, U ... u)
{
return t + sum(u ...);
}
.... ....
printf("%d", sum(5, 12, 4, 5));
printf("%s", sum("abc", "de", "fghij", "k")); // to nie działa
Liczby ładnie sumuje, ale stringów już nie. Da się zmusić ten szablon aby ta sama funkcja sumowała liczby i stringi jak wyżej ??
template<typename T, typename U>
decltype(declval<T>() + declval<U>()) suma(T t, U u)
{
return t + u;
}
Natomiast ta funkcja sumuje mi zarówno liczby jak i stringi. Tylko jak ją przerobić, żeby zamiast dwóch parametrów miała dowolną ilość parametrów ??