# std::ranges::contiguous_range

< cpp‎ | ranges

定义于头文件 `<ranges>` |  |
template<class T> concept contiguous_range = ranges::random_access_range<T> && std::contiguous_iterator<ranges::iterator_t<T>> && requires(T& t) { { ranges::data(t) } -> std::same_as<std::add_pointer_t<ranges::range_reference_t<T>>>; }; |  |

contiguous_range 概念是 `range` 的细化，对于实现的类型， ranges::begin 返回 `contiguous_iterator` 的实现，且定制点 ranges::data 可用。

### 语义要求

`T` 实现 contiguous_range ，仅若给定使得 `decltype((e))` 为 `T&` 的表达式 `e` ， std::to_address(ranges::begin(t)) == ranges::data(t) 。