Subject: Re: [boost] [iterator][type_traits] A test is failing with gcc in c++03mode
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-12-17 12:11:58
On 12/17/2016 11:45 AM, Peter Dimov wrote:
> Edward Diener wrote:
>> The zip_iterator_test_std_pair is failing with gcc in c++-03 mode. The
>> problem reduces viqa Boost type traits to the fact that in gcc c++03
>> mode the expression:
>> __is_abstract(std::pair<int&, std::string&>)
>> where __is_abstract is a compiler intrinsic, gives an error of:
>> error: forming reference to reference type
>> pair(const _T1& __a, const _T2& __b)
>> Is this a valid error according to the C++ 2003 standard ?
> References to references were invalid in C++98, but were made
> conditionally valid in C++03 by
> However, __is_abstract is nonstandard, so who knows what it does. It
> might be worth trying -std=gnu++03 instead of -std=c++03.
Your suggestion worked brilliantly. With -std=gnu++03 references to
references are fine. However it looks like zip_iterator may need to be
changed so that if references to references are not supported it should
not be used. I did not write or update zip_iterator; Kohei Takahashi did
the work of updating it.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk