Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-08-23 14:52:04


<Arturo_Cuebas_at_[hidden]> wrote in message
news:OF9B966D94.6BA485A4-ON86256EF9.0063B717-86256EF9.0068EC67_at_bpmicro.com...
> I realize interest in this has died.

Just because there haven't been any messages in the last few days
doesn't mean interest is dead. People are busy with other things.
(Though it's probably safe to say that interest is not huge.)

> In spite of that, I'd like to throw
> one more thing out there to see if it generates any feedback and if
not
> then this is the last you'll hear of this.
>
> Does anyone like this syntax?:
>
> overload_select<int, int, int>()(&V::f);

I think '()' look's funny :() I think Daniel James had the best idea:

    boost::overload<int>::resolve(&V::f)

> This returns a boost::function

Too heavy-weight, I think. The other proposals probably have zero
runtime overhead.

> because my compiler (VC7.1) generates an
> error if I try to define a member function of a class that looks
like
> this:

> //P1, P2, & P3 are template parameters of the template class.
> template <typename R, typename C>
> R (C:: * operator() (R (C::* Func)(P1, P2, P3)))(P1, P2, P3)
> {
> return Func;
> }

What are P1, P2, P3 ... ?

Sometimes you can sneak in complex return types like so

     template< ... >
     typename mpl::identity< [put messy stuff here] >::type
     f( ... );

Jonathan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk