23 lines
396 B
C
23 lines
396 B
C
// { dg-do compile }
|
|
struct base { void somemethod() {} };
|
|
struct derived : public base { };
|
|
|
|
struct smartpointer
|
|
{
|
|
~smartpointer() { }
|
|
operator derived*() const
|
|
{
|
|
return 0;
|
|
}
|
|
};
|
|
typedef void ( derived::* methodptr_type )();
|
|
methodptr_type getmemberptr()
|
|
{
|
|
return &derived::somemethod;
|
|
}
|
|
void somefunction()
|
|
{
|
|
smartpointer pObj;
|
|
( pObj->*getmemberptr() )();
|
|
}
|