// PR c++/40780 // { dg-do compile } template struct A { typedef T2 (T1::*m) (T3); A (m) {} }; struct B; struct C { void foo (B *); }; typedef A D; typedef void (C::*E) (B *); struct F; typedef void (C::*G) (F); D d ((E) (G) & C::foo);