1// { dg-do assemble  }
2
3template <class R, void (R::* A) (void)>
4class s
5{
6public:
7  s (R &r) : _r (r) {}
8
9  void e (void) { (_r.*A) (); }
10
11private:
12  R &_r;
13};
14
15class x
16{
17public:
18  void test1 (void) { int j = 0; }
19  void test2 (void) { int j = 1; }
20};
21
22int
23main (void)
24{
25  x r;
26
27  s<x, &x::test1> c4 (r);
28  s<x, &x::test2> c5 (r);
29
30  return 0;
31}
32