Skip to content

Conversation

hahnjo
Copy link
Member

@hahnjo hahnjo commented Aug 22, 2025

  • Fix input iterators that cannot be forward iterators
  • Implement RFieldDescriptorIterable::operator->
  • Optimize R{Cluster,ClusterGroup}DescriptorIterable, RExtraTypeInfoDescriptorIterable
  • Fix operators for descriptor iterators

More details in the individual commit messages.

hahnjo added 5 commits August 22, 2025 15:23
These cannot be forward iterators because of clause 24.3.5.5.6 in the
C++ standard (see also https://eel.is/c++draft/forward.iterators#6):
> If a and b are both dereferenceable, then a == b if and only if *a
> and *b are bound to the same object.

We cannot make this happen for member objects of the iterator. In
passing, also make the difference std::ptrdiff_t which is signed
(another requirement from the standard) and const-qualify pointer
and reference. In principle, we could make reference now value_type
and copy the dereferenced value. I leave this for a future change,
if wanted.
It was the only one missing compared to RColumnDescriptorIterable.
Also mark the operators as const.
Wrap the map iterator as done for RColumnRangeIterable. Also mark the
operators as const.
Wrap the iterator as done for RColumnRangeIterable.
Fix the prefix operators to return references, add postfix operators.
@hahnjo hahnjo self-assigned this Aug 22, 2025
Copy link
Member

@pcanal pcanal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Copy link

Test Results

    21 files      21 suites   3d 13h 7m 4s ⏱️
 3 558 tests  3 420 ✅  0 💤 138 ❌
72 971 runs  72 816 ✅ 17 💤 138 ❌

For more details on these failures, see this check.

Results for commit 30d77be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants