46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
[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)
|