3987. Including <flat_foo> doesn't provide std::begin/end

Section: 25.7 [iterator.range] Status: WP Submitter: Hewill Kang Opened: 2023-08-27 Last modified: 2023-11-22 16:02:17 UTC

Priority: Not Prioritized

View other active issues in [iterator.range].

View all other issues in [iterator.range].

View all issues with WP status.


It seems that 25.7 [iterator.range] should also add <flat_foo> to the list as the latter provides a series of range access member functions such as begin/end.

[2023-11-02; Reflector poll]

Set status to Tentatively Ready after nine votes in favour during reflector poll.

[2023-11-11 Approved at November 2023 meeting in Kona. Status changed: Voting → WP.]

Proposed resolution:

This wording is relative to N4958.

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

    -1- In addition to being available via inclusion of the <iterator> header, the function templates in [iterator.range] are available when any of the following headers are included: <array>, <deque>, <flat_map>, <flat_set>, <forward_list>, <list>, <map>, <regex>, <set>, <span>, <string>, <string_view>, <unordered_map>, <unordered_set>, and <vector>.