diff --git a/stl/inc/ranges b/stl/inc/ranges index 1f050170e0..0abfedeb74 100644 --- a/stl/inc/ranges +++ b/stl/inc/ranges @@ -1655,7 +1655,7 @@ namespace ranges { template concept _Reconstructible_range = random_access_range<_Rng> && sized_range<_Rng> && (_Is_dynamic_span> - // || _Is_specialization_v, basic_string_view> // TRANSITION, P1391R4 + || _Is_specialization_v, basic_string_view> // || _Is_specialization_v, iota_view> // TRANSITION, iota_view || _Is_subrange>); diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index e20c945983..4ecbe622dc 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -193,6 +193,7 @@ // (partially implemented) // P1248R1 Fixing Relations // P1357R1 is_bounded_array, is_unbounded_array +// P1391R4 Range Constructor For string_view // P1394R4 Range Constructor For span // P1423R3 char8_t Backward Compatibility Remediation // P1456R1 Move-Only Views @@ -202,6 +203,8 @@ // P1651R0 bind_front() Should Not Unwrap reference_wrapper // P1690R1 Refining Heterogeneous Lookup For Unordered Containers // P1716R3 Range Comparison Algorithms Are Over-Constrained +// P1739R4 Avoiding Template Bloat For Ranges +// (partially implemented) // P1754R1 Rename Concepts To standard_case // P1865R1 Adding max() To latch And barrier // P1870R1 Rename forwarding-range To borrowed_range (Was safe_range before LWG-3379) diff --git a/tests/std/tests/P0896R4_views_drop/test.cpp b/tests/std/tests/P0896R4_views_drop/test.cpp index a7ebf021ec..aae2ce6f41 100644 --- a/tests/std/tests/P0896R4_views_drop/test.cpp +++ b/tests/std/tests/P0896R4_views_drop/test.cpp @@ -45,7 +45,7 @@ concept reconstructible = ranges::random_access_range && ranges::sized_range && (is_empty_view || is_dynamic_span - // || is_string_view // TRANSITION, P1391R4 + || is_string_view // || is_iota_view // TRANSITION, iota_view || is_subrange); // clang-format on @@ -469,9 +469,8 @@ int main() { STATIC_ASSERT(test_one(views::empty, span{})); test_one(views::empty, span{}); - // TRANSITION, P1391R4 - // STATIC_ASSERT(test_one(basic_string_view{some_ints}, only_four_ints)); - // test_one(basic_string_view{some_ints}, only_four_ints); + STATIC_ASSERT(test_one(basic_string_view{ranges::begin(some_ints), ranges::end(some_ints)}, only_four_ints)); + test_one(basic_string_view{ranges::begin(some_ints), ranges::end(some_ints)}, only_four_ints); // TRANSITION, iota_view // STATIC_ASSERT(test_one(ranges::iota_view{0, 8}, only_four_ints)); diff --git a/tests/std/tests/P0896R4_views_take/test.cpp b/tests/std/tests/P0896R4_views_take/test.cpp index 56bc533492..b0d35fc390 100644 --- a/tests/std/tests/P0896R4_views_take/test.cpp +++ b/tests/std/tests/P0896R4_views_take/test.cpp @@ -45,7 +45,7 @@ concept reconstructible = ranges::random_access_range && ranges::sized_range && (is_empty_view || is_dynamic_span - // || is_string_view // TRANSITION, P1391R4 + || is_string_view // || is_iota_view // TRANSITION, iota_view || is_subrange); // clang-format on @@ -492,9 +492,8 @@ int main() { STATIC_ASSERT(test_one(views::empty, span{})); test_one(views::empty, span{}); - // TRANSITION, P1391R4 - // STATIC_ASSERT(test_one(basic_string_view{some_ints}, only_four_ints)); - // test_one(basic_string_view{some_ints}, only_four_ints); + STATIC_ASSERT(test_one(basic_string_view{ranges::begin(some_ints), ranges::end(some_ints)}, only_four_ints)); + test_one(basic_string_view{ranges::begin(some_ints), ranges::end(some_ints)}, only_four_ints); // TRANSITION, iota_view // STATIC_ASSERT(test_one(ranges::iota_view{0, 8}, only_four_ints));