diff --git a/stl/inc/ranges b/stl/inc/ranges index 2f8b62dd7f..7a939994e6 100644 --- a/stl/inc/ranges +++ b/stl/inc/ranges @@ -42,10 +42,10 @@ namespace ranges { #if _HAS_CXX23 _EXPORT_STD template - using const_iterator_t = const_iterator>; + using const_iterator_t = decltype(_RANGES cbegin(_STD declval<_Rng&>())); _EXPORT_STD template - using const_sentinel_t = const_sentinel>; + using const_sentinel_t = decltype(_RANGES cend(_STD declval<_Rng&>())); _EXPORT_STD template using range_const_reference_t = iter_const_reference_t>; diff --git a/tests/std/tests/P2278R4_ranges_const_range_machinery/test.cpp b/tests/std/tests/P2278R4_ranges_const_range_machinery/test.cpp index e504f96def..02ce17af43 100644 --- a/tests/std/tests/P2278R4_ranges_const_range_machinery/test.cpp +++ b/tests/std/tests/P2278R4_ranges_const_range_machinery/test.cpp @@ -36,8 +36,8 @@ namespace test_array { static_assert(CanRangeConstIterator); static_assert(CanRangeConstSentinel); static_assert(CanRangeConstReference); - static_assert(same_as, const_iterator>); - static_assert(same_as, const_iterator>); + static_assert(same_as, const int*>); + static_assert(same_as, const int*>); static_assert(same_as, const int&>); static_assert(!ranges::constant_range); @@ -56,8 +56,8 @@ namespace test_random_access_range { static_assert(CanRangeConstIterator); static_assert(CanRangeConstSentinel); static_assert(CanRangeConstReference); - static_assert(same_as, const_iterator>); - static_assert(same_as, const_iterator>); + static_assert(same_as, Rng::const_iterator>); + static_assert(same_as, Rng::const_iterator>); static_assert(same_as, const int&>); static_assert(!ranges::constant_range); @@ -76,8 +76,8 @@ namespace test_bidirectional_range { static_assert(CanRangeConstIterator); static_assert(CanRangeConstSentinel); static_assert(CanRangeConstReference); - static_assert(same_as, const_iterator>); - static_assert(same_as, const_iterator>); + static_assert(same_as, Rng::const_iterator>); + static_assert(same_as, Rng::const_iterator>); static_assert(same_as, const int&>); static_assert(!ranges::constant_range); @@ -96,8 +96,8 @@ namespace test_forward_range { static_assert(CanRangeConstIterator); static_assert(CanRangeConstSentinel); static_assert(CanRangeConstReference); - static_assert(same_as, const_iterator>); - static_assert(same_as, const_iterator>); + static_assert(same_as, Rng::const_iterator>); + static_assert(same_as, Rng::const_iterator>); static_assert(same_as, const int&>); static_assert(!ranges::constant_range); @@ -147,8 +147,8 @@ namespace test_vector_bool { static_assert(CanRangeConstIterator); static_assert(CanRangeConstSentinel); static_assert(CanRangeConstReference); - static_assert(same_as, const_iterator>); - static_assert(same_as, const_iterator>); + static_assert(same_as, Vb::const_iterator>); + static_assert(same_as, Vb::const_iterator>); static_assert(same_as, bool>); static_assert(!ranges::constant_range);