1 // PR c++/40780 2 // { dg-do compile } 3 4 template <class T1, typename T2, typename T3> 5 struct A 6 { 7 typedef T2 (T1::*m) (T3); AA8 A (m) {} 9 }; 10 struct B; 11 struct C 12 { 13 void foo (B *); 14 }; 15 typedef A <C, void, B *> D; 16 typedef void (C::*E) (B *); 17 struct F; 18 typedef void (C::*G) (F); 19 D d ((E) (G) & C::foo); 20