[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