1 // PR c++/52875 2 // { dg-do compile { target c++11 } } 3 4 struct A 5 { swapA6 friend void swap(A&,A&) {} 7 }; 8 9 class B 10 { 11 A a; 12 13 template <class T> 14 friend auto swap(T& x, T& y) -> decltype(swap(x.a,y.a)) 15 { 16 swap(x.a,y.a); 17 } 18 }; 19 main()20int main() 21 { 22 B x, y; 23 swap(x, y); 24 } 25