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

4117. generator::iterator should provide iterator_concept

Section: 25.8.6 [coro.generator.iterator] Status: Ready Submitter: Hewill Kang Opened: 2024-07-07 Last modified: 2026-07-10

Priority: 4

View other active issues in [coro.generator.iterator].

View all other issues in [coro.generator.iterator].

View all issues with Ready status.

Discussion:

generator::iterator currently does not provide an iterator_concept. While this does not affect it being an input_iterator, providing iterator_concept does improve consistency given that other C++20 iterators have such a member type alias.

[2024-08-02; Reflector poll]

Set priority to 4 after reflector poll. Six votes for P0 (tentatively ready) but one NAD vote saying that if this has no effect on the category then there's no reason to add it.

[2026-07-10; LWG telecon. Change status New → Ready.]

This is not intended to establish a policy that iterator_concept must be present to model the iterator concepts, we're just adding it in one place in a standard library type.

Proposed resolution:

This wording is relative to N4981.

  1. Modify 25.8.6 [coro.generator.iterator] as indicated:

    namespace std {
      template<class Ref, class V, class Allocator>
      class generator<Ref, V, Allocator>::iterator {
      public:
        using iterator_concept = input_iterator_tag;
        using value_type = value;
        using difference_type = ptrdiff_t;
        […]
      };
    }