[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* denotes - [(1.1)](#1.1) invoke_result_t> if T names projected, and - [(1.2)](#1.2) iter_value_t& otherwise[.](#1.sentence-2)