From 9ed07781791054f9e129c892adf819b55d6e6c44 Mon Sep 17 00:00:00 2001 From: zoecarver Date: Fri, 13 Aug 2021 11:36:55 -0700 Subject: [PATCH] [libcxx][ranges] Move `namespace views` into `namespace ranges` and add an alias. Differential Revision: https://reviews.llvm.org/D108047 --- libcxx/include/__ranges/all.h | 4 ++-- libcxx/include/__ranges/counted.h | 4 ++-- libcxx/include/__ranges/iota_view.h | 2 +- libcxx/include/ranges | 2 ++ libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp | 4 ++++ .../std/ranges/range.adaptors/range.counted/counted.pass.cpp | 4 ++++ .../range.factories/range.iota.view/views_iota.pass.cpp | 3 +++ 7 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libcxx/include/__ranges/all.h b/libcxx/include/__ranges/all.h index d678d3e5d357..f44beaa27272 100644 --- a/libcxx/include/__ranges/all.h +++ b/libcxx/include/__ranges/all.h @@ -32,7 +32,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD #if !defined(_LIBCPP_HAS_NO_RANGES) -namespace views { +namespace ranges::views { namespace __all { struct __fn { @@ -75,7 +75,7 @@ inline namespace __cpo { 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 index d891c1f4efac..d7240803608f 100644 --- a/libcxx/include/__ranges/counted.h +++ b/libcxx/include/__ranges/counted.h @@ -36,7 +36,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD #if !defined(_LIBCPP_HAS_NO_RANGES) -namespace views { +namespace ranges::views { namespace __counted { template @@ -88,7 +88,7 @@ inline namespace __cpo { 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 index f302826b0247..047d8460c268 100644 --- a/libcxx/include/__ranges/iota_view.h +++ b/libcxx/include/__ranges/iota_view.h @@ -366,7 +366,6 @@ namespace ranges { template inline constexpr bool enable_borrowed_range> = true; -} // namespace ranges namespace views { namespace __iota { @@ -395,6 +394,7 @@ inline namespace __cpo { 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 index 014260aaee15..a4cbfafd5f99 100644 --- a/libcxx/include/ranges +++ b/libcxx/include/ranges @@ -238,6 +238,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD #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 index 2aeb94f8bd4c..cef873465eb6 100644 --- 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 @@ constexpr bool test() { 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 index 62791bbdd28a..2ebd7036db33 100644 --- 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 @@ constexpr bool test() { } } + { + 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 index 661285585095..6fcb4abe21de 100644 --- 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 @@ constexpr bool test() { static_assert( std::is_invocable_v); static_assert(!std::is_invocable_v); } + { + static_assert(std::same_as); + } return true; }