Date
2022-09-15.00:00:00
Message id
12755

Content

[ 2022-09-23; Reflector poll ]

Set priority to 3 after reflector poll.

Comment from a reviewer:

"I don't see why we should redundantly constrain const_iterator_t with input_range; it's not as if we can make it more ill-formed or more SFINAE-friendly than it is now."

Previous resolution [SUPERSEDED]:

This wording is relative to n4917.

  1. Modify [ranges.syn], header <ranges> synopsis, as indicated:

    #include <compare>              // see [compare.syn]
    #include <initializer_list>     // see [initializer.list.syn]
    #include <iterator>             // see [iterator.synopsis]
    
    namespace std::ranges {
      […]
      template<class T>
        using iterator_t = decltype(ranges::begin(declval<T&>()));                      // freestanding
      template<range R>
        using sentinel_t = decltype(ranges::end(declval<R&>()));                        // freestanding
      template<input_range R>
        using const_iterator_t = const_iterator<iterator_t<R>>;                         // freestanding
      template<range R>
        using const_sentinel_t = const_sentinel<sentinel_t<R>>;                         // freestanding
      […]
    }