diff --git a/doc/transform_iterator_ref.rst b/doc/transform_iterator_ref.rst index bb59c1e..2a6cd58 100644 --- a/doc/transform_iterator_ref.rst +++ b/doc/transform_iterator_ref.rst @@ -1,6 +1,6 @@ :: - template @@ -10,50 +10,48 @@ friend class iterator_core_access; public: transform_iterator(); - transform_iterator(Iterator const& x, AdaptableUnaryFunction f); + transform_iterator(Iterator const& x, UnaryFunction f); template transform_iterator( - transform_iterator const& t + transform_iterator const& t , typename enable_if_convertible::type* = 0 // exposition ); - AdaptableUnaryFunction functor() const; + UnaryFunction functor() const; private: typename transform_iterator::value_type dereference() const; - AdaptableUnaryFunction m_f; + UnaryFunction m_f; }; ``transform_iterator`` requirements ................................... -The type ``AdaptableUnaryFunction`` must be Assignable, Copy -Constructible, and the expression ``f(x)`` must be valid where ``f`` -is an object of type ``AdaptableUnaryFunction``, ``x`` is an object of -type ``AdaptableUnaryFunction::argument_type``, and where the type of -``f(x)`` must be ``AdaptableUnaryFunction::result_type``. +The type ``UnaryFunction`` must be Assignable, Copy Constructible, and +the expression ``f(*i)`` must be valid where ``f`` is an object of +type ``UnaryFunction``, ``i`` is an object of type ``Iterator``, and +where the type of ``f(*i)`` must be +``result_of::reference)>::type``. The type ``Iterator`` must at least model Readable Iterator. The resulting ``transform_iterator`` models the most refined of the following options that is also modeled by ``Iterator``. - * Writable Lvalue Iterator if the ``result_type`` of the - ``AdaptableUnaryFunction`` is a non-const reference. + * Writable Lvalue Iterator if ``result_of::reference)>::type`` is a non-const reference. - * Readable Lvalue Iterator if the ``result_type`` is a const + * Readable Lvalue Iterator if ``result_of::reference)>::type`` is a const reference. * Readable Iterator otherwise. -The ``transform_iterator`` models the most refined standard traversal +The ``transform_iterator`` models the traversal concept that is modeled by ``Iterator``. -The ``value_type`` of ``transform_iterator`` is -``remove_reference::type``. The ``reference`` type is -``result_type``. - +The ``reference`` type of ``transform_iterator`` is +``result_of::reference)>::type``. +The ``value_type`` is ``remove_cv >::type``. ``transform_iterator`` public operations ........................................ @@ -65,7 +63,7 @@ The ``value_type`` of ``transform_iterator`` is and ``m_iterator`` default constructed. -``transform_iterator(Iterator const& x, AdaptableUnaryFunction f);`` +``transform_iterator(Iterator const& x, UnaryFunction f);`` :Returns: An instance of ``transform_iterator`` with ``m_f`` initialized to ``f`` and ``m_iterator`` initialized to ``x``. @@ -75,14 +73,14 @@ The ``value_type`` of ``transform_iterator`` is template transform_iterator( - transform_iterator const& t + transform_iterator const& t , typename enable_if_convertible::type* = 0 // exposition ); :Returns: An instance of ``transform_iterator`` that is a copy of ``t``. :Requires: ``OtherIterator`` is implicitly convertible to ``Iterator``. -``AdaptableUnaryFunction functor() const;`` +``UnaryFunction functor() const;`` :Returns: ``m_f``