<metaname="author"content="David Abrahams, Jeremy Siek, Thomas Witt"/>
<metaname="organization"content="Boost Consulting, Indiana University Open Systems Lab, University of Hanover Institute for Transport Railway Operation and Construction"/>
<td><aclass="first reference"href="http://www.boost-consulting.com">Boost Consulting</a>, Indiana University <aclass="reference"href="http://www.osl.iu.edu">Open Systems
Lab</a>, University of Hanover <aclass="last reference"href="http://www.ive.uni-hannover.de">Institute for Transport
<p>The type <ttclass="literal"><spanclass="pre">UnaryFunction</span></tt> must be Assignable, Copy Constructible, and
the expression <ttclass="literal"><spanclass="pre">f(*i)</span></tt> must be valid where <ttclass="literal"><spanclass="pre">f</span></tt> is an object of
type <ttclass="literal"><spanclass="pre">UnaryFunction</span></tt>, <ttclass="literal"><spanclass="pre">i</span></tt> is an object of type <ttclass="literal"><spanclass="pre">Iterator</span></tt>, and
where the type of <ttclass="literal"><spanclass="pre">f(*i)</span></tt> must be
<li>Writable Lvalue Iterator if <ttclass="literal"><spanclass="pre">result_of<UnaryFunction(iterator_traits<Iterator>::reference)>::type</span></tt> is a non-const reference.</li>
<li>Readable Lvalue Iterator if <ttclass="literal"><spanclass="pre">result_of<UnaryFunction(iterator_traits<Iterator>::reference)>::type</span></tt> is a const
The <ttclass="literal"><spanclass="pre">value_type</span></tt> is <ttclass="literal"><spanclass="pre">remove_cv<remove_reference<reference></span><spanclass="pre">>::type</span></tt>.</p>
<trclass="field"><thclass="field-name">Returns:</th><tdclass="field-body">An instance of <ttclass="literal"><spanclass="pre">transform_iterator</span></tt> with <ttclass="literal"><spanclass="pre">m_f</span></tt>
and <ttclass="literal"><spanclass="pre">m_iterator</span></tt> default constructed.</td>
<trclass="field"><thclass="field-name">Returns:</th><tdclass="field-body">An instance of <ttclass="literal"><spanclass="pre">transform_iterator</span></tt> with <ttclass="literal"><spanclass="pre">m_f</span></tt>
initialized to <ttclass="literal"><spanclass="pre">f</span></tt> and <ttclass="literal"><spanclass="pre">m_iterator</span></tt> initialized to <ttclass="literal"><spanclass="pre">x</span></tt>.</td>
</tr>
</tbody>
</table>
<preclass="literal-block">
template<class OtherIterator, class R2, class V2>
<trclass="field"><thclass="field-name">Returns:</th><tdclass="field-body">An instance of <ttclass="literal"><spanclass="pre">transform_iterator</span></tt> that is a copy of <ttclass="literal"><spanclass="pre">t</span></tt>.</td>
</tr>
<trclass="field"><thclass="field-name">Requires:</th><tdclass="field-body"><ttclass="literal"><spanclass="pre">OtherIterator</span></tt> is implicitly convertible to <ttclass="literal"><spanclass="pre">Iterator</span></tt>.</td>
<trclass="field"><thclass="field-name">Returns:</th><tdclass="field-body">An instance of <ttclass="literal"><spanclass="pre">transform_iterator<UnaryFunction,</span><spanclass="pre">Iterator></span></tt> with <ttclass="literal"><spanclass="pre">m_f</span></tt>
initialized to <ttclass="literal"><spanclass="pre">f</span></tt> and <ttclass="literal"><spanclass="pre">m_iterator</span></tt> initialized to <ttclass="literal"><spanclass="pre">x</span></tt>.</td>
template <class UnaryFunction, class Iterator>
transform_iterator<UnaryFunction, Iterator>
make_transform_iterator(Iterator it);
</pre>
<tableclass="field-list"frame="void"rules="none">
<colclass="field-name"/>
<colclass="field-body"/>
<tbodyvalign="top">
<trclass="field"><thclass="field-name">Returns:</th><tdclass="field-body">An instance of <ttclass="literal"><spanclass="pre">transform_iterator</span></tt> with <ttclass="literal"><spanclass="pre">m_f</span></tt>
default constructed and <ttclass="literal"><spanclass="pre">m_iterator</span></tt> initialized to <ttclass="literal"><spanclass="pre">x</span></tt>.</td>