diff --git a/libcxx/include/__ranges/all.h b/libcxx/include/__ranges/all.h --- a/libcxx/include/__ranges/all.h +++ b/libcxx/include/__ranges/all.h @@ -32,7 +32,7 @@ #if !defined(_LIBCPP_HAS_NO_RANGES) -namespace views { +namespace ranges::views { namespace __all { struct __fn { @@ -75,7 +75,7 @@ template using all_t = decltype(views::all(declval<_Range>())); -} // namespace views +} // namespace ranges::views #endif // !defined(_LIBCPP_HAS_NO_RANGES) diff --git a/libcxx/include/__ranges/counted.h b/libcxx/include/__ranges/counted.h --- a/libcxx/include/__ranges/counted.h +++ b/libcxx/include/__ranges/counted.h @@ -36,7 +36,7 @@ #if !defined(_LIBCPP_HAS_NO_RANGES) -namespace views { +namespace ranges::views { namespace __counted { template @@ -88,7 +88,7 @@ inline constexpr auto counted = __counted::__fn{}; } // namespace __cpo -} // namespace views +} // namespace ranges::views #endif // !defined(_LIBCPP_HAS_NO_RANGES) diff --git a/libcxx/include/__ranges/iota_view.h b/libcxx/include/__ranges/iota_view.h --- a/libcxx/include/__ranges/iota_view.h +++ b/libcxx/include/__ranges/iota_view.h @@ -366,7 +366,6 @@ template inline constexpr bool enable_borrowed_range> = true; -} // namespace ranges namespace views { namespace __iota { @@ -395,6 +394,7 @@ inline constexpr auto iota = __iota::__fn{}; } } // namespace views +} // namespace ranges #endif // !defined(_LIBCPP_HAS_NO_RANGES) diff --git a/libcxx/include/ranges b/libcxx/include/ranges --- a/libcxx/include/ranges +++ b/libcxx/include/ranges @@ -238,6 +238,8 @@ #if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_RANGES) +namespace views = ranges::views; + #endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_RANGES) _LIBCPP_END_NAMESPACE_STD diff --git a/libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp --- a/libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp @@ -142,6 +142,10 @@ assert(std::ranges::end(subrange) == std::ranges::begin(subrange) + 8); } + { + static_assert(std::same_as); + } + return true; } diff --git a/libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp --- a/libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp @@ -195,6 +195,10 @@ } } + { + static_assert(std::same_as); + } + return true; } diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp --- a/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp @@ -71,6 +71,9 @@ static_assert( std::is_invocable_v); static_assert(!std::is_invocable_v); } + { + static_assert(std::same_as); + } return true; }