diff --git a/common/include/partial_range.h b/common/include/partial_range.h index b86c97e33..104a77b00 100644 --- a/common/include/partial_range.h +++ b/common/include/partial_range.h @@ -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::type::index_type &>::type, + typename index_type = typename std::remove_reference::type::index_type &>::type> /* If `range_type::index_type` is not a suitable argument to * range_type::operator[](), fail. */ - typename = decltype(std::declval().operator[](std::declval())) - > + requires( + requires(range_type &r, index_type i) { + r.operator[](i); + } + ) index_type range_index_type(std::nullptr_t); }