# std::experimental::ranges::Range

< 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> 类型左值 `t` ， `Range<T>` 仅若下列条件成立才得到满足

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