Files
cppdraft_translate/cppdraft/indirectcallable/traits.md
2025-10-25 03:02:53 +03:00

27 lines
845 B
Markdown

[indirectcallable.traits]
# 24 Iterators library [[iterators]](./#iterators)
## 24.3 Iterator requirements [[iterator.requirements]](iterator.requirements#indirectcallable.traits)
### 24.3.6 Indirect callable requirements [[indirectcallable]](indirectcallable#traits)
#### 24.3.6.2 Indirect callable traits [indirectcallable.traits]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L2436)
To implement algorithms taking projections,
it is necessary to determine the projected type of an iterator's value type[.](#1.sentence-1)
For the exposition-only alias template *indirect-value-t*,*indirect-value-t*<T> denotes
- [(1.1)](#1.1)
invoke_result_t<Proj&, *indirect-value-t*<I>> if T names projected<I, Proj>, and
- [(1.2)](#1.2)
iter_value_t<T>& otherwise[.](#1.sentence-2)