This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 116a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-12-27
(From submission #660.)
Subclause 13.10.3.6 [temp.deduct.type] bullet 5.1 specifies as a non-deduced context:
- The nested-name-specifier of a type that was specified using a qualified-id.
- ...
This does not cover templates named using a qualified-id:
template <template <typename> class>
struct B;
struct C {
template <typename>
struct Nested;
};
template <typename T>
void f(T *, B<T::template Nested> *);
void g(C *cp) {
f(cp, 0); // should be OK
}
Suggested resolution:
Change in 13.10.3.6 [temp.deduct.type] bullet 5.1 as follows:
- The nested-name-specifier of a type or template that was specified using a qualified-id.
- ...