Boost logo

Boost :

Subject: Re: [boost] Failures for GCC 4.4.1 with gnu++0x
From: Beman Dawes (bdawes_at_[hidden])
Date: 2009-09-05 12:34:55


On Sat, Sep 5, 2009 at 10:25 AM, Steven Watanabe<watanabesj_at_[hidden]> wrote:
> AMDG
>
> Beman Dawes wrote:
>>
>> On Thu, Sep 3, 2009 at 11:27 AM, Beman Dawes<bdawes_at_[hidden]> wrote:
>>
>>>
>>> Thanks to Noel Belcourt, the trunk Sandia-gcc tests show results
>>> side-by-side for gcc 4.4.1 without and with C++0x features enabled.
>>>
>>> See http://beta.boost.org/development/tests/trunk/developer/summary.html
>>>
>>> Several Boost libraries are passing without 4.4.1 C++0x features but
>>> failing
>>> with them:
>>>
>>> http://beta.boost.org/development/tests/trunk/developer/assign.html
>>> ...
>>>
>>>
>>
>> I missed iostreams. The problem seems to be a bug in gcc. This program:
>>
>> #include <utility>
>>
>> int main()
>> {
>>  std::pair<int, int*> x(0,0);
>>  return 0;
>> }
>>
>> compiles without -std=gnu++0x, but with -std=gnu++0x gets an error:
>>
>>
>> c:\gcc\bin\../lib/gcc/i386-pc-mingw32/4.4.0/../../../../include/c++/4.4.0/bits/stl_pair.h:
>> In constr
>> uctor 'std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = int, _U2 =
>> int, _T1 = int, _T2 = int*]':
>> cvt-0-to-ptr.cpp:5:   instantiated from here
>>
>> c:\gcc\bin\../lib/gcc/i386-pc-mingw32/4.4.0/../../../../include/c++/4.4.0/bits/stl_pair.h:90:
>> error:
>>  invalid conversion from 'int' to 'int*'
>>
>> I tried to find this in gcc bugzilla, but didn't come up with
>> anything. Is anyone else have any knowledge of this problem?
>>
>
> This is a result of the addition of a templated constructor for std::pair
> in C++0x.  gcc seems to be behaving correctly.

Grrr...

I'd forgotten about that.

Thanks,

--Beman


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