#include <iostream>

struct Base
{
	void test( void (Base::*fncPtr)() )
	{
		(this->*fncPtr)();
	}
};

struct Derived : public Base
{
	void method()
	{
		std::cout << "it works";
	}
};

int main()
{
	Derived d;
	d.test(static_cast<void (Base::*)()>(&Derived::method));
}