Annex G (informative) Ill-formed, no diagnostic required [ifndr]

G.10 [temp]: Templates [ifndr.temp]

G.10.8[ifndr:temp.res.general.default.but.not.found]
Specified in: [temp.res.general]

If the validity or meaning of the program would be changed by considering a default argument or default template argument introduced in a declaration that is reachable from the point of instantiation of a specialization ([temp.point]) but is not found by lookup for the specialization, the program is ill-formed, no diagnostic required.
[Example 1: void f(long); // #1 void f(int, int); // #2 template<typename T> void g(T t) { f(t); } void f(int, int = 0); // #3 void h() { g(0); } // IFNDR, selects #3 here but selects #1 using lookup for g<int> — end example]