//#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;
}
Ly8jaW5jbHVkZSAuLi4KCmNsYXNzIFdpbmRvdwp7CnB1YmxpYzoKCXZvaWQgU2hvdyggaW50IG51bWJlciApIGNvbnN0Cgl7CgkJLy8uLi4KCX0KCgl2b2lkIFNob3dEeW5hbWljKCBpbnQgbnVtYmVyICkgdm9sYXRpbGUKCXsKCQkvLy4uLgoJfQp9OwoKdm9pZCBTaG93V2luZG93cyggaW50IHBhcmFtICkKewoJLy8uLi4KfQoKaW50IG1haW4oKQp7CglXaW5kb3cgd2luZG93OwoKCXR5cGVkZWYgbWV6dXRpbHM6OkRlbGVnYXRlPCB2b2lkKCBpbnQgKSA+IE5vdGlmaWVyOwoJTm90aWZpZXIgbm90aWZpZXI7CgoJbm90aWZpZXIgPSAmU2hvd1dpbmRvd3M7Cglub3RpZmllciggMCApOwoKCW5vdGlmaWVyID0gTm90aWZpZXIoICZ3aW5kb3csICZXaW5kb3c6OlNob3cgKTsKCW5vdGlmaWVyKCAxICk7CgoJbm90aWZpZXIgPSBbXShpbnQgeCkgeyAvKi4uLiovIH07Cglub3RpZmllciggMiApOwoJCgl2b2lkICgqZnVucGMpKGludCkgPSBmdW5jOwoJbm90aWZpZXIgPSBmdW5wYzsKCW5vdGlmaWVyKCAzICk7CgoJbm90aWZpZXIgPSBbXShpbnQgYXJnKSB7IHByaW50ZigiYXNkICVkXHJcbiIsYXJnKTsgfTsKCW5vdGlmaWVyKDQpOwoJcmV0dXJuIDA7Cn0K
prog.cpp:172:20: error: expected constructor, destructor, or type conversion before ‘(’ token
_VARIADIC_EXPAND_0X(MEZ_CLASS_GET_FUNCTION_IMPL_CALLS, , , , )
^