| // { dg-do assemble } |
| // PRMS Id: 3764 (c/h) |
| // Bug: g++ gets into an infinite loop trying to find the top-level context |
| |
| 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; |
| }; |
| }; |