[range.to.input.overview]

# 25 Ranges library [[ranges]](./#ranges)

## 25.7 Range adaptors [[range.adaptors]](range.adaptors#range.to.input.overview)

### 25.7.35 To input view [[range.to.input]](range.to.input#overview)

#### 25.7.35.1 Overview [range.to.input.overview]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L17722)

to_input_view presents a view of an underlying sequence
as an input-only non-common range[.](#1.sentence-1)

[*Note [1](#note-1)*:

This is useful to avoid overhead
that can be necessary to provide support for the operations
needed for greater iterator strength[.](#1.sentence-2)

â *end note*]

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/ranges.tex#L17731)

The name views​::​to_input denotes
a range adaptor object ([[range.adaptor.object]](range.adaptor.object "25.7.2 Range adaptor objects"))[.](#2.sentence-1)

Let E be an expression and let T be decltype((E))[.](#2.sentence-2)

The expression views​::​to_input(E) is expression-equivalent to:

- [(2.1)](#2.1)

  views​::​all(E) if T models [input_range](range.refinements#concept:input_range "25.4.6 Other range refinements [range.refinements]"),
does not satisfy [common_range](range.refinements#concept:common_range "25.4.6 Other range refinements [range.refinements]"), and
does not satisfy [forward_range](range.refinements#concept:forward_range "25.4.6 Other range refinements [range.refinements]")[.](#2.1.sentence-1)

- [(2.2)](#2.2)

  Otherwise, to_input_view(E)[.](#2.2.sentence-1)
