1// { dg-do compile } 2struct base { void somemethod() {} }; 3struct derived : public base { }; 4 5struct smartpointer 6{ 7 ~smartpointer() { } 8 operator derived*() const 9 { 10 return 0; 11 } 12}; 13typedef void ( derived::* methodptr_type )(); 14methodptr_type getmemberptr() 15{ 16 return &derived::somemethod; 17} 18void somefunction() 19{ 20 smartpointer pObj; 21 ( pObj->*getmemberptr() )(); 22} 23