// Build don't link: int f (int x) { extern void g (int i = f (x)); // ERROR - default argument uses local g(); return 0; } int f (void); int h1 (int (*)(int) = f); int h2 (int (*)(double) = f); // ERROR - no matching f template int j (T t) { extern void k (int i = j (t)); // ERROR - default argument uses local k (); return 0; } template int j (double); // ERROR - instantiated from here