summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/p3764.C
blob: 5a833b32f36487b6bd8884ed499f446d2ef3310f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// { dg-do assemble  }
// prms-id: 3764

class Menu;
class MenuItem;

class  MenuAction {
public:
  virtual void execute (Menu& menu, MenuItem& menuItem)  = 0;
protected:
  MenuAction () {}
}; 

class Test {
  class MenuCBA : public MenuAction {
  public:
    typedef void (Test::* MenuCBA_Member) (Menu& menu, MenuItem& menuItem) ;
    MenuCBA(Test& instance, MenuCBA_Member member)
      : _instance(&instance), _member(member) { }
    void execute(Menu& menu, MenuItem& menuItem);
  private:
    MenuCBA_Member _member;
    Test *_instance;
  };  
};