1
0
forked from boostorg/mpl

Compare commits

...

2 Commits

Author SHA1 Message Date
nobody d131bd8a2e This commit was manufactured by cvs2svn to create tag
'Version_1_34_1_RC2'.

[SVN r38193]
2007-07-12 01:07:47 +00:00
Thomas Witt e42b58021c Patch from Trac #583.
[SVN r37849]
2007-06-01 16:31:21 +00:00
3 changed files with 1 additions and 151 deletions
@@ -1,10 +0,0 @@
.. The MPL *runtime algorithms* provide out-of-box support for the
common scenarios of crossing compile time/runtime boundary.
.. |Runtime Algorithms| replace:: `Runtime Algorithms`_
.. |runtime algorithm| replace:: `runtime algorithm`_
.. _runtime algorithm: `Runtime Algorithms`_
.. |runtime algorithms| replace:: `runtime algorithms`_
-140
View File
@@ -1,140 +0,0 @@
.. Algorithms/Runtime Algorithms//for_each |10
for_each
========
Synopsis
--------
.. parsed-literal::
template<
typename Sequence
, typename F
>
void for_each( F f );
template<
typename Sequence
, typename TransformOp
, typename F
>
void for_each( F f );
Description
-----------
``for_each`` is a family of overloaded function templates:
* ``for_each<Sequence>( f )`` applies the runtime function object
``f`` to every element in the |begin/end<Sequence>| range.
* ``for_each<Sequence,TransformOp>( f )`` applies the runtime function
object ``f`` to the result of the transformation ``TransformOp`` of
every element in the |begin/end<Sequence>| range.
Header
------
.. parsed-literal::
#include <boost/mpl/for_each.hpp>
Parameters
----------
+-------------------+-----------------------------------+-----------------------------------+
| Parameter | Requirement | Description |
+===================+===================================+===================================+
| ``Sequence`` | |Forward Sequence| | A sequence to iterate. |
+-------------------+-----------------------------------+-----------------------------------+
| ``TransformOp`` | |Lambda Expression| | A transformation. |
+-------------------+-----------------------------------+-----------------------------------+
| ``f`` | An |unary function object| | A runtime operation to apply. |
+-------------------+-----------------------------------+-----------------------------------+
Expression semantics
--------------------
For any |Forward Sequence| ``s``, |Lambda Expression| ``op`` , and an
|unary function object| ``f``:
.. parsed-literal::
for_each<s>( f );
:Return type:
``void``
:Postcondition:
Equivalent to
.. parsed-literal::
typedef begin<Sequence>::type i\ :sub:`1`;
|value_initialized|\ < deref<i\ :sub:`1`>::type > x\ :sub:`1`;
f(boost::get(x\ :sub:`1`));
typedef next<i\ :sub:`1`>::type i\ :sub:`2`;
|value_initialized|\ < deref<i\ :sub:`2`>::type > x\ :sub:`2`;
f(boost::get(x\ :sub:`2`));
|...|
|value_initialized|\ < deref<i\ :sub:`n`>::type > x\ :sub:`n`;
f(boost::get(x\ :sub:`n`));
typedef next<i\ :sub:`n`>::type last;
where ``n == size<s>::value`` and ``last`` is identical to
``end<s>::type``; no effect if ``empty<s>::value == true``.
.. parsed-literal::
for_each<s,op>( f );
:Return type:
``void``
:Postcondition:
Equivalent to
.. parsed-literal::
for_each< tranform_view<s,op> >( f );
Complexity
----------
Linear. Exactly ``size<s>::value`` applications of ``op`` and ``f``.
Example
-------
.. parsed-literal::
struct value_printer
{
template< typename U > void operator()(U x)
{
std::cout << x << '\n';
}
};
int main()
{
for_each< range_c<int,0,10> >( value_printer() );
}
See also
--------
|Runtime Algorithms|, |Views|, |transform_view|
.. |unary function object| replace:: `unary function object <http://www.sgi.com/tech/stl/UnaryFunction.html>`_
.. |value_initialized| replace:: `value_initialized <http://www.boost.org/libs/utility/value_init.htm>`_
+1 -1
View File
@@ -42,7 +42,7 @@ compile inherit.cpp ;
compile insert.cpp ;
compile insert_range.cpp ;
run int.cpp ;
run integral_c.cpp ;
run integral_c.cpp : : : <toolset>vacpp:<cxxflags>-qchars=signed ;
compile is_placeholder.cpp ;
compile is_sequence.cpp ;
compile iterator_tags.cpp ;