Use requires() expression for partial_range range_index_type()

A requires() expression is easier to read than the corresponding
template parameter expression.
This commit is contained in:
Kp 2022-10-09 23:15:20 +00:00
parent 229766e9cb
commit 921a17ebce

View file

@ -100,12 +100,15 @@ template <
/* If `range_type::index_type` is not defined, fail.
* If `range_type::index_type` is void, fail.
*/
typename index_type = typename std::remove_reference<typename std::remove_reference<range_type>::type::index_type &>::type,
typename index_type = typename std::remove_reference<typename std::remove_reference<range_type>::type::index_type &>::type>
/* If `range_type::index_type` is not a suitable argument to
* range_type::operator[](), fail.
*/
typename = decltype(std::declval<range_type &>().operator[](std::declval<index_type>()))
>
requires(
requires(range_type &r, index_type i) {
r.operator[](i);
}
)
index_type range_index_type(std::nullptr_t);
}