Listing (int(*)(int const&))is a cast to a type int(*)(int const&)that is a "pointer to a function that accepts int const&and returns int" type.
Since it is addValue<int, 5>already of the type "function receiving int const&and returning int" (and will decay to a function pointer when passing by value), in this context, casting is not required.
, , . addValue :
template <typename T, int VAL>
void addValue(T& x) {
x += VAL;
}
addValue<int, 5> . , addValue , int addValue<int, 5>(int const&) void addValue<int, 5>(int&), , .