tmp/tmpwzsv7q5n/{from.md → to.md}
RENAMED
|
@@ -15,11 +15,17 @@ number of increments.
|
|
| 15 |
template<class I, sized_sentinel_for<decay_t<I>> S>
|
| 16 |
constexpr iter_difference_t<decay_t<I>> ranges::distance(I&& first, S last);
|
| 17 |
```
|
| 18 |
|
| 19 |
*Effects:* Equivalent to:
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
``` cpp
|
| 23 |
template<range R>
|
| 24 |
constexpr range_difference_t<R> ranges::distance(R&& r);
|
| 25 |
```
|
|
|
|
| 15 |
template<class I, sized_sentinel_for<decay_t<I>> S>
|
| 16 |
constexpr iter_difference_t<decay_t<I>> ranges::distance(I&& first, S last);
|
| 17 |
```
|
| 18 |
|
| 19 |
*Effects:* Equivalent to:
|
| 20 |
+
|
| 21 |
+
``` cpp
|
| 22 |
+
if constexpr (!is_array_v<remove_reference_t<I>>)
|
| 23 |
+
return last - first;
|
| 24 |
+
else
|
| 25 |
+
return last - static_cast<decay_t<I>>(first);
|
| 26 |
+
```
|
| 27 |
|
| 28 |
``` cpp
|
| 29 |
template<range R>
|
| 30 |
constexpr range_difference_t<R> ranges::distance(R&& r);
|
| 31 |
```
|