在本章中,Josuttis编写了一个模板函数
template <typename T, int VAL>
T addValue (T const& x)
{
return x + VAL;
}
然后他在transform algrorithm中使用函数来填充另一个容器。
std::transform (source.begin(), source.end(), // start and end of source
dest.begin(), // start of destination
addValue<int,5>); // operation
但在他写下这句话之后: 请注意,此示例存在问题:addValue是一个函数模板,函数模板是 考虑命名一组重载函数(即使集合只有一个成员)。但是,根据 当前标准,重载函数集不能用于模板参数推导。因此,你必须 强制转换为函数模板参数的确切类型:
std::transform (source.begin(), source.end(), // start and end of source
dest.begin(), // start of destination
(int(*)(int const&)) addValue<int,5>); // operation
这是什么意思?