Я пытаюсь использовать std :: for_each для вывода содержимого векторов, которые могут содержать разные типы. Поэтому я написал обобщенную функцию вывода так:
template<typename T> void output(const T& val)
{
cout << val << endl;
}
, который я хотел бы использовать с:
std::for_each(vec_out.begin(), vec_out.end(), output);
но компилятор жалуется на "не удалось вывести аргумент шаблона" в выражении for_each. Также жалуется на «Шаблон функции не может быть аргументом для другого шаблона функции».
Разве это не возможно? Я бы подумал, что компилятор будет знать тип vec_out (это вектор) и поэтому должен создать экземпляр функции «output (const double & val)»? *
Если это не сработает, как я могу получить аналогичные функции STL без написания ручных циклов?
Я довольно новичок в C ++ и все еще изучаю веревки: -)