std::experimental::ranges::View
来自cppreference.com
                    
                                        
                    < cpp | experimental | ranges
                    
                                                            
                    |   定义于头文件  <experimental/ranges/range>
  | 
||
|   template <class T> concept bool View = ranges::Range<T> && ranges::Semiregular<T>  | 
(范围 TS) | |
|   template<class T> struct enable_view {};  | 
(范围 TS) | |
|   struct view_base {};  | 
(范围 TS) | |
概念 View<T> 指定半常规范围 T 拥有常数时间的复制、移动和赋值操作。
概念的 /* view-predicate<T> */ 部分定义如下:
- 若 qualified-id ranges::enable_view<T>::type 合法并代表一个范围,则为 ranges::enable_view<T>::type::value ;
 - 否则,若 std::is_base_of_v<ranges::view_base, T> 为 true ,则为 true ;
 -  否则,若 
T是 std::initializer_list 、 std::set 、 std::multiset 、 std::unordered_set 或 std::unordered_multiset 的特化,则为 false ; -  否则,若 
T与const T均满足Range且 ranges::reference_t <ranges::iterator_t<T>> 与 ranges::reference_t<ranges::iterator_t<const T>> 不是同一类型,则为 false ; - 否则为 true 。