Class template projected is used to constrain algorithms
that accept callable objects and projections ([defns.projection]).
It combines an indirectly_readable type I and
a callable object type Proj into a new indirectly_readable type
whose reference type is the result of applying
Proj to the iter_reference_t of I.