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

### 3276. Class `split_view::outer_iterator::value_type` should inherit from `view_interface`

Section: 99 [range.split.outer.value] Status: C++20 Submitter: Eric Niebler Opened: 2019-09-09 Last modified: 2021-02-25

Priority: 0

View all other issues in [range.split.outer.value].

View all issues with C++20 status.

Discussion:

It is a view. It should have all the view goodies. Suggested priority P1 because it affects ABI.

The proposed change has been implemented and tested in range-v3.

[2019-09-24 Issue Prioritization]

Status to Tentatively Ready and priority to 0 after six positive votes on the reflector.

Proposed resolution:

This wording is relative to N4830.

1. Modify 99 [range.split.outer.value], class `split_view::outer_iterator::value_type` synopsis, as indicated:

   >     namespace std::ranges {
   >       template<class V, class Pattern>
   >       template<bool Const>
   >       struct split_view<V, Pattern>::outer_iterator<Const>::value_type
   >         : view_interface<value_type> {
   >       private:
   >         outer_iterator i_ = outer_iterator(); // exposition only
   >       public:
   >         value_type() = default;
   >         constexpr explicit value_type(outer_iterator i);

   >         constexpr inner_iterator<Const> begin() const;
   >         constexpr default_sentinel_t end() const;
   >       };
   >     }