This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

4546. Integer-class type should be structural type

Section: 24.3.4.4 [iterator.concept.winc] Status: New Submitter: Hewill Kang Opened: 2026-03-19 Last modified: 2026-03-21

Priority: Not Prioritized

View other active issues in [iterator.concept.winc].

View all other issues in [iterator.concept.winc].

View all issues with New status.

Discussion:

Currently, integer-class types are not guaranteed to be structure types, so the range of size members that return integer-class types may not be able to model tiny-range, because its size value cannot be used as a template parameter even if it is a constant expression. This does not appear to be the intention.

Given that integer-class types should behave like regular integers, and those types in MSVC-STL and libstdc++ are both implemented as structural types, it would be better to be clear about the wording.

Proposed resolution:

This wording is relative to N5032.

  1. Modify 24.3.4.4 [iterator.concept.winc] as indicated:

    -9- All integer-class types are structural types (13.2 [temp.param]) that model regular (18.6 [concepts.object]) and three_way_comparable<strong_ordering> (17.12.4 [cmp.concept]).