# std::ranges::enumerate_view<V>::sentinel

From cppreference.com
< cpp‎ | ranges‎ | enumerate view

template< bool Const > class /*sentinel*/; // exposition only |  | (since C++23)

The return type of `enumerate_view::end` when the underlying view is not a `common_range`.

The type /*sentinel*/<true> is returned by the const-qualified overload. The type /*sentinel*/<false> is returned by the non-const-qualified overload.

The name of this class template (shown here as /*sentinel*/) is unspecified.

### Data members

Typical implementations of /*sentinel*/ hold only one non-static data member: a sentinel `end_` (the name is for exposition purposes only) of type ranges::sentinel_t<Base> (see below).

### Member types

Member type | Definition
`Base` (private) | const V if `Const` is true, otherwise V. The name is for exposition only.

### Member functions

(constructor) (C++23) | constructs a sentinel (public member function)
base (C++23) | returns a sentinel indicating the end of a range (public member function)

### Non-member functions

operator== (C++23) | compares a sentinel with an iterator returned from `enumerate_view::begin` (function)
operator- (C++23) | computes the distance between a sentinel and an iterator returned from `enumerate_view::begin` (function)

### Example

| This section is incomplete Reason: no example

### References

- C++23 standard (ISO/IEC 14882:2023):

  - 26.7.23.4 Class template `enumerate_view::sentinel` [range.enumerate.sentinel]

### See also

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/enumerate_view/sentinel&oldid=150836"