Hello Klaus,

> There are no ambiguities with sigc++. There are templates involved, so 
> you can't e.g. assign a mem_functor typed for a child to a mem_functor 
> typed for a Parent. And I think you are mixing slots and functors...

I am sorry, you are apparently right.

>  
> A slot represents a callable entity, no matter what functor is behind. 
> So, a slot is the generic functor you want to have (only knowing about 
> the return type and parameters, but loosing compile-time information 
> about the original functor).

Thank you very much for explaining this to me. It is precisely what I need.

> What you want to do is the following:
>  
> <code>
> Parent p;
> Child c;
>  
> sigc::slot<int, Parent*, int, double, char> myclosure;
>  
> myclosure = sigc::mem_fun(&Parent::f);
> const int ret1 = myclosure(&p, 0, 1.0, 'c');
>  
> myclosure = sigc::mem_fun(&Child::g); <-- Error line
> const int ret2 = myclosure(&c, 0, 1.0, 'c');
> </code>
>  
>  
> Klaus Triend

Does this code compile for you? I just did copy and paste and tried to compile 
the above code. The result was:

error: invalid conversion from ‘Parent* const’ to ‘Child*’

This is the same error I described before in the attached file.

So, if this is the right way to cope with my problem, why it refuses to compile?



But anyway, thank you for a brief and valuable response.
Now I at leas understand better what is what ...

_________________________________________________________________
Show them the way! Add maps and directions to your party invites. 
http://www.microsoft.com/windows/windowslive/events.aspx
_______________________________________________
libsigc-list mailing list
libsigc-list@gnome.org
http://mail.gnome.org/mailman/listinfo/libsigc-list

Reply via email to