|
Boost : |
From: Jesse Jones (jejones_at_[hidden])
Date: 2000-11-17 18:14:02
>> On Fri, 17 Nov 2000 20:54:33 -0000
>> "William Kempf" <sirwillard_at_[hidden]> wrote:
>>
>> > --- In boost_at_[hidden], Douglas Gregor <gregod_at_r...> wrote:
>> > > On Fri, 17 Nov 2000 19:40:05 -0000
>> > > 1) I use one "Callback" class that takes any number of parameters
>> > > instead of having many Callback0, Callback1, ..., CallbackN
>> > > classes.
>> >
>> > In theory I really like this. Unfortunately, it requires partial
>> > template specialization and so may hinder or prevent implementation
>> > on VC++, which I think is a major problem. It's definately an idea
>> > worth looking into, however.
>>
>> I believe that we need partial specialization in any case. Even if we
>>use Callback0, Callback1, etc. classes, we still (might) need a void
>>(partial) specialization. e.g.,
>
>That isn't true. Libsigc++ does not require partial specialization
>on VC++ because for that platform you can cast a void (*)(int) to
>an int (*)(int) and then ignore the bogus return. Thus you
>simply require traits to change trait<void>::return_type to
>int.
Pretty scary to do something like this in code that's supposed to be
portable. Also this prevents you from treating functors and free functions
in the same way.
-- Jessew
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk