std::experimental::ranges::Range

来自cppreference.com
< cpp‎ | experimental‎ | ranges
在标头 <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) 保持相等性。