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