[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)