[libcxx][ranges][nfc] moves view concepts into `__ranges/concepts.h`
authorChristopher Di Bella <cjdb@google.com>
Thu, 10 Jun 2021 18:40:21 +0000 (18:40 +0000)
committerChristopher Di Bella <cjdb@google.com>
Thu, 10 Jun 2021 19:35:00 +0000 (19:35 +0000)
libcxx/include/CMakeLists.txt
libcxx/include/__ranges/concepts.h
libcxx/include/__ranges/enable_view.h [moved from libcxx/include/__ranges/view.h with 67% similarity]
libcxx/include/__ranges/view_interface.h
libcxx/include/ranges

index 4fd566e..e83b289 100644 (file)
@@ -50,8 +50,8 @@ set(files
   __ranges/empty.h
   __ranges/empty_view.h
   __ranges/enable_borrowed_range.h
+  __ranges/enable_view.h
   __ranges/view_interface.h
-  __ranges/view.h
   __ranges/size.h
   __split_buffer
   __std_stream
index 4c044f5..0a4e3c1 100644 (file)
@@ -12,6 +12,7 @@
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__ranges/access.h>
+#include <__ranges/enable_view.h>
 #include <__ranges/size.h>
 #include <type_traits>
 
@@ -63,6 +64,24 @@ namespace ranges {
 
   // `disable_sized_range` defined in `<__ranges/size.h>`
 
+  // [range.view], views
+
+  // `enable_view` defined in <__ranges/enable_view.h>
+  // `view_base` defined in <__ranges/enable_view.h>
+
+  template <class _Tp>
+  concept view =
+    range<_Tp> &&
+    movable<_Tp> &&
+    default_initializable<_Tp> &&
+    enable_view<_Tp>;
+
+  template<class _Range>
+  concept __simple_view =
+    view<_Range> && range<const _Range> &&
+    same_as<iterator_t<_Range>, iterator_t<const _Range>> &&
+    same_as<sentinel_t<_Range>, iterator_t<const _Range>>;
+
   // [range.refinements], other range refinements
   template <class _Tp>
   concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp> >;
similarity index 67%
rename from libcxx/include/__ranges/view.h
rename to libcxx/include/__ranges/enable_view.h
index 55f8928..cc5c359 100644 (file)
@@ -7,8 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef _LIBCPP___RANGES_VIEW_H
-#define _LIBCPP___RANGES_VIEW_H
+#ifndef _LIBCPP___RANGES_ENABLE_VIEW_H
+#define _LIBCPP___RANGES_ENABLE_VIEW_H
 
 #include <__config>
 #include <__ranges/concepts.h>
@@ -33,18 +33,6 @@ struct view_base { };
 template <class _Tp>
 inline constexpr bool enable_view = derived_from<_Tp, view_base>;
 
-template <class _Tp>
-concept view =
-  range<_Tp> &&
-  movable<_Tp> &&
-  default_initializable<_Tp> &&
-  enable_view<_Tp>;
-
-template<class _Range>
-concept __simple_view =
-  view<_Range> && range<const _Range> &&
-  same_as<iterator_t<_Range>, iterator_t<const _Range>> &&
-  same_as<sentinel_t<_Range>, iterator_t<const _Range>>;
 } // end namespace ranges
 
 #endif // !_LIBCPP_HAS_NO_RANGES
@@ -53,4 +41,4 @@ _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
 
-#endif // _LIBCPP___RANGES_VIEW_H
+#endif // _LIBCPP___RANGES_ENABLE_VIEW_H
index ffaab1d..5d70a1e 100644 (file)
@@ -15,7 +15,7 @@
 #include <__iterator/prev.h>
 #include <__ranges/access.h>
 #include <__ranges/empty.h>
-#include <__ranges/view.h>
+#include <__ranges/enable_view.h>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
index dbfaadf..9e5b55e 100644 (file)
@@ -99,9 +99,9 @@ namespace std::ranges {
 #include <__ranges/empty.h>
 #include <__ranges/empty_view.h>
 #include <__ranges/enable_borrowed_range.h>
+#include <__ranges/enable_view.h>
 #include <__ranges/size.h>
 #include <__ranges/view_interface.h>
-#include <__ranges/view.h>
 #include <compare>          // Required by the standard.
 #include <initializer_list> // Required by the standard.
 #include <iterator>         // Required by the standard.