我正在尝试使用 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++ 很陌生,但仍在学习中 :-)