Subject: Re: [boost] Failures for GCC 4.4.1 with gnu++0x
From: Bo Persson (bop_at_[hidden])
Date: 2009-09-06 09:06:47
Steven Watanabe wrote:
> 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
>>> Several Boost libraries are passing without 4.4.1 C++0x features
>>> but failing with them:
>> 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:
>> 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
>> 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.
Yes, but that constructor is (was!) supposed to be constrained by a
Constructible concept. The compiler correctly points out that the
parameter fails that concept.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk