This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
12.3 [over.over] paragraph 2 says,
If the name is a function template, template argument deduction is done (13.10.3.3 [temp.deduct.funcaddr]), and if the argument deduction succeeds, the deduced template arguments are used to generate a single template function, which is added to the set of overloaded functions considered.
It is not clear whether this formulation allows explicit specification of non-deduced template arguments. For instance,
template <int I> void f(double x[]); typedef void (*FPtr)(double x[]); FPtr fp = &f<3>;
If only deduced arguments can be used, this example is ill-formed.
Suggested resolution: Clarify 12.3 [over.over] paragraph 2 to allow both deduced and explicitly-specified template arguments to be used to determine the function template specialization to be added to the overload set.
(See also issues 115 and 214.)
Proposed resolution (10/00):
In 12.3 [over.over] paragraph 2, change
...if the argument deduction succeeds, the deduced template arguments are used to generate a single template function...
to
...if the argument deduction succeeds, the resulting template argument list is used to generate a single function template specialization...