std::experimental::ranges::Range

来自cppreference.com
在标头 <experimental/ranges/range> 定义
template< class T >
concept bool Range =
    requires(T&& t) {
        ranges::begin(t); /* 不必保持相等性(见后述) */
        ranges::end(t);
    };
(范围 TS)

给定 std::remove_reference_t<T> 类型左值 tRange<T> 仅若下列条件成立才得到满足

  • [ranges::begin(t)ranges::end(t)) 代表一个范围;
  • ranges::begin(t)ranges::end(t) 均为均摊常数时间且不修改内容。
  • ranges::iterator_t<T> 满足ForwardIterator,则 ranges::begin(t) 保持相等性。