Boost logo

Boost :

From: Marco Costalba (mcostalba_at_[hidden])
Date: 2008-06-01 04:10:27


On Sat, May 31, 2008 at 8:23 AM, Marco Costalba <mcostalba_at_[hidden]> wrote:
>
>> Sorry for the delay. I just put it on vault.
>
> I'm just back after a week off-line due to my job. This is a great
> news, I'm going to download right now.
>
> More to come...
>

Hi Daniel,

  I have downloaded and tested Function
Objects/polymorphic_function.zip from boost vault.

Very nice stuff! really! a lot of new tricks to learn ;-)

I have immediately replaced boost::function with
boost::functional::polymorphic_function in msf-1.2 (also under vault,
but in base directory) and gave it a spin.

Unfortunately I was not able to make it work.

Some boost::function API, necessary for msf-1.2, are not supported:
operator==(), empty(), clear(), contains()

I said, ok not a biggie, I can just use polymorphic_function::target()
and build something similar myself.

But what stopped me is that target() does not seem to work.

int foo1(char) { return -1; }

boost::functional::polymorphic_function<int(char)> poly_fun(foo1);

poly_fun.target(); // compile error here !

Under gcc 4.2.3 I have

test.cpp: In function 'int main(int, char**)':
test.cpp:88: error: no matching function for call to
'boost::functional::polymorphic_function<int ()(char),
false>::target()'

I have checked the code and especially the SFINAE conditions in
RANK_N_ACCESSOR, but I failed to understand why it doesn't work.

Thanks
Marco


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