//#include ...

class Window
{
public:
	void Show( int number ) const
	{
		//...
	}

	void ShowDynamic( int number ) volatile
	{
		//...
	}
};

void ShowWindows( int param )
{
	//...
}

int main()
{
	Window window;

	typedef mezutils::Delegate< void( int ) > Notifier;
	Notifier notifier;

	notifier = &ShowWindows;
	notifier( 0 );

	notifier = Notifier( &window, &Window::Show );
	notifier( 1 );

	notifier = [](int x) { /*...*/ };
	notifier( 2 );
	
	void (*funpc)(int) = func;
	notifier = funpc;
	notifier( 3 );

	notifier = [](int arg) { printf("asd %d\r\n",arg); };
	notifier(4);
	return 0;
}
