(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
template/
ptrmem19.C
// PR c++/40780
// { dg-do compile }

template <class T1, typename T2, typename T3>
struct A
{
  typedef T2 (T1::*m) (T3);
  A (m) {}
};
struct B;
struct C
{
  void foo (B *);
};
typedef A <C, void, B *> D;
typedef void (C::*E) (B *);
struct F;
typedef void (C::*G) (F);
D d ((E) (G) & C::foo);