[committed 7/8] libstdc++: Update (and revert) value of __cpp_lib_array_constexpr
Jonathan Wakely
jwakely@redhat.com
Thu Apr 23 20:44:17 GMT 2020
On 22/04/20 22:59 +0100, Jonathan Wakely wrote:
>This macro should have been updated to 201811 when the last C++20
>changes were implemented. However those changes are not enabled for
>C++17 mode, so the macro should only have the new value in C++20 mode.
>
>This change ensures that the macro is defined to 201603 for C++17 and
>201811 for C++20.
>
> * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
> different values for C++17 and C++20, to indicate different feature
> sets. Update value for C++20 to indicate P1032R1 support.
> * include/std/version (__cpp_lib_array_constexpr): Likewise.
> * testsuite/23_containers/array/comparison_operators/constexpr.cc:
> Check feature test macro.
> * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
> New test.
> * testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
> feature test macro.
> * testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
> in C++17 mode and check feature test macro.
On second thoughts, changing __cpp_lib_array_constexpr for C++17 was
wrong, it should have been left at 201803.
This partially reverts my previous change related to this macro. The
C++20 constexpr iterator requirements are always met by array:iterator,
because it's just a pointer. So the macro can be set to 201803 even in
C++17 mode.
Tested powerpc64le-linux, committed to master.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 3720 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20200423/c6206dc4/attachment.bin>
More information about the Gcc-patches
mailing list