Boost logo

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
>> Please fix or markup.
> The failures seem to be due to some bug particular to gcc 4.0 that affects
> bind. See for example:
> 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, gregod at, cpdaniel at, john at