libstdc++: Fix more missing uses of iter_difference_t [PR119820]
Commit Message
libstdc++-v3/ChangeLog:
PR libstdc++/119820
* include/bits/ranges_algo.h (__shuffle_fn): Use
ranges::distance to get difference type value to add to
iterator.
* include/std/format (__formatter_str::_M_format_range):
Use ranges::next to increment iterator by a size_t value.
---
Testing now on powerpc64le-linux.
libstdc++-v3/include/bits/ranges_algo.h | 2 +-
libstdc++-v3/include/std/format | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Comments
On Mon, 15 Sep 2025, Jonathan Wakely wrote:
> libstdc++-v3/ChangeLog:
>
> PR libstdc++/119820
> * include/bits/ranges_algo.h (__shuffle_fn): Use
> ranges::distance to get difference type value to add to
> iterator.
> * include/std/format (__formatter_str::_M_format_range):
> Use ranges::next to increment iterator by a size_t value.
LGTM
> ---
>
> Testing now on powerpc64le-linux.
>
> libstdc++-v3/include/bits/ranges_algo.h | 2 +-
> libstdc++-v3/include/std/format | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
> index 6ec233f19df8..ea933be2f604 100644
> --- a/libstdc++-v3/include/bits/ranges_algo.h
> +++ b/libstdc++-v3/include/bits/ranges_algo.h
> @@ -2028,7 +2028,7 @@ namespace ranges
> && !sized_sentinel_for<sentinel_t<_Range>,
> iterator_t<_Range>>)
> return (*this)(ranges::begin(__r),
> - ranges::begin(__r) + ranges::size(__r),
> + ranges::begin(__r) + ranges::distance(__r),
> std::forward<_Gen>(__g));
> else
> return (*this)(ranges::begin(__r), ranges::end(__r),
> diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
> index d6a2170e45d8..842972eed4ca 100644
> --- a/libstdc++-v3/include/std/format
> +++ b/libstdc++-v3/include/std/format
> @@ -1440,7 +1440,7 @@ namespace __format
> else if constexpr (ranges::random_access_range<_Rg>)
> {
> ranges::iterator_t<_Rg> __first = ranges::begin(__rg);
> - ranges::subrange __sub(__first, __first + __w);
> + ranges::subrange __sub(__first, ranges::next(__first, __w));
> return _M_format_escaped(_String(from_range, __sub), __fc);
> }
> else if (__w <= __n)
> --
> 2.51.0
>
>
@@ -2028,7 +2028,7 @@ namespace ranges
&& !sized_sentinel_for<sentinel_t<_Range>,
iterator_t<_Range>>)
return (*this)(ranges::begin(__r),
- ranges::begin(__r) + ranges::size(__r),
+ ranges::begin(__r) + ranges::distance(__r),
std::forward<_Gen>(__g));
else
return (*this)(ranges::begin(__r), ranges::end(__r),
@@ -1440,7 +1440,7 @@ namespace __format
else if constexpr (ranges::random_access_range<_Rg>)
{
ranges::iterator_t<_Rg> __first = ranges::begin(__rg);
- ranges::subrange __sub(__first, __first + __w);
+ ranges::subrange __sub(__first, ranges::next(__first, __w));
return _M_format_escaped(_String(from_range, __sub), __fc);
}
else if (__w <= __n)