[indirectcallable.traits] (original) (raw)
24 Iterators library [iterators]
24.3 Iterator requirements [iterator.requirements]
24.3.6 Indirect callable requirements [indirectcallable]
24.3.6.2 Indirect callable traits [indirectcallable.traits]
To implement algorithms taking projections, it is necessary to determine the projected type of an iterator's value type.
For the exposition-only alias template indirect-value-t,indirect-value-t<T> denotes
- invoke_result_t<Proj&, _indirect-value-t_<I>>if T names projected<I, Proj>, and
- iter_value_t<T>& otherwise.