libstdc++: Implement LWG 3555 changes to transform/elements_view

libstdc++-v3/ChangeLog:

	* include/std/ranges (transform_view::_Iterator::_S_iter_concept):
	Consider _Base instead of _Vp as per LWG 3555.
	(elements_view::_Iterator::_S_iter_concept): Likewise.

(cherry picked from commit bc046a60cf)
This commit is contained in:
Patrick Palka 2021-06-18 20:33:31 -04:00
parent 01e1cadac2
commit f6c5489475

View File

@ -1556,11 +1556,11 @@ namespace views::__adaptor
static auto
_S_iter_concept()
{
if constexpr (random_access_range<_Vp>)
if constexpr (random_access_range<_Base>)
return random_access_iterator_tag{};
else if constexpr (bidirectional_range<_Vp>)
else if constexpr (bidirectional_range<_Base>)
return bidirectional_iterator_tag{};
else if constexpr (forward_range<_Vp>)
else if constexpr (forward_range<_Base>)
return forward_iterator_tag{};
else
return input_iterator_tag{};
@ -3584,11 +3584,11 @@ namespace views::__adaptor
static auto
_S_iter_concept()
{
if constexpr (random_access_range<_Vp>)
if constexpr (random_access_range<_Base>)
return random_access_iterator_tag{};
else if constexpr (bidirectional_range<_Vp>)
else if constexpr (bidirectional_range<_Base>)
return bidirectional_iterator_tag{};
else if constexpr (forward_range<_Vp>)
else if constexpr (forward_range<_Base>)
return forward_iterator_tag{};
else
return input_iterator_tag{};