diff --git a/stl/inc/ranges b/stl/inc/ranges index 8c76bce3d6..752daa24c1 100644 --- a/stl/inc/ranges +++ b/stl/inc/ranges @@ -3806,9 +3806,7 @@ namespace ranges { using value_type = range_value_t<_InnerRng<_Const>>; using difference_type = common_type_t, range_difference_t<_InnerRng<_Const>>>; - // clang-format off - _Iterator() requires default_initializable<_OuterIter> = default; - // clang-format on + _Iterator() = default; constexpr _Iterator(_Iterator _It) requires _Const && convertible_to, _OuterIter> @@ -4262,9 +4260,7 @@ namespace ranges { using value_type = common_type_t, iter_value_t<_PatternIter>>; using difference_type = _Common_diff_t<_OuterIter, _InnerIter, _PatternIter>; - // clang-format off - _Iterator() requires default_initializable<_OuterIter> = default; - // clang-format on + _Iterator() = default; constexpr _Iterator(_Iterator _It) requires _Const && convertible_to, _OuterIter> diff --git a/tests/std/tests/P0896R4_views_join/test.cpp b/tests/std/tests/P0896R4_views_join/test.cpp index 25c2647b76..422d1fe451 100644 --- a/tests/std/tests/P0896R4_views_join/test.cpp +++ b/tests/std/tests/P0896R4_views_join/test.cpp @@ -177,6 +177,16 @@ constexpr bool test_one(Outer&& rng, Expected&& expected) { } } + // Also validate that join_view iterators are default-constructible + { + STATIC_ASSERT(is_default_constructible_v>); + [[maybe_unused]] iterator_t i; + if constexpr (CanMemberBegin) { + STATIC_ASSERT(is_default_constructible_v>); + [[maybe_unused]] iterator_t ci; + } + } + // Validate join_view::end static_assert(CanMemberEnd); static_assert(CanMemberEnd diff --git a/tests/std/tests/P2441R2_views_join_with/test.cpp b/tests/std/tests/P2441R2_views_join_with/test.cpp index f2deb38004..994f6d9b55 100644 --- a/tests/std/tests/P2441R2_views_join_with/test.cpp +++ b/tests/std/tests/P2441R2_views_join_with/test.cpp @@ -219,6 +219,16 @@ constexpr void test_one(Outer&& rng, Delimiter&& delimiter, Expected&& expected) } } + // Also validate that join_with_view iterators are default-constructible + { + STATIC_ASSERT(is_default_constructible_v>); + [[maybe_unused]] iterator_t i; + if constexpr (CanMemberBegin) { + STATIC_ASSERT(is_default_constructible_v>); + [[maybe_unused]] iterator_t ci; + } + } + // Validate join_with_view::end static_assert(CanMemberEnd); static_assert(CanMemberEnd