|
Boost : |
Subject: Re: [boost] [1.39.0][Signals2] Release branch test failures
From: Peter Dimov (pdimov_at_[hidden])
Date: 2009-04-13 14:41:44
Frank Mori Hess:
> On Monday 13 April 2009, Beman Dawes wrote:
>> Signals2 is failing five tests on all Mac OS testers.
>>
>> See
>> http://beta.boost.org/development/tests/release/developer/signals2.html
>>
>> Please fix or markup.
>
> The failures seem to be due to some bug particular to gcc 4.0 that affects
> bind. See for example:
>
> http://beta.boost.org/development/tests/release/developer/output/Sandia-leopard-x86-boost-bin-v2-libs-signals2-test-dead_slot_test-test-darwin-4-0-1-debug-link-static.html
>
> Has anyone seen this before and have a suggestion for a workaround?
I haven't. What seems to be happening is that when you pass _1, which is
inline arg<1> _1() { .. }
to A1 const& a1, A1 is properly deduced as a function type, but the const is
not dropped, as it should be; instead, the type of a1 becomes arg<1> (&)()
const (which is illegal BTW). When this a1 is passed (by value) to
boost::bind, it decays to its corresponding pointer type, arg<1> (*)()
const - which is also illegal. :-)
A workaround is to use pass by value instead of A1 const&.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk