Boost logo

Boost :

Subject: Re: [boost] [iterator][type_traits] A test is failing with gcc in c++03mode
From: Peter Dimov (lists_at_[hidden])
Date: 2016-12-17 11:45:50


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
> 'std::__cxx11::basic_string<char>&'
> 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

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#106

However, __is_abstract is nonstandard, so who knows what it does. It might
be worth trying -std=gnu++03 instead of -std=c++03.


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