Date
2023-11-07.18:35:04
Message id
13822

Content

Proposed resolution:

This wording is relative to N4964.

  1. Modify [range.iota.iterator] as indicated:

    [Drafting note: When W only models input_or_output_iterator, it implies that its pre- and post-increment are not equality-preserving, so iterator_concept should be input_iterator_tag.]

    -1- iterator::iterator_concept is defined as follows:

    1. (?.?) — If W models input_or_output_iterator, then

      1. (?.?) — if W models random_access_iterator, then iterator_concept is random_access_iterator_tag;

      2. (?.?) — otherwise, if W models bidirectional_iterator, then iterator_concept is bidirectional_iterator_tag;

      3. (?.?) — otherwise, if W models forward_iterator, then iterator_concept is forward_iterator_tag;

      4. (?.?) — otherwise, iterator_concept is input_iterator_tag.

    2. (1.1) — Otherwise, iIf W models advanceable, then iterator_concept is random_access_iterator_tag.

    3. (1.2) — Otherwise, if W models decrementable, then iterator_concept is bidirectional_iterator_tag.

    4. (1.3) — Otherwise, if W models incrementable, then iterator_concept is forward_iterator_tag.

    5. (1.4) — Otherwise, iterator_concept is input_iterator_tag.