| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| Copyright 2012 Eric Niebler |
| |
| Distributed under the Boost |
| Software License, Version 1.0. (See accompanying |
| file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| --> |
| <header name="boost/proto/functional/std/iterator.hpp"> |
| <para>Includes Proto callables for the functions found in the standard <code><iterator> header</code>.</para> |
| |
| <namespace name="boost"> |
| <namespace name="proto"> |
| <namespace name="functional"> |
| |
| <!-- proto::functional::advance --> |
| <struct name="advance"> |
| <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::advance()</code> function on its arguments.</purpose> |
| <description> |
| <para> |
| A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::advance()</code> function on its arguments.</para> |
| </description> |
| <inherit> |
| <type><classname>proto::callable</classname></type> |
| </inherit> |
| <typedef name="result_type"> |
| <type>void</type> |
| </typedef> |
| <method-group name="public member functions"> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="InputIterator"/> |
| </template> |
| <template> |
| <template-type-parameter name="Distance"/> |
| </template> |
| <parameter name="x"> |
| <paramtype>InputIterator &</paramtype> |
| </parameter> |
| <parameter name="n"> |
| <paramtype>Distance</paramtype> |
| </parameter> |
| <description> |
| <para>Calls <code>std::advance(x, n)</code></para> |
| </description> |
| </method> |
| </method-group> |
| </struct> |
| |
| <!-- proto::functional::distance --> |
| <struct name="distance"> |
| <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::distance()</code> function on its arguments.</purpose> |
| <description> |
| <para> |
| A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::distance()</code> function on its arguments.</para> |
| </description> |
| <inherit> |
| <type><classname>proto::callable</classname></type> |
| </inherit> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="InputIterator"/> |
| </template> |
| <specialization> |
| <template-arg>This(InputIterator, InputIterator)</template-arg> |
| </specialization> |
| <typedef name="type"> |
| <type>typename std::iterator_traits< |
| typename boost::remove_const< |
| typename boost::remove_reference<InputIterator>::type |
| >::type |
| >::difference_type</type> |
| </typedef> |
| </struct-specialization> |
| <method-group name="public member functions"> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="InputIterator"/> |
| </template> |
| <parameter name="first"> |
| <paramtype>InputIterator</paramtype> |
| </parameter> |
| <parameter name="last"> |
| <paramtype>InputIterator</paramtype> |
| </parameter> |
| <returns> |
| <para><code>std::distance(first, last)</code></para> |
| </returns> |
| </method> |
| </method-group> |
| </struct> |
| |
| <!-- proto::functional::next --> |
| <struct name="next"> |
| <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::next()</code> function on its arguments.</purpose> |
| <description> |
| <para> |
| A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::next()</code> function on its arguments.</para> |
| </description> |
| <inherit> |
| <type><classname>proto::callable</classname></type> |
| </inherit> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="ForwardIterator"/> |
| </template> |
| <specialization> |
| <template-arg>This(ForwardIterator)</template-arg> |
| </specialization> |
| <typedef name="type"> |
| <type>typename boost::remove_const< |
| typename boost::remove_reference<ForwardIterator>::type |
| >::type</type> |
| </typedef> |
| </struct-specialization> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="ForwardIterator"/> |
| <template-type-parameter name="Distance"/> |
| </template> |
| <specialization> |
| <template-arg>This(ForwardIterator, Distance)</template-arg> |
| </specialization> |
| <typedef name="type"> |
| <type>typename boost::remove_const< |
| typename boost::remove_reference<ForwardIterator>::type |
| >::type</type> |
| </typedef> |
| </struct-specialization> |
| <method-group name="public member functions"> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="ForwardIterator"/> |
| </template> |
| <parameter name="x"> |
| <paramtype>ForwardIterator</paramtype> |
| </parameter> |
| <returns> |
| <para><code>std::next(x)</code></para> |
| </returns> |
| </method> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="ForwardIterator"/> |
| </template> |
| <parameter name="x"> |
| <paramtype>ForwardIterator</paramtype> |
| </parameter> |
| <parameter name="n"> |
| <paramtype>typename std::iterator_traits<ForwardIterator>::difference_type</paramtype> |
| </parameter> |
| <returns> |
| <para><code>std::next(x, n)</code></para> |
| </returns> |
| </method> |
| </method-group> |
| </struct> |
| |
| <!-- proto::functional::prior --> |
| <struct name="prior"> |
| <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::prior()</code> function on its arguments.</purpose> |
| <description> |
| <para> |
| A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the |
| <code>std::prior()</code> function on its arguments.</para> |
| </description> |
| <inherit> |
| <type><classname>proto::callable</classname></type> |
| </inherit> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="BidirectionalIterator"/> |
| </template> |
| <specialization> |
| <template-arg>This(BidirectionalIterator)</template-arg> |
| </specialization> |
| <typedef name="type"> |
| <type>typename boost::remove_const< |
| typename boost::remove_reference<BidirectionalIterator>::type |
| >::type</type> |
| </typedef> |
| </struct-specialization> |
| <struct-specialization name="result"> |
| <template> |
| <template-type-parameter name="This"/> |
| <template-type-parameter name="BidirectionalIterator"/> |
| <template-type-parameter name="Distance"/> |
| </template> |
| <specialization> |
| <template-arg>This(BidirectionalIterator, Distance)</template-arg> |
| </specialization> |
| <typedef name="type"> |
| <type>typename boost::remove_const< |
| typename boost::remove_reference<BidirectionalIterator>::type |
| >::type</type> |
| </typedef> |
| </struct-specialization> |
| <method-group name="public member functions"> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="BidirectionalIterator"/> |
| </template> |
| <parameter name="x"> |
| <paramtype>BidirectionalIterator</paramtype> |
| </parameter> |
| <returns> |
| <para><code>std::prior(x)</code></para> |
| </returns> |
| </method> |
| <method name="operator()" cv="const"> |
| <type>void</type> |
| <template> |
| <template-type-parameter name="BidirectionalIterator"/> |
| </template> |
| <parameter name="x"> |
| <paramtype>BidirectionalIterator</paramtype> |
| </parameter> |
| <parameter name="n"> |
| <paramtype>typename std::iterator_traits<BidirectionalIterator>::difference_type</paramtype> |
| </parameter> |
| <returns> |
| <para><code>std::prior(x, n)</code></para> |
| </returns> |
| </method> |
| </method-group> |
| </struct> |
| |
| </namespace> |
| </namespace> |
| </namespace> |
| </header> |