8sa1-gcc/libstdc++-v3/include
Jonathan Wakely f094665d46 libstdc++: Avoid constraint recursion with iterator_traits (PR 93983)
Checking whether a filesystem::path constructor argument is an iterator
requires instantiating std::iterator_traits. In C++20 that checks for
satisfaction of std::iterator_traits constraints, which checks if the
type is copyable, which can end up recursing back to the path
constructor. The fix in LWG 3420 is to reorder the cpp17-iterator
concept's constraints to check if the type looks vaguely like an
iterator before checking copyable. That avoids the recursion for types
which definitely aren't iterators, but isn't foolproof.

	PR libstdc++/93983
	* include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
	Reorder constraints to avoid recursion when constructors use
	iterator_traits (LWG 3420).
	* testsuite/24_iterators/customization_points/lwg3420.cc: New test.
2020-05-21 07:32:15 +01:00
..
backward Update copyright years. 2020-01-01 12:51:42 +01:00
bits libstdc++: Avoid constraint recursion with iterator_traits (PR 93983) 2020-05-21 07:32:15 +01:00
c Update copyright years. 2020-01-01 12:51:42 +01:00
c_compatibility Update copyright years. 2020-01-01 12:51:42 +01:00
c_global Update copyright years. 2020-01-01 12:51:42 +01:00
c_std Update copyright years. 2020-01-01 12:51:42 +01:00
debug libstdc++: Add comparison operators to associative containers 2020-04-20 17:50:10 +01:00
decimal Update copyright years. 2020-01-01 12:51:42 +01:00
experimental libstdc++: Use macro for nodiscard attribute 2020-05-21 01:03:27 +01:00
ext libstdc++: Avoid errors in allocator's noexcept-specifier (PR 89510) 2020-04-30 16:01:43 +01:00
parallel libstdc++: Fix some C++20 algorithms to work in parallel mode 2020-05-07 21:43:49 +01:00
precompiled Update copyright years. 2020-01-01 12:51:42 +01:00
pstl Restore enable_if lost during original import of pstl 2019-12-11 03:38:24 +00:00
std Implent C++20 std::atomic_flag::test 2020-05-12 07:37:09 +02:00
tr1 Update copyright years. 2020-01-01 12:51:42 +01:00
tr2 Update copyright years. 2020-01-01 12:51:42 +01:00
Makefile.am libstdc++: Add lightweight replacement for std::numeric_limits (PR 92546) 2020-02-17 15:11:04 +00:00
Makefile.in libstdc++: Add lightweight replacement for std::numeric_limits (PR 92546) 2020-02-17 15:11:04 +00:00