1 // { dg-do compile { target c++11 } } 2 3 class X { f(X)4 template<typename T = int> friend void f(X) { } // OK 5 template<typename T> friend void g(X); // { dg-message "previously declared here" } 6 template<typename T = int> friend void h(X); // { dg-error "template friend" } 7 }; 8 g(X)9template<typename T = int> void g(X) // { dg-error "default template argument" } 10 { 11 } 12