Landing: 133a57041f2d

Project / Subsystem

gcc / libstdc++

Date

2026-07-31

Author

Patrick Palka

Commit

133a57041f2d000f4089006770f10dc5c21ced04

Source

github

Perf win

Yes

Breaking

No

All attributes

project
gcc
subsystem
libstdc++
patch_id
—
commit_hash
133a57041f2d000f4089006770f10dc5c21ced04
source_type
github
headline
Libstdc++: Introduce segmented iterator concept and traversal.
tldr
Defines a 'segmented iterator' concept and traversal mechanism for composed ranges in libstdc++.
author
Patrick Palka
outcome
committed
performance_win
true
breaking_change
false
series_id
—
series_parts
[]
tags
  • • libstdc++
  • • c++20
  • • ranges
  • • iterator
discussion_id_link
—
bugzilla_pr
—
date
2026-07-31T00:00:00.000Z

Libstdc++ now introduces the concept of ‘segmented iterators’ and a utility function std::__for_each_segment for traversing them. These iterators represent ranges composed of sub-ranges, and they must provide a special member function for segment traversal. This change implements this traversal mechanism for std::deque, ranges::join_view, and ranges::concat_view, laying the groundwork for optimizations like efficient distance calculations.