Реализовать функцию sum_all
, которая позволяла бы суммировать аргумент практически любого типа, который ей передан.
Входные данные
vector<int> v1 = { 1, 2, 3 };
vector<double> v2 = { 1, 2, 3 };
vector<string> v3 = { "a", "bc", "def" };
vector<char> v4 = { 'a', 'b', 'c' };
Описание задачи
sum_all
будет представлять из шаблон функции с частичной специализацией для vector<T>
.
Выходные данные
sum_all(5); // 5
sum_all(3.0); // 3.0
sum_all(v1); // 6
sum_all(v2); // 6.0
sum_all(v3); // строка "abcdef"
sum_all(v4); // строка "abc"
Усложнения
list<T>
, forward_list<T>
, set<T>
, unordered_set<T>
.map<K,V>
и unordered_map<K,V>
с суммированием по значениям (V
).