|
Boost : |
From: Joel de Guzman (joel_at_[hidden])
Date: 2007-10-08 03:42:54
Marco Costalba wrote:
> On 10/8/07, Joel de Guzman <joel_at_[hidden]> wrote:
>> There's no way to detect the signature
>> of a template function (the operator()):
>>
>
> Perhaps you don't need this. You only need to check if the template
> function operator() matches one signature in the Signatures set.
>
> I have found this nice (and very small) code from Paul Mensonides that
> seems to works (at least for me)
>
> http://www.mail-archive.com/boost@lists.boost.org/msg00164.html
>
> The limitation is that you have to specify the type of the function,
> but in our case is not a problem because we have a finite set called
> 'Signatures' among which to choose the operator() type.
>
> As you can see from his testing example:
[snip code]
> And check each one with has_function_call() until a match is found or
> return an error otherwise.
>
> Easier to say then to do ;-)
Cool! So if the RHS is a polymorphic function then it can be assigned
to all of the compatible Boost.Function objects? Nice!
Regards,
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk