// { 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;
  };  
};
