The SizedRange concept specifies the requirements
of a Range type that knows its size in constant time with the
size function.

```
template<class T>
concept SizedRange =
Range<T> &&
!disable_sized_range<remove_cvref_t<T>> &&
requires(T& t) { ranges::size(t); };
```

Given an lvalue t of type remove_reference_t<T>, T
models SizedRange only if

- ranges::size(t) is , does not modify t, and is equal to ranges::distance(t), and
- if iterator_t<T> models ForwardIterator, ranges::size(t) is well-defined regardless of the evaluation of ranges::begin(t).