The original text is:
std::transform (source.begin(), source.end(), dest.begin(), addValue);
Note that there is a problem with this example: addValue is a
function template, and function templates are considered to name a set of
overloaded functions (even if the set has only one member). However,
according to the current standard, sets of overloaded functions cannot be
used for template parameter deduction. Thus, you have to cast to the exact
type of the function template argument: