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
13.10.2 [temp.arg.explicit] paragraph 6 contains the following example:
namespace A { struct B { }; template<int X> void f(); } namespace C { template<class T> void f(T t); } void g(A::B b) { f<3>(b); // ill-formed: not a function call A::f<3>(b); // well-formed C::f<3>(b); // ill-formed; argument dependent lookup // only applies to unqualified names using C::f; f<3>(b); // well-formed because C::f is visible; then // A::f is found by argument dependent lookup }
A::f() should have a parameter of type A::B.
Proposed resolution (10/00):
In the example in 13.10.2 [temp.arg.explicit] paragraph 6, change the third line from
template <int X> void f();
to
template <int X> void f(B);