Compare commits

..

1 Commits

Author SHA1 Message Date
38ed9ef905 Branch for working on the documentation tools documentation.
[SVN r68640]
2011-02-04 21:18:24 +00:00
1128 changed files with 47455 additions and 64600 deletions

20
changelist.txt Normal file
View File

@ -0,0 +1,20 @@
Interface Changes
- June 12, 2009: vector0 is now vector0<> as per Boost Trac Ticket #1608
to follow MPL more closely.
- September 24, 2009: added nview and friends
- October 12, 2009: the accumulator is the first argument to the functor of
fold and accumulate. Fixes Boost Trac Ticket #2355.
- October 30, 2009: Added support for associative iterators & views.
Renamed associative_sequence_tag to associative_tag. Fixes Boost Trac
Ticket #3473.
- April 4, 2010: Added array support, BOOST_FUSION_ADAPT_TPL_STRUCT,
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT, BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED and
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS
- April 5, 2010: Added BOOST_FUSION_DEFINE_STRUCT,
BOOST_FUSION_DEFINE_TPL_STRUCT, BOOST_FUSION_DEFINE_ASSOC_STRUCT and
BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT
- June 18, 2010: Added reverse_fold, iter_fold and reverse_iter_fold. Fixes
Boost Trac Ticket #1623.
- October 7, 2010: Added BOOST_FUSION_ADAPT_ADT, BOOST_FUSION_ADAPT_ASSOC_ADT,
BOOST_FUSION_ADAPT_TPL_ADT and BOOST_FUSION_ADAPT_ASSOC_TPL_ADT

View File

@ -1,5 +1,5 @@
#==============================================================================
# Copyright (c) 2003-2011 Joel de Guzman
# Copyright (c) 2003-2007 Joel de Guzman
#
# Use, modification and distribution is subject to the Boost Software
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Use, modification and distribution is subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Copyright (C) 2010 Christopher Schmidt
Use, modification and distribution is subject to the Boost Software

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Copyright (C) 2010 Christopher Schmidt
Use, modification and distribution is subject to the Boost Software
@ -11,20 +10,18 @@
[heading Lazy Evaluation]
Unlike __mpl__, Fusion algorithms are lazy[footnote Except for some
special cases such as __for_each__ and __copy__ which are inherently
imperative algorithms.] and non sequence-type preserving [footnote What
does that mean? It means that when you operate on a sequence through a
Fusion algorithm that returns a sequence, the sequence returned may not
be of the same class as the original]. This is by design. Runtime
efficiency is given a high priority. Like __mpl__, and unlike __stl__,
fusion algorithms are mostly functional in nature such that algorithms
Unlike __mpl__, Fusion algorithms are lazy and non sequence-type
preserving. What does that mean? It means that when you operate on a
sequence through a Fusion algorithm that returns a sequence, the sequence
returned may not be of the same class as the original. This is by design.
Runtime efficiency is given a high priority. Like __mpl__, and unlike
__stl__, fusion algorithms are functional in nature such that algorithms
are non mutating (no side effects). However, due to the high cost of
returning full sequences such as vectors and lists, /Views/ are returned
from Fusion algorithms instead. For example, the __transform__ algorithm
does not actually return a transformed version of the original sequence.
__transform__ returns a __transform_view__. This view holds a reference
to the original sequence plus the transform function. Iteration over the
__transform__ returns a __transform_view__. This view holds a reference to
the original sequence plus the transform function. Iteration over the
__transform_view__ will apply the transform function over the sequence
elements on demand. This /lazy/ evaluation scheme allows us to chain as
many algorithms as we want without incurring a high runtime penalty.
@ -40,7 +37,6 @@ the original sequence `s` and the value `x`. Functions that were once
sequence specific and need to be implemented N times over N different
sequences are now implemented only once. That is to say that Fusion
sequences are cheaply extensible.
To regain the original sequence, __conversion__ functions are provided. You
may use one of the __conversion__ functions to convert back to the original
sequence type.
@ -50,61 +46,6 @@ sequence type.
#include <boost/fusion/algorithm.hpp>
#include <boost/fusion/include/algorithm.hpp>
[section Auxiliary]
The auxiliary algorithms provide the utility algorithms for sequences.
[heading Header]
#include <boost/fusion/algorithm/auxiliary.hpp>
#include <boost/fusion/include/auxiliary.hpp>
[section Functions]
[section copy]
[heading Description]
Copy a sequence `src` to a sequence `dest`.
It is also used to convert sequence into other.
[heading Synopsis]
template <typename Seq1, typename Seq2>
void copy(Seq1 const& src, Seq2& dest);
[table Parameters
[[Parameter][Requirement][Description]]
[[`src`][A model of __forward_sequence__, all elements contained in the `src` sequence should be convertible into the element contained in the `dest` sequence.][Operation's argument]]
[[`dest`][A model of __forward_sequence__, `e2 = e1` is valid expression for each pair of elements `e1` of `src` and `e2` of `dest`.][Operation's argument]]
]
[heading Expression Semantics]
__copy__(src, dest);
[*Return type]: `void`
[*Semantics]: `e2 = e1` for each element `e1` in `src` and `e2` in `dest`.
[heading Complexity]
Linear, exactly `__result_of_size__<Sequence>::value`.
[heading Header]
#include <boost/fusion/algorithm/auxiliary/copy.hpp>
#include <boost/fusion/include/copy.hpp>
[heading Example]
__vector__<int,int> vec(1,2);
__list__<int,int> ls;
__copy__(vec, ls);
assert(ls == __make_list__(1,2));
[endsect]
[endsect]
[endsect]
[section Iteration]
The iteration algorithms provide the fundamental algorithms for traversing

View File

@ -1,7 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2006 Tobias Schwinger
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Copyright (C) 2010 Christopher Schmidt
Use, modification and distribution is subject to the Boost Software
@ -40,10 +38,5 @@ This section summarizes significant changes to the Fusion library.
* October 7, 2010: Added __adapt_adt__, __adapt_tpl_adt__,
__adapt_assoc_adt__ and __adapt_assoc_tpl_adt__ (Joel de Guzman,
Hartmut Kaiser and Christopher Schmidt)
* August 29, 2011: Added support for segmented sequences and iterators (Eric Niebler)
* September 16, 2011: Added preprocessed files (using wave) to speed up
compilation (Joel de Guzman)
* October 8, 2011: Added adaptor for std::tuple (Joel de Guzman)
* October 10, 2011: Made map random access (Brandon Kohn)
[endsect]

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Use, modification and distribution is subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@ -420,7 +419,7 @@ including any Fusion header to change the default. Example:
[heading Model of]
* __associative_sequence__
* __random_access_sequence__
* __forward_sequence__
[variablelist Notation
[[`M`] [A `map` type]]
@ -432,7 +431,7 @@ including any Fusion header to change the default. Example:
[heading Expression Semantics]
Semantics of an expression is defined only where it differs from, or is not
defined in __forward_sequence__ and __associative_sequence__.
defined in __random_access_sequence__ and __associative_sequence__.
[table
[[Expression] [Semantics]]
@ -1039,8 +1038,8 @@ rules for __element_conversion__.
[heading Header]
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/include/make_vector.hpp>
#include <boost/fusion/container/generation/make_list.hpp>
#include <boost/fusion/include/make_list.hpp>
[heading Example]

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Use, modification and distribution is subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@ -391,7 +390,7 @@ for a variety of types.
[heading Description]
The __sequence_facade__ template provides an intrusive mechanism for
producing a conforming Fusion sequence.
producing a conforming Fusion iterator.
[heading Synopsis]
template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
@ -416,8 +415,6 @@ The user must the implement the key expressions required by their sequence type.
[[`sequence::template end<Seq>::call(seq)`][An iterator to the end of sequence `seq`]]
[[`sequence::template size<Seq>::type`][The size of a sequence of type `Seq` as an __mpl_integral_constant__]]
[[`sequence::template size<Seq>::call(seq)`][The size of sequence `seq`]]
[[`sequence::template empty<Seq>::type`][Returns `mpl::true_` if `Seq` has zero elements, `mpl::false_` otherwise.]]
[[`sequence::template empty<Seq>::call`][Returns a type convertible to `bool` that evaluates to true if the sequence is empty, else, evaluates to false. ]]
[[`sequence::template at<Seq, N>::type`][The type of element `N` in a sequence of type `Seq`]]
[[`sequence::template at<Seq, N>::call(seq)`][Element `N` in sequence `seq`]]
[[`sequence::template value_at<Sequence, N>::type`][The type of the `N`th element in a sequence of type `Seq`]]
@ -468,8 +465,8 @@ The user must the implement the key expressions required by their iterator type.
[[`iterator::template advance<It, N>::call(it)`][An iterator advanced `N` elements from `it`][Implemented in terms of `next` and `prior`]]
[[`iterator::template distance<It1, It2>::type`][The distance between iterators of type `It1` and `It2` as an __mpl_integral_constant__][None]]
[[`iterator::template distance<It1, It2>::call(it1, it2)`][The distance between iterator `it1` and `it2`][None]]
[[`iterator::template equal_to<It1, It2>::type`][Returns `mpl::true_` if `It1` is equal to `It2`, `mpl::false_` otherwise.][`boost::same_type<It1, It2>::type`]]
[[`iterator::template equal_to<It1, It2>::call(it1, it2)`][Returns a type convertible to `bool` that evaluates to `true` if `It1` is equal to `It2`, `false` otherwise.][`boost::same_type<It1, It2>::type()`]]
[[`iterator::template equal_to<It1, It2>::type`][The distance between iterators of type `It1` and `It2`][`boost::same_type<It1, It2>::type`]]
[[`iterator::template equal_to<It1, It2>::call(it1, it2)`][The distance between iterators `it1` and `it2`][`boost::same_type<It1, It2>::type()`]]
[[`iterator::template key_of<It>::type`][The key type associated with the element from `It`][None]]
[[`iterator::template value_of_data<It>::type`][The type of the data property associated with the element from `It`][None]]
[[`iterator::template deref_data<It>::type`][The type that will be returned by dereferencing the data property of the element from `It`][None]]

View File

@ -1,5 +1,5 @@
[/==============================================================================
Copyright (C) 2006 Tobias Schwinger
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Use, modification and distribution is subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

View File

@ -1,6 +1,5 @@
[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
Copyright (C) 2010 Christopher Schmidt
Use, modification and distribution is subject to the Boost Software
@ -9,9 +8,9 @@
===============================================================================/]
[library Fusion
[quickbook 1.3]
[version 2.2]
[version 2.0]
[authors [de Guzman, Joel], [Marsden, Dan], [Schwinger, Tobias]]
[copyright 2001 2002 2003 2004 2005 2006 2011 Joel de Guzman, Dan Marsden, Tobias Schwinger]
[copyright 2001 2002 2003 2004 2005 2006 2007 Joel de Guzman, Dan Marsden, Tobias Schwinger]
[purpose Statically Typed Heterogeneous Data Structures and Algorithms]
[license
Distributed under the Boost Software License, Version 1.0.
@ -216,7 +215,6 @@
[def __algorithm__ [link fusion.algorithm Algorithm]]
[def __algorithms__ [link fusion.algorithm Algorithms]]
[def __copy__ [link fusion.algorithm.auxiliary.functions.copy `copy`]]
[def __fold__ [link fusion.algorithm.iteration.functions.fold `fold`]]
[def __result_of_fold__ [link fusion.algorithm.iteration.metafunctions.fold `result_of::fold`]]
[def __reverse_fold__ [link fusion.algorithm.iteration.functions.reverse_fold `reverse_fold`]]

View File

@ -0,0 +1,58 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="prev" href="change_log.html" title="Change log">
<link rel="next" href="references.html" title="References">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="change_log.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="fusion.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
<p>
Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey Gurtovoy,
Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan Marsden, Eric
Niebler, Joao Abecasis and Andy Little. These people are instrumental in the
design and development of Fusion.
</p>
<p>
Special thanks to Ronald Garcia, the review manager and to all the people in
the boost community who participated in the review: Andreas Pokorny, Andreas
Huber, Jeff Flinn, David Abrahams, Pedro Lamarao, Larry Evans, Ryan Gallagher,
Andy Little, Gennadiy Rozental, Tobias Schwinger, Joao Abecasis, Eric Niebler,
Oleg Abrosimov, Gary Powell, Eric Friedman, Darren Cook, Martin Bonner and
Douglas Gregor.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="change_log.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,102 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Adapted</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="prev" href="view/repetitive_view.html" title="repetitive_view">
<link rel="next" href="adapted/array.html" title="Array">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="view/repetitive_view.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapted/array.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="fusion.adapted"></a><a class="link" href="adapted.html" title="Adapted">Adapted</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="adapted/array.html">Array</a></span></dt>
<dt><span class="section"><a href="adapted/std__pair.html">std::pair</a></span></dt>
<dt><span class="section"><a href="adapted/mpl_sequence.html">mpl sequence</a></span></dt>
<dt><span class="section"><a href="adapted/boost__array.html">boost::array</a></span></dt>
<dt><span class="section"><a href="adapted/boost__tuple.html">boost::tuple</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_struct.html">BOOST_FUSION_ADAPT_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_tpl_struct.html">BOOST_FUSION_ADAPT_TPL_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_struct_named.html">BOOST_FUSION_ADAPT_STRUCT_NAMED</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_assoc.html">BOOST_FUSION_ADAPT_ASSOC_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_assoc_tpl_struct.html">BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_assoc_struct_named.html">BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_adt.html">BOOST_FUSION_ADAPT_ADT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_tpl_adt.html">BOOST_FUSION_ADAPT_TPL_ADT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_assoc_adt.html">BOOST_FUSION_ADAPT_ASSOC_ADT</a></span></dt>
<dt><span class="section"><a href="adapted/adapt_assoc_tpl_adt.html">BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</a></span></dt>
<dt><span class="section"><a href="adapted/define_struct.html">BOOST_FUSION_DEFINE_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/define_tpl_struct.html">BOOST_FUSION_DEFINE_TPL_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/define_assoc_struct.html">BOOST_FUSION_DEFINE_ASSOC_STRUCT</a></span></dt>
<dt><span class="section"><a href="adapted/define_assoc_tpl_struct.html">BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT</a></span></dt>
</dl></div>
<p>
Fusion provides a couple of adapters for other sequences such as arrays, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>,
<a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a> sequences,
and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>. These adapters are written using Fusion's
non-intrusive <a class="link" href="extension.html" title="Extension">Extension</a> mechanism.
If you wish to use these sequences with fusion, simply include the necessary
files and they will be regarded as first-class, fully conforming fusion sequences.
</p>
<p>
Fusion also provides various schemes to make it easy for the user to adapt
various data structures, non-intrusively, as full fledged Fusion sequences.
</p>
<a name="fusion.adapted.header"></a><h4>
<a name="id923124"></a>
<a class="link" href="adapted.html#fusion.adapted.header">Header</a>
</h4>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
Fusion sequences may also be adapted as fully conforming <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequences (see <a class="link" href="sequence/intrinsic.html" title="Intrinsic">Intrinsics</a>).
That way, we can have 2-way adaptation to and from <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
and Fusion. To make Fusion sequences fully conforming <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequences, include:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
If you want bi-directional adaptation to and from <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
and Fusion, simply include:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
The header includes all the necessary headers.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="view/repetitive_view.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapted/array.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,165 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ADT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_assoc_struct_named.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED">
<link rel="next" href="adapt_tpl_adt.html" title="BOOST_FUSION_ADAPT_TPL_ADT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_struct_named.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_tpl_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_adt"></a><a class="link" href="adapt_adt.html" title="BOOST_FUSION_ADAPT_ADT">BOOST_FUSION_ADAPT_ADT</a>
</h3></div></div></div>
<p>
BOOST_FUSION_ADAPT_ADT is a macro than can be used to generate all the necessary
boilerplate to adapt an arbitrary class type as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.adapt_adt.synopsis"></a><h5>
<a name="id934417"></a>
<a class="link" href="adapt_adt.html#fusion.adapted.adapt_adt.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ADT</span><span class="special">(</span>
<span class="identifier">type_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">attribute_type0</span><span class="special">,</span> <span class="identifier">attribute_const_type0</span><span class="special">,</span> <span class="identifier">get_expr0</span><span class="special">,</span> <span class="identifier">set_expr0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">attribute_type1</span><span class="special">,</span> <span class="identifier">attribute_const_type1</span><span class="special">,</span> <span class="identifier">get_expr1</span><span class="special">,</span> <span class="identifier">set_expr1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_adt.expression_semantics"></a><h5>
<a name="id934535"></a>
<a class="link" href="adapt_adt.html#fusion.adapted.adapt_adt.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">type_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence of <code class="literal">(attribute_type<span class="emphasis"><em>N</em></span>,
attribute_const_type<span class="emphasis"><em>N</em></span>, get_expr<span class="emphasis"><em>N</em></span>,
set_expr<span class="emphasis"><em>N</em></span>)</code> quadruples declares the types,
const types, get-expressions and set-expressions of the elements that are
part of the adapted fusion sequence. <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code>
is the expression that is invoked to get the <span class="emphasis"><em>N</em></span>th element
of an instance of <code class="computeroutput"><span class="identifier">type_name</span></code>.
This expression may access a variable named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>
or <code class="computeroutput"><span class="identifier">type_name</span> <span class="keyword">const</span><span class="special">&amp;</span></code> which represents the underlying instance
of <code class="computeroutput"><span class="identifier">type_name</span></code>. <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code>
and <code class="literal">attribute_const_type<span class="emphasis"><em>N</em></span></code> may specify
the types that <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> denotes
to. <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to set the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access variables named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>,
which represent the corresponding instance of <code class="computeroutput"><span class="identifier">type_name</span></code>,
and <code class="computeroutput"><span class="identifier">val</span></code> of an arbitrary const-qualified
reference template type parameter <code class="computeroutput"><span class="identifier">Val</span></code>,
which represents the right operand of the assignment expression.
</p>
<p>
The actual return type of fusion's intrinsic sequence access (meta-)functions
when in invoked with (an instance of) <code class="computeroutput"><span class="identifier">type_name</span></code>
is a proxy type. This type is implicitly convertible to the attribute type
via <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> and forwards assignment
to the underlying element via <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code>.
The value type (that is the type returned by <a class="link" href="../iterator/metafunctions/value_of.html" title="value_of"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at.html" title="value_at"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></code></a> and <a class="link" href="../sequence/intrinsic/metafunctions/value_at_c.html" title="value_at_c"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_c</span></code></a>) of the <span class="emphasis"><em>N</em></span>th
element is <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code> with const-qualifier
and reference removed.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">type_name</span></code>
should be the fully namespace qualified name of the class type to be adapted.
</p>
<a name="fusion.adapted.adapt_adt.header"></a><h5>
<a name="id934823"></a>
<a class="link" href="adapt_adt.html#fusion.adapted.adapt_adt.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">adt</span><span class="special">/</span><span class="identifier">adapt_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_adt.example"></a><h5>
<a name="id934938"></a>
<a class="link" href="adapt_adt.html#fusion.adapted.adapt_adt.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">private</span><span class="special">:</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">void</span> <span class="identifier">set_name</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">n</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">name</span><span class="special">=</span><span class="identifier">n</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">set_age</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">age</span><span class="special">=</span><span class="identifier">a</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_name</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">name</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">int</span> <span class="identifier">get_age</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="identifier">BOOST_FUSION_ADAPT_ADT</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_name</span><span class="special">(</span><span class="identifier">val</span><span class="special">))</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_age</span><span class="special">(</span><span class="identifier">val</span><span class="special">)))</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span> <span class="identifier">e</span><span class="special">;</span>
<span class="identifier">front</span><span class="special">(</span><span class="identifier">e</span><span class="special">)=</span><span class="string">"Edward Norton"</span><span class="special">;</span>
<span class="identifier">back</span><span class="special">(</span><span class="identifier">e</span><span class="special">)=</span><span class="number">41</span><span class="special">;</span>
<span class="comment">//Prints 'Edward Norton is 41 years old'
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" years old"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.adapt_adt.see_also"></a><h5>
<a name="id936675"></a>
<a class="link" href="adapt_adt.html#fusion.adapted.adapt_adt.see_also">See also</a>
</h5>
<p>
<a class="link" href="../notes.html#fusion.notes.adt_attribute_proxy"><code class="computeroutput"><span class="identifier">adt_attribute_proxy</span></code></a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_struct_named.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_tpl_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,117 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ASSOC_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_struct_named.html" title="BOOST_FUSION_ADAPT_STRUCT_NAMED">
<link rel="next" href="adapt_assoc_tpl_struct.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_struct_named.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_assoc"></a><a class="link" href="adapt_assoc.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT">BOOST_FUSION_ADAPT_ASSOC_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_assoc.description"></a><h5>
<a name="id929010"></a>
<a class="link" href="adapt_assoc.html#fusion.adapted.adapt_assoc.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_ASSOC_STRUCT is a macro that can be used to generate all
the necessary boilerplate to make an arbitrary struct a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.adapt_assoc.synopsis"></a><h5>
<a name="id929036"></a>
<a class="link" href="adapt_assoc.html#fusion.adapted.adapt_assoc.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_STRUCT</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_assoc.semantics"></a><h5>
<a name="id929137"></a>
<a class="link" href="adapt_assoc.html#fusion.adapted.adapt_assoc.semantics">Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">,</span>
<span class="identifier">key_typeN</span><span class="special">)</span></code>
triples declares the type, name and key type of each of the struct members
that are part of the sequence.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be adapted.
</p>
<a name="fusion.adapted.adapt_assoc.header"></a><h5>
<a name="id929214"></a>
<a class="link" href="adapt_assoc.html#fusion.adapted.adapt_assoc.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_assoc.example"></a><h5>
<a name="id929329"></a>
<a class="link" href="adapt_assoc.html#fusion.adapted.adapt_assoc.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="comment">// demo::employee is now a Fusion sequence.
</span><span class="comment">// It is also an associative sequence with
</span><span class="comment">// keys keys::name and keys::age present.
</span><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_STRUCT</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_struct_named.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ASSOC_ADT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_tpl_adt.html" title="BOOST_FUSION_ADAPT_TPL_ADT">
<link rel="next" href="adapt_assoc_tpl_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_ADT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_tpl_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_tpl_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_assoc_adt"></a><a class="link" href="adapt_assoc_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_ADT">BOOST_FUSION_ADAPT_ASSOC_ADT</a>
</h3></div></div></div>
<p>
BOOST_FUSION_ADAPT_ASSOC_ADT is a macro than can be used to generate all
the necessary boilerplate to adapt an arbitrary class type as a model of
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random Access
Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.adapt_assoc_adt.synopsis"></a><h5>
<a name="id938161"></a>
<a class="link" href="adapt_assoc_adt.html#fusion.adapted.adapt_assoc_adt.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_ADT</span><span class="special">(</span>
<span class="identifier">type_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">attribute_type0</span><span class="special">,</span> <span class="identifier">attribute_const_type0</span><span class="special">,</span> <span class="identifier">get_expr0</span><span class="special">,</span> <span class="identifier">set_expr0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">attribute_type1</span><span class="special">,</span> <span class="identifier">attribute_const_type1</span><span class="special">,</span> <span class="identifier">get_expr1</span><span class="special">,</span> <span class="identifier">set_expr1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_assoc_adt.expression_semantics"></a><h5>
<a name="id938295"></a>
<a class="link" href="adapt_assoc_adt.html#fusion.adapted.adapt_assoc_adt.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">type_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence of <code class="literal">(attribute_type<span class="emphasis"><em>N</em></span>,
attribute_const_type<span class="emphasis"><em>N</em></span>, get_expr<span class="emphasis"><em>N</em></span>,
set_expr<span class="emphasis"><em>N</em></span>, key_type<span class="emphasis"><em>N</em></span>)</code>
5-tuples declares the types, const types, get-expressions, set-expressions
and key types of the elements that are part of the adapted fusion sequence.
<code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to get the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access a variable named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>
or <code class="computeroutput"><span class="identifier">type_name</span> <span class="keyword">const</span><span class="special">&amp;</span></code> which represents the underlying instance
of <code class="computeroutput"><span class="identifier">type_name</span></code>. <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code>
and <code class="literal">attribute_const_type<span class="emphasis"><em>N</em></span></code> may specify
the types that <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> denotes
to. <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to set the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access variables named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>,
which represent the corresponding instance of <code class="computeroutput"><span class="identifier">type_name</span></code>,
and <code class="computeroutput"><span class="identifier">val</span></code> of an arbitrary const-qualified
reference template type parameter <code class="computeroutput"><span class="identifier">Val</span></code>,
which represents the right operand of the assignment expression.
</p>
<p>
The actual return type of fusion's intrinsic sequence access (meta-)functions
when in invoked with (an instance of) <code class="computeroutput"><span class="identifier">type_name</span></code>
is a proxy type. This type is implicitly convertible to the attribute type
via <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> and forwards assignment
to the underlying element via <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code>.
The value type (that is the type returned by <a class="link" href="../iterator/metafunctions/value_of.html" title="value_of"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of</span></code></a>, <a class="link" href="../iterator/metafunctions/value_of_data.html" title="value_of_data"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of_data</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at.html" title="value_at"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at_c.html" title="value_at_c"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_c</span></code></a> and <a class="link" href="../sequence/intrinsic/metafunctions/value_at_key.html" title="value_at_key"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span></code></a>) of the <span class="emphasis"><em>N</em></span>th
element is <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code> with const-qualifier
and reference removed.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">type_name</span></code>
should be the fully namespace qualified name of the class type to be adapted.
</p>
<a name="fusion.adapted.adapt_assoc_adt.header"></a><h5>
<a name="id938625"></a>
<a class="link" href="adapt_assoc_adt.html#fusion.adapted.adapt_assoc_adt.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">adt</span><span class="special">/</span><span class="identifier">adapt_assoc_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_assoc_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_adt.example"></a><h5>
<a name="id938741"></a>
<a class="link" href="adapt_assoc_adt.html#fusion.adapted.adapt_assoc_adt.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">private</span><span class="special">:</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">void</span> <span class="identifier">set_name</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">n</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">name</span><span class="special">=</span><span class="identifier">n</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">set_age</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">age</span><span class="special">=</span><span class="identifier">a</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_name</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">name</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">int</span> <span class="identifier">get_age</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">BOOST_FUSION_ADAPT_ASSOC_ADT</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_name</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_age</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span> <span class="identifier">e</span><span class="special">;</span>
<span class="identifier">at_key</span><span class="special">&lt;</span><span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;(</span><span class="identifier">e</span><span class="special">)=</span><span class="string">"Edward Norton"</span><span class="special">;</span>
<span class="identifier">at_key</span><span class="special">&lt;</span><span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">&gt;(</span><span class="identifier">e</span><span class="special">)=</span><span class="number">41</span><span class="special">;</span>
<span class="comment">//Prints 'Edward Norton is 41 years old'
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" years old"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_adt.see_also"></a><h5>
<a name="id941266"></a>
<a class="link" href="adapt_assoc_adt.html#fusion.adapted.adapt_assoc_adt.see_also">See also</a>
</h5>
<p>
<a class="link" href="../notes.html#fusion.notes.adt_attribute_proxy"><code class="computeroutput"><span class="identifier">adt_attribute_proxy</span></code></a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_tpl_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_tpl_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,133 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_assoc_tpl_struct.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT">
<link rel="next" href="adapt_adt.html" title="BOOST_FUSION_ADAPT_ADT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_assoc_struct_named"></a><a class="link" href="adapt_assoc_struct_named.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED">BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_assoc_struct_named.description"></a><h5>
<a name="id933607"></a>
<a class="link" href="adapt_assoc_struct_named.html#fusion.adapted.adapt_assoc_struct_named.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED and BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS
are macros that can be used to generate all the necessary boilerplate to
make an arbitrary struct a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The given struct is adapted using the given name.
</p>
<a name="fusion.adapted.adapt_assoc_struct_named.synopsis"></a><h5>
<a name="id933635"></a>
<a class="link" href="adapt_assoc_struct_named.html#fusion.adapted.adapt_assoc_struct_named.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span> <span class="identifier">adapted_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
<span class="identifier">BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">adapted_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_assoc_struct_named.semantics"></a><h5>
<a name="id933856"></a>
<a class="link" href="adapt_assoc_struct_named.html#fusion.adapted.adapt_assoc_struct_named.semantics">Semantics</a>
</h5>
<p>
The above macros generate the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> while using <code class="computeroutput"><span class="identifier">adapted_name</span></code>
as the name of the adapted struct. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code>
declares the namespace for <code class="computeroutput"><span class="identifier">adapted_name</span></code>.
It yields to a fully qualified name for <code class="computeroutput"><span class="identifier">adapted_name</span></code>
of <code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">adapted_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the adapted
view is placed in the global namespace. If no namespace sequence is given
(i.e. <code class="computeroutput"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT_ASSOC_NAMED</span></code>),
the adapted view is placed in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">adapted</span></code>.
The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span> <span class="identifier">member_nameN</span><span class="special">,</span> <span class="identifier">key_typeN</span><span class="special">)</span></code> triples declares the type, name and key
type of each of the struct members that are part of the sequence.
</p>
<p>
The macros should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be converted.
</p>
<a name="fusion.adapted.adapt_assoc_struct_named.header"></a><h5>
<a name="id934030"></a>
<a class="link" href="adapt_assoc_struct_named.html#fusion.adapted.adapt_assoc_struct_named.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_assoc_struct_named</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_assoc_struct_named</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_struct_named.example"></a><h5>
<a name="id934145"></a>
<a class="link" href="adapt_assoc_struct_named.html#fusion.adapted.adapt_assoc_struct_named.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="comment">// boost::fusion::adapted::adapted_employee is now a Fusion sequence
</span><span class="comment">// referring to demo::employee
</span><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span> <span class="identifier">adapted_employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,183 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_assoc_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_ADT">
<link rel="next" href="define_struct.html" title="BOOST_FUSION_DEFINE_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_assoc_tpl_adt"></a><a class="link" href="adapt_assoc_tpl_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_ADT">BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</a>
</h3></div></div></div>
<p>
BOOST_FUSION_ADAPT_ASSOC_TPL_ADT is a macro than can be used to generate
all the necessary boilerplate to adapt an arbitrary template class type as
a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.adapt_assoc_tpl_adt.synopsis"></a><h5>
<a name="id941316"></a>
<a class="link" href="adapt_assoc_tpl_adt.html#fusion.adapted.adapt_assoc_tpl_adt.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">type_name</span><span class="special">)</span> <span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">attribute_type0</span><span class="special">,</span> <span class="identifier">attribute_const_type0</span><span class="special">,</span> <span class="identifier">get_expr0</span><span class="special">,</span> <span class="identifier">set_expr0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">attribute_type1</span><span class="special">,</span> <span class="identifier">attribute_const_type1</span><span class="special">,</span> <span class="identifier">get_expr1</span><span class="special">,</span> <span class="identifier">set_expr1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_assoc_tpl_adt.expression_semantics"></a><h5>
<a name="id941493"></a>
<a class="link" href="adapt_assoc_tpl_adt.html#fusion.adapted.adapt_assoc_tpl_adt.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">type_name</span></code>
or an arbitrary specialization of <code class="computeroutput"><span class="identifier">type_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...</span></code> declares the template parameters of the
actual specialization of <code class="computeroutput"><span class="identifier">type_name</span></code>
that is adapted as a fusion sequence. The sequence of <code class="literal">(attribute_type<span class="emphasis"><em>N</em></span>,
attribute_const_type<span class="emphasis"><em>N</em></span>, get_expr<span class="emphasis"><em>N</em></span>,
set_expr<span class="emphasis"><em>N</em></span>, key_type<span class="emphasis"><em>N</em></span>)</code>
5-tuples declares the types, const types, get-expressions, set-expressions
and key types of the elements that are part of the adapted fusion sequence.
<code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to get the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access a variable named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>
or <code class="computeroutput"><span class="identifier">type_name</span> <span class="keyword">const</span><span class="special">&amp;</span></code> which represents the underlying instance
of <code class="computeroutput"><span class="identifier">type_name</span></code>. <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code>
and <code class="literal">attribute_const_type<span class="emphasis"><em>N</em></span></code> may specify
the types that <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> denotes
to. <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to set the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access variables named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>,
which represent the corresponding instance of <code class="computeroutput"><span class="identifier">type_name</span></code>,
and <code class="computeroutput"><span class="identifier">val</span></code> of an arbitrary const-qualified
reference template type parameter <code class="computeroutput"><span class="identifier">Val</span></code>,
which represents the right operand of the assignment expression.
</p>
<p>
The actual return type of fusion's intrinsic sequence access (meta-)functions
when in invoked with (an instance of) <code class="computeroutput"><span class="identifier">type_name</span></code>
is a proxy type. This type is implicitly convertible to the attribute type
via <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> and forwards assignment
to the underlying element via <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code>.
The value type (that is the type returned by <a class="link" href="../iterator/metafunctions/value_of.html" title="value_of"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of</span></code></a>, <a class="link" href="../iterator/metafunctions/value_of_data.html" title="value_of_data"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of_data</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at.html" title="value_at"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at_c.html" title="value_at_c"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_c</span></code></a> and <a class="link" href="../sequence/intrinsic/metafunctions/value_at_key.html" title="value_at_key"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span></code></a>) of the <span class="emphasis"><em>N</em></span>th
element is <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code> with const-qualifier
and reference removed.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">type_name</span></code>
should be the fully namespace qualified name of the template class type to
be adapted.
</p>
<a name="fusion.adapted.adapt_assoc_tpl_adt.header"></a><h5>
<a name="id941882"></a>
<a class="link" href="adapt_assoc_tpl_adt.html#fusion.adapted.adapt_assoc_tpl_adt.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">adt</span><span class="special">/</span><span class="identifier">adapt_assoc_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_assoc_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_tpl_adt.example"></a><h5>
<a name="id941997"></a>
<a class="link" href="adapt_assoc_tpl_adt.html#fusion.adapted.adapt_assoc_tpl_adt.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Name</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Age</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">private</span><span class="special">:</span>
<span class="identifier">Name</span> <span class="identifier">name</span><span class="special">;</span>
<span class="identifier">Age</span> <span class="identifier">age</span><span class="special">;</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">void</span> <span class="identifier">set_name</span><span class="special">(</span><span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">n</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">name</span><span class="special">=</span><span class="identifier">n</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">set_age</span><span class="special">(</span><span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">age</span><span class="special">=</span><span class="identifier">a</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_name</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">name</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_age</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">BOOST_FUSION_ADAPT_ASSOC_TPL_ADT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">)</span> <span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_name</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_age</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">e</span><span class="special">;</span>
<span class="identifier">at_key</span><span class="special">&lt;</span><span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;(</span><span class="identifier">e</span><span class="special">)=</span><span class="string">"Edward Norton"</span><span class="special">;</span>
<span class="identifier">at_key</span><span class="special">&lt;</span><span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">&gt;(</span><span class="identifier">e</span><span class="special">)=</span><span class="number">41</span><span class="special">;</span>
<span class="comment">//Prints 'Edward Norton is 41 years old'
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" years old"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_tpl_adt.see_also"></a><h5>
<a name="id942860"></a>
<a class="link" href="adapt_assoc_tpl_adt.html#fusion.adapted.adapt_assoc_tpl_adt.see_also">See also</a>
</h5>
<p>
<a class="link" href="../notes.html#fusion.notes.adt_attribute_proxy"><code class="computeroutput"><span class="identifier">adt_attribute_proxy</span></code></a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,125 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_assoc.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT">
<link rel="next" href="adapt_assoc_struct_named.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_struct_named.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_assoc_tpl_struct"></a><a class="link" href="adapt_assoc_tpl_struct.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT">BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_assoc_tpl_struct.description"></a><h5>
<a name="id929588"></a>
<a class="link" href="adapt_assoc_tpl_struct.html#fusion.adapted.adapt_assoc_tpl_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT is a macro that can be used to generate
all the necessary boilerplate to make an arbitrary template struct a model
of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.adapt_assoc_tpl_struct.synopsis"></a><h5>
<a name="id929615"></a>
<a class="link" href="adapt_assoc_tpl_struct.html#fusion.adapted.adapt_assoc_tpl_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">struct_name</span><span class="special">)</span> <span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_assoc_tpl_struct.semantics"></a><h5>
<a name="id929757"></a>
<a class="link" href="adapt_assoc_tpl_struct.html#fusion.adapted.adapt_assoc_tpl_struct.semantics">Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
or an arbitrary specialization of <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...</span></code> declares the template parameters of the
actual specialization of <code class="computeroutput"><span class="identifier">struct_name</span></code>
that is adapted as a fusion sequence. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">,</span>
<span class="identifier">key_typeN</span><span class="special">)</span></code>
triples declares the type, name and key type of each of the struct members
that are part of the sequence.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be adapted.
</p>
<a name="fusion.adapted.adapt_assoc_tpl_struct.header"></a><h5>
<a name="id929893"></a>
<a class="link" href="adapt_assoc_tpl_struct.html#fusion.adapted.adapt_assoc_tpl_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_assoc_tpl_struct.example"></a><h5>
<a name="id930008"></a>
<a class="link" href="adapt_assoc_tpl_struct.html#fusion.adapted.adapt_assoc_tpl_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Name</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Age</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">Name</span> <span class="identifier">name</span><span class="special">;</span>
<span class="identifier">Age</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="comment">// Any instantiated demo::employee is now a Fusion sequence.
</span><span class="comment">// It is also an associative sequence with
</span><span class="comment">// keys keys::name and keys::age present.
</span><span class="identifier">BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">)</span> <span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">Age</span><span class="special">,</span> <span class="identifier">age</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_struct_named.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,106 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="boost__tuple.html" title="boost::tuple">
<link rel="next" href="adapt_tpl_struct.html" title="BOOST_FUSION_ADAPT_TPL_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__tuple.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_struct"></a><a class="link" href="adapt_struct.html" title="BOOST_FUSION_ADAPT_STRUCT">BOOST_FUSION_ADAPT_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_struct.description"></a><h5>
<a name="id927254"></a>
<a class="link" href="adapt_struct.html#fusion.adapted.adapt_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_STRUCT is a macro that can be used to generate all the
necessary boilerplate to make an arbitrary struct a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.adapt_struct.synopsis"></a><h5>
<a name="id927275"></a>
<a class="link" href="adapt_struct.html#fusion.adapted.adapt_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_struct.semantics"></a><h5>
<a name="id927359"></a>
<a class="link" href="adapt_struct.html#fusion.adapted.adapt_struct.semantics">Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">)</span></code>
pairs declares the type and names of each of the struct members that are
part of the sequence.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be adapted.
</p>
<a name="fusion.adapted.adapt_struct.header"></a><h5>
<a name="id927423"></a>
<a class="link" href="adapt_struct.html#fusion.adapted.adapt_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_struct.example"></a><h5>
<a name="id927538"></a>
<a class="link" href="adapt_struct.html#fusion.adapted.adapt_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="comment">// demo::employee is now a Fusion sequence
</span><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__tuple.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,125 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_STRUCT_NAMED</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_tpl_struct.html" title="BOOST_FUSION_ADAPT_TPL_STRUCT">
<link rel="next" href="adapt_assoc.html" title="BOOST_FUSION_ADAPT_ASSOC_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_struct_named"></a><a class="link" href="adapt_struct_named.html" title="BOOST_FUSION_ADAPT_STRUCT_NAMED">BOOST_FUSION_ADAPT_STRUCT_NAMED</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_struct_named.description"></a><h5>
<a name="id928337"></a>
<a class="link" href="adapt_struct_named.html#fusion.adapted.adapt_struct_named.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_STRUCT_NAMED and BOOST_FUSION_ADAPT_STRUCT_NAMED_NS are
macros that can be used to generate all the necessary boilerplate to make
an arbitrary struct a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The given struct is adapted using the given name.
</p>
<a name="fusion.adapted.adapt_struct_named.synopsis"></a><h5>
<a name="id928359"></a>
<a class="link" href="adapt_struct_named.html#fusion.adapted.adapt_struct_named.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT_NAMED</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span> <span class="identifier">adapted_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
<span class="identifier">BOOST_FUSION_ADAPT_STRUCT_NAMED_NS</span><span class="special">(</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">adapted_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_struct_named.semantics"></a><h5>
<a name="id928547"></a>
<a class="link" href="adapt_struct_named.html#fusion.adapted.adapt_struct_named.semantics">Semantics</a>
</h5>
<p>
The above macros generate the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> while using <code class="computeroutput"><span class="identifier">adapted_name</span></code>
as the name of the adapted struct. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code>
declares the namespace for <code class="computeroutput"><span class="identifier">adapted_name</span></code>.
It yields to a fully qualified name for <code class="computeroutput"><span class="identifier">adapted_name</span></code>
of <code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">adapted_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the adapted
view is placed in the global namespace. If no namespace sequence is given
(i.e. <code class="computeroutput"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT_NAMED</span></code>),
the adapted view is placed in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">adapted</span></code>.
The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span> <span class="identifier">member_nameN</span><span class="special">)</span></code> pairs declares the type and names of each
of the struct members that are part of the sequence.
</p>
<p>
The macros should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be converted.
</p>
<a name="fusion.adapted.adapt_struct_named.header"></a><h5>
<a name="id928707"></a>
<a class="link" href="adapt_struct_named.html#fusion.adapted.adapt_struct_named.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_struct_named</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_struct_named</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_struct_named.example"></a><h5>
<a name="id928823"></a>
<a class="link" href="adapt_struct_named.html#fusion.adapted.adapt_struct_named.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="comment">// boost::fusion::adapted::adapted_employee is now a Fusion sequence
</span><span class="comment">// referring to demo::employee
</span><span class="identifier">BOOST_FUSION_ADAPT_STRUCT_NAMED</span><span class="special">(</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span> <span class="identifier">adapted_employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,174 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_TPL_ADT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_adt.html" title="BOOST_FUSION_ADAPT_ADT">
<link rel="next" href="adapt_assoc_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_ADT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_tpl_adt"></a><a class="link" href="adapt_tpl_adt.html" title="BOOST_FUSION_ADAPT_TPL_ADT">BOOST_FUSION_ADAPT_TPL_ADT</a>
</h3></div></div></div>
<p>
BOOST_FUSION_ADAPT_TPL_ADT is a macro than can be used to generate all the
necessary boilerplate to adapt an arbitrary template class type as a model
of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.adapt_tpl_adt.synopsis"></a><h5>
<a name="id936721"></a>
<a class="link" href="adapt_tpl_adt.html#fusion.adapted.adapt_tpl_adt.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_ADT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">type_name</span><span class="special">)</span> <span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">attribute_type0</span><span class="special">,</span> <span class="identifier">attribute_const_type0</span><span class="special">,</span> <span class="identifier">get_expr0</span><span class="special">,</span> <span class="identifier">set_expr0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">attribute_type1</span><span class="special">,</span> <span class="identifier">attribute_const_type1</span><span class="special">,</span> <span class="identifier">get_expr1</span><span class="special">,</span> <span class="identifier">set_expr1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_tpl_adt.expression_semantics"></a><h5>
<a name="id936881"></a>
<a class="link" href="adapt_tpl_adt.html#fusion.adapted.adapt_tpl_adt.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">type_name</span></code>
or an arbitrary specialization of <code class="computeroutput"><span class="identifier">type_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...</span></code> declares the template parameters of the
actual specialization of <code class="computeroutput"><span class="identifier">type_name</span></code>
that is adapted as a fusion sequence. The sequence of <code class="literal">(attribute_type<span class="emphasis"><em>N</em></span>,
attribute_const_type<span class="emphasis"><em>N</em></span>, get_expr<span class="emphasis"><em>N</em></span>,
set_expr<span class="emphasis"><em>N</em></span>)</code> quadruples declares the types,
const types, get-expressions and set-expressions of the elements that are
part of the adapted fusion sequence. <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code>
is the expression that is invoked to get the <span class="emphasis"><em>N</em></span>th element
of an instance of <code class="computeroutput"><span class="identifier">type_name</span></code>.
This expression may access a variable named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>
or <code class="computeroutput"><span class="identifier">type_name</span> <span class="keyword">const</span><span class="special">&amp;</span></code> which represents the underlying instance
of <code class="computeroutput"><span class="identifier">type_name</span></code>. <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code>
and <code class="literal">attribute_const_type<span class="emphasis"><em>N</em></span></code> may specify
the types that <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> denotes
to. <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code> is the expression that
is invoked to set the <span class="emphasis"><em>N</em></span>th element of an instance of
<code class="computeroutput"><span class="identifier">type_name</span></code>. This expression
may access variables named <code class="computeroutput"><span class="identifier">obj</span></code>
of type <code class="computeroutput"><span class="identifier">type_name</span><span class="special">&amp;</span></code>,
which represent the corresponding instance of <code class="computeroutput"><span class="identifier">type_name</span></code>,
and <code class="computeroutput"><span class="identifier">val</span></code> of an arbitrary const-qualified
reference template type parameter <code class="computeroutput"><span class="identifier">Val</span></code>,
which represents the right operand of the assignment expression.
</p>
<p>
The actual return type of fusion's intrinsic sequence access (meta-)functions
when in invoked with (an instance of) <code class="computeroutput"><span class="identifier">type_name</span></code>
is a proxy type. This type is implicitly convertible to the attribute type
via <code class="literal">get_expr<span class="emphasis"><em>N</em></span></code> and forwards assignment
to the underlying element via <code class="literal">set_expr<span class="emphasis"><em>N</em></span></code>.
The value type (that is the type returned by <a class="link" href="../iterator/metafunctions/value_of.html" title="value_of"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_of</span></code></a>, <a class="link" href="../sequence/intrinsic/metafunctions/value_at.html" title="value_at"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></code></a> and <a class="link" href="../sequence/intrinsic/metafunctions/value_at_c.html" title="value_at_c"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_c</span></code></a>) of the <span class="emphasis"><em>N</em></span>th
element is <code class="literal">attribute_type<span class="emphasis"><em>N</em></span></code> with const-qualifier
and reference removed.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">type_name</span></code>
should be the fully namespace qualified name of the template class type to
be adapted.
</p>
<a name="fusion.adapted.adapt_tpl_adt.header"></a><h5>
<a name="id937227"></a>
<a class="link" href="adapt_tpl_adt.html#fusion.adapted.adapt_tpl_adt.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">adt</span><span class="special">/</span><span class="identifier">adapt_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_adt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_tpl_adt.example"></a><h5>
<a name="id937343"></a>
<a class="link" href="adapt_tpl_adt.html#fusion.adapted.adapt_tpl_adt.example">Example</a>
</h5>
<pre class="programlisting"> <span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Name</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Age</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="keyword">private</span><span class="special">:</span>
<span class="identifier">Name</span> <span class="identifier">name</span><span class="special">;</span>
<span class="identifier">Age</span> <span class="identifier">age</span><span class="special">;</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">void</span> <span class="identifier">set_name</span><span class="special">(</span><span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">n</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">name</span><span class="special">=</span><span class="identifier">n</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">set_age</span><span class="special">(</span><span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">age</span><span class="special">=</span><span class="identifier">a</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_name</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">name</span><span class="special">;</span>
<span class="special">}</span>
<span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">get_age</span><span class="special">()</span><span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="identifier">BOOST_FUSION_ADAPT_TPL_ADT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">)</span> <span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">Name</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_name</span><span class="special">(</span><span class="identifier">val</span><span class="special">))</span>
<span class="special">(</span><span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">Age</span> <span class="keyword">const</span><span class="special">&amp;,</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">(),</span> <span class="identifier">obj</span><span class="special">.</span><span class="identifier">set_age</span><span class="special">(</span><span class="identifier">val</span><span class="special">)))</span>
<span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">e</span><span class="special">;</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">front</span><span class="special">(</span><span class="identifier">e</span><span class="special">)=</span><span class="string">"Edward Norton"</span><span class="special">;</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">back</span><span class="special">(</span><span class="identifier">e</span><span class="special">)=</span><span class="number">41</span><span class="special">;</span>
<span class="comment">//Prints 'Edward Norton is 41 years old'
</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_name</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">get_age</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" years old"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.adapt_tpl_adt.see_also"></a><h5>
<a name="id938111"></a>
<a class="link" href="adapt_tpl_adt.html#fusion.adapted.adapt_tpl_adt.see_also">See also</a>
</h5>
<p>
<a class="link" href="../notes.html#fusion.notes.adt_attribute_proxy"><code class="computeroutput"><span class="identifier">adt_attribute_proxy</span></code></a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_assoc_adt.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,114 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_ADAPT_TPL_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_struct.html" title="BOOST_FUSION_ADAPT_STRUCT">
<link rel="next" href="adapt_struct_named.html" title="BOOST_FUSION_ADAPT_STRUCT_NAMED">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_struct_named.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.adapt_tpl_struct"></a><a class="link" href="adapt_tpl_struct.html" title="BOOST_FUSION_ADAPT_TPL_STRUCT">BOOST_FUSION_ADAPT_TPL_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.adapt_tpl_struct.description"></a><h5>
<a name="id927713"></a>
<a class="link" href="adapt_tpl_struct.html#fusion.adapted.adapt_tpl_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_ADAPT_TPL_STRUCT is a macro that can be used to generate all
the necessary boilerplate to make an arbitrary template struct a model of
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random Access
Sequence</a>.
</p>
<a name="fusion.adapted.adapt_tpl_struct.synopsis"></a><h5>
<a name="id927735"></a>
<a class="link" href="adapt_tpl_struct.html#fusion.adapted.adapt_tpl_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">struct_name</span><span class="special">)</span> <span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<a name="fusion.adapted.adapt_tpl_struct.semantics"></a><h5>
<a name="id927861"></a>
<a class="link" href="adapt_tpl_struct.html#fusion.adapted.adapt_tpl_struct.semantics">Semantics</a>
</h5>
<p>
The above macro generates the necessary code to adapt <code class="computeroutput"><span class="identifier">struct_name</span></code>
or an arbitrary specialization of <code class="computeroutput"><span class="identifier">struct_name</span></code>
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">specialization_param0</span><span class="special">)(</span><span class="identifier">specialization_param1</span><span class="special">)...</span></code> declares the template parameters of the
actual specialization of <code class="computeroutput"><span class="identifier">struct_name</span></code>
that is adapted as a fusion sequence. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">)</span></code>
pairs declares the type and names of each of the struct members that are
part of the sequence.
</p>
<p>
The macro should be used at global scope, and <code class="computeroutput"><span class="identifier">struct_name</span></code>
should be the fully namespace qualified name of the struct to be adapted.
</p>
<a name="fusion.adapted.adapt_tpl_struct.header"></a><h5>
<a name="id927984"></a>
<a class="link" href="adapt_tpl_struct.html#fusion.adapted.adapt_tpl_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">adapt_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.adapt_tpl_struct.example"></a><h5>
<a name="id928099"></a>
<a class="link" href="adapt_tpl_struct.html#fusion.adapted.adapt_tpl_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Name</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Age</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">employee</span>
<span class="special">{</span>
<span class="identifier">Name</span> <span class="identifier">name</span><span class="special">;</span>
<span class="identifier">Age</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">}</span>
<span class="comment">// Any instantiated demo::employee is now a Fusion sequence
</span><span class="identifier">BOOST_FUSION_ADAPT_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">::</span><span class="identifier">employee</span><span class="special">)</span> <span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">Age</span><span class="special">,</span> <span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_struct_named.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,76 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Array</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="../adapted.html" title="Adapted">
<link rel="next" href="std__pair.html" title="std::pair">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../adapted.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="std__pair.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.array"></a><a class="link" href="array.html" title="Array">Array</a>
</h3></div></div></div>
<p>
This module provides adapters for arrays. Including the module header makes
any array a fully conforming <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.array.header"></a><h5>
<a name="id923373"></a>
<a class="link" href="array.html#fusion.adapted.array.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.array.model_of"></a><h5>
<a name="id923481"></a>
<a class="link" href="array.html#fusion.adapted.array.model_of">Model of</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>
</li></ul></div>
<a name="fusion.adapted.array.example"></a><h5>
<a name="id923510"></a>
<a class="link" href="array.html#fusion.adapted.array.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">arr</span><span class="special">[</span><span class="number">3</span><span class="special">]</span> <span class="special">=</span> <span class="special">{</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">};</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/advance_c.html" title="advance_c"><code class="computeroutput"><span class="identifier">advance_c</span></code></a><span class="special">&lt;</span><span class="number">2</span><span class="special">&gt;(</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/prior.html" title="prior"><code class="computeroutput"><span class="identifier">prior</span></code></a><span class="special">(</span><a class="link" href="../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">2</span><span class="special">&gt;(</span><span class="identifier">arr</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../adapted.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="std__pair.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,84 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>boost::array</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="mpl_sequence.html" title="mpl sequence">
<link rel="next" href="boost__tuple.html" title="boost::tuple">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mpl_sequence.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__tuple.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.boost__array"></a><a class="link" href="boost__array.html" title="boost::array">boost::array</a>
</h3></div></div></div>
<p>
This module provides adapters for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>.
Including the module header makes <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code>
a fully conforming <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.boost__array.header"></a><h5>
<a name="id926214"></a>
<a class="link" href="boost__array.html#fusion.adapted.boost__array.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">boost_array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost_array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.boost__array.model_of"></a><h5>
<a name="id926322"></a>
<a class="link" href="boost__array.html#fusion.adapted.boost__array.model_of">Model of</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>
</li></ul></div>
<a name="fusion.adapted.boost__array.example"></a><h5>
<a name="id926351"></a>
<a class="link" href="boost__array.html#fusion.adapted.boost__array.example">Example</a>
</h5>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">3</span><span class="special">&gt;</span> <span class="identifier">arr</span> <span class="special">=</span> <span class="special">{{</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">}};</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/advance_c.html" title="advance_c"><code class="computeroutput"><span class="identifier">advance_c</span></code></a><span class="special">&lt;</span><span class="number">2</span><span class="special">&gt;(</span><a class="link" href="../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><a class="link" href="../iterator/functions/prior.html" title="prior"><code class="computeroutput"><span class="identifier">prior</span></code></a><span class="special">(</span><a class="link" href="../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">arr</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">2</span><span class="special">&gt;(</span><span class="identifier">arr</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.boost__array.see_also"></a><h5>
<a name="id926787"></a>
<a class="link" href="boost__array.html#fusion.adapted.boost__array.see_also">See also</a>
</h5>
<p>
<a href="http://www.boost.org/doc/html/array.html" target="_top">Boost.Array Library</a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mpl_sequence.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__tuple.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,80 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>boost::tuple</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="boost__array.html" title="boost::array">
<link rel="next" href="adapt_struct.html" title="BOOST_FUSION_ADAPT_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__array.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.boost__tuple"></a><a class="link" href="boost__tuple.html" title="boost::tuple">boost::tuple</a>
</h3></div></div></div>
<p>
This module provides adapters for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>.
Including the module header makes <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>
a fully conforming <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<a name="fusion.adapted.boost__tuple.header"></a><h5>
<a name="id926856"></a>
<a class="link" href="boost__tuple.html#fusion.adapted.boost__tuple.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">boost_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.boost__tuple.model_of"></a><h5>
<a name="id926964"></a>
<a class="link" href="boost__tuple.html#fusion.adapted.boost__tuple.model_of">Model of</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward Sequence</a>
</li></ul></div>
<a name="fusion.adapted.boost__tuple.example"></a><h5>
<a name="id926993"></a>
<a class="link" href="boost__tuple.html#fusion.adapted.boost__tuple.example">Example</a>
</h5>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">example_tuple</span><span class="special">(</span><span class="number">101</span><span class="special">,</span> <span class="string">"hello"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">example_tuple</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="char">'\n'</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">next</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">example_tuple</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="char">'\n'</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.boost__tuple.see_also"></a><h5>
<a name="id927220"></a>
<a class="link" href="boost__tuple.html#fusion.adapted.boost__tuple.see_also">See also</a>
</h5>
<p>
<a href="http://www.boost.org/libs/tuple/doc/tuple_users_guide.html" target="_top">Boost.Tuple
Library</a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost__array.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adapt_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,222 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_DEFINE_ASSOC_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="define_tpl_struct.html" title="BOOST_FUSION_DEFINE_TPL_STRUCT">
<link rel="next" href="define_assoc_tpl_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.define_assoc_struct"></a><a class="link" href="define_assoc_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_STRUCT">BOOST_FUSION_DEFINE_ASSOC_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.define_assoc_struct.description"></a><h5>
<a name="id944640"></a>
<a class="link" href="define_assoc_struct.html#fusion.adapted.define_assoc_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_DEFINE_ASSOC_STRUCT is a macro that can be used to generate
all the necessary boilerplate to define and adapt an arbitrary struct as
a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.define_assoc_struct.synopsis"></a><h5>
<a name="id944666"></a>
<a class="link" href="define_assoc_struct.html#fusion.adapted.define_assoc_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_DEFINE_ASSOC_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
<dd><p>
An instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code></span></dt>
<dd><p>
Heterogeneous values
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">fs</span></code></span></dt>
<dd><p>
A <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p></dd>
</dl>
</div>
<a name="fusion.adapted.define_assoc_struct.expression_semantics"></a><h5>
<a name="id944870"></a>
<a class="link" href="define_assoc_struct.html#fusion.adapted.define_assoc_struct.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code that defines and adapts <code class="computeroutput"><span class="identifier">struct_name</span></code> as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code>
declares the namespace for <code class="computeroutput"><span class="identifier">struct_name</span></code>.
It yields to a fully qualified name for <code class="computeroutput"><span class="identifier">struct_name</span></code>
of <code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">struct_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the struct is
placed in the global namespace. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">,</span>
<span class="identifier">key_typeN</span><span class="special">)</span></code>
triples declares the type, name and key type of each of the struct members
that are part of the sequence.
</p>
<p>
The macro should be used at global scope. Semantics of an expression is defined
only where it differs from, or is not defined in <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
with default constructed elements.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">(</span><span class="identifier">e0</span><span class="special">,</span>
<span class="identifier">e1</span><span class="special">,...</span>
<span class="identifier">en</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
with elements <code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">(</span><span class="identifier">fs</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Copy constructs an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span> <span class="special">=</span>
<span class="identifier">fs</span></code>
</p>
</td>
<td>
<p>
Assigns from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span><span class="special">.</span><span class="identifier">member_nameN</span></code>
</p>
</td>
<td>
<p>
Access of struct member <code class="computeroutput"><span class="identifier">member_nameN</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.adapted.define_assoc_struct.header"></a><h5>
<a name="id946936"></a>
<a class="link" href="define_assoc_struct.html#fusion.adapted.define_assoc_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">define_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">define_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.define_assoc_struct.example"></a><h5>
<a name="id947051"></a>
<a class="link" href="define_assoc_struct.html#fusion.adapted.define_assoc_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="comment">// demo::employee is a Fusion sequence
</span><span class="identifier">BOOST_FUSION_DEFINE_ASSOC_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">),</span> <span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_tpl_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_assoc_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,227 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="define_assoc_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_STRUCT">
<link rel="next" href="../algorithm.html" title="Algorithm">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_assoc_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.define_assoc_tpl_struct"></a><a class="link" href="define_assoc_tpl_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT">BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.define_assoc_tpl_struct.description"></a><h5>
<a name="id947236"></a>
<a class="link" href="define_assoc_tpl_struct.html#fusion.adapted.define_assoc_tpl_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT is a macro that can be used to generate
all the necessary boilerplate to define and adapt an arbitrary template struct
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<a name="fusion.adapted.define_assoc_tpl_struct.synopsis"></a><h5>
<a name="id947262"></a>
<a class="link" href="define_assoc_tpl_struct.html#fusion.adapted.define_assoc_tpl_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">,</span> <span class="identifier">key_type0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">,</span> <span class="identifier">key_type1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
<dd><p>
An instantiated <code class="computeroutput"><span class="identifier">struct_name</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
<dd><p>
An instance of <code class="computeroutput"><span class="identifier">Str</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code></span></dt>
<dd><p>
Heterogeneous values
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">fs</span></code></span></dt>
<dd><p>
A <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p></dd>
</dl>
</div>
<a name="fusion.adapted.define_assoc_tpl_struct.expression_semantics"></a><h5>
<a name="id947514"></a>
<a class="link" href="define_assoc_tpl_struct.html#fusion.adapted.define_assoc_tpl_struct.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code that defines and adapts <code class="computeroutput"><span class="identifier">struct_name</span></code> as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code> declares the namespace for <code class="computeroutput"><span class="identifier">struct_name</span></code>. It yields to a fully qualified
name for <code class="computeroutput"><span class="identifier">struct_name</span></code> of
<code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">struct_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the struct is
placed in the global namespace. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">,</span>
<span class="identifier">key_typeN</span><span class="special">)</span></code>
triples declares the type, name and key type of each of the struct members
that are part of the sequence.
</p>
<p>
The macro should be used at global scope. Semantics of an expression is defined
only where it differs from, or is not defined in <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> and <a class="link" href="../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
with default constructed elements.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">(</span><span class="identifier">e0</span><span class="special">,</span>
<span class="identifier">e1</span><span class="special">,...</span>
<span class="identifier">en</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
with elements <code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">(</span><span class="identifier">fs</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Copy constructs an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span> <span class="special">=</span>
<span class="identifier">fs</span></code>
</p>
</td>
<td>
<p>
Assigns from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span><span class="special">.</span><span class="identifier">member_nameN</span></code>
</p>
</td>
<td>
<p>
Access of struct member <code class="computeroutput"><span class="identifier">member_nameN</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.adapted.define_assoc_tpl_struct.header"></a><h5>
<a name="id947962"></a>
<a class="link" href="define_assoc_tpl_struct.html#fusion.adapted.define_assoc_tpl_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">define_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">define_assoc_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.define_assoc_tpl_struct.example"></a><h5>
<a name="id948077"></a>
<a class="link" href="define_assoc_tpl_struct.html#fusion.adapted.define_assoc_tpl_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">keys</span>
<span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">age</span><span class="special">;</span>
<span class="special">}</span>
<span class="comment">// Any instantiated demo::employee is a Fusion sequence
</span><span class="identifier">BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span> <span class="special">(</span><span class="identifier">demo</span><span class="special">),</span> <span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">Age</span><span class="special">,</span> <span class="identifier">age</span><span class="special">,</span> <span class="identifier">keys</span><span class="special">::</span><span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_assoc_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,208 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_DEFINE_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="adapt_assoc_tpl_adt.html" title="BOOST_FUSION_ADAPT_ASSOC_TPL_ADT">
<link rel="next" href="define_tpl_struct.html" title="BOOST_FUSION_DEFINE_TPL_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_tpl_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.define_struct"></a><a class="link" href="define_struct.html" title="BOOST_FUSION_DEFINE_STRUCT">BOOST_FUSION_DEFINE_STRUCT</a>
</h3></div></div></div>
<p>
BOOST_FUSION_DEFINE_STRUCT is a macro that can be used to generate all the
necessary boilerplate to define and adapt an arbitrary struct as a model
of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.define_struct.synopsis"></a><h5>
<a name="id942906"></a>
<a class="link" href="define_struct.html#fusion.adapted.define_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_DEFINE_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
<dd><p>
An instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code></span></dt>
<dd><p>
Heterogeneous values
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">fs</span></code></span></dt>
<dd><p>
A <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p></dd>
</dl>
</div>
<a name="fusion.adapted.define_struct.expression_semantics"></a><h5>
<a name="id943093"></a>
<a class="link" href="define_struct.html#fusion.adapted.define_struct.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code that defines and adapts <code class="computeroutput"><span class="identifier">struct_name</span></code> as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code>
declares the namespace for <code class="computeroutput"><span class="identifier">struct_name</span></code>.
It yields to a fully qualified name for <code class="computeroutput"><span class="identifier">struct_name</span></code>
of <code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">struct_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the struct is
placed in the global namespace. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">)</span></code>
pairs declares the type and names of each of the struct members that are
part of the sequence.
</p>
<p>
The macro should be used at global scope. Semantics of an expression is defined
only where it differs from, or is not defined in <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
with default constructed elements.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">(</span><span class="identifier">e0</span><span class="special">,</span>
<span class="identifier">e1</span><span class="special">,...</span>
<span class="identifier">en</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
with elements <code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">struct_name</span><span class="special">(</span><span class="identifier">fs</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Copy constructs an instance of <code class="computeroutput"><span class="identifier">struct_name</span></code>
from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span> <span class="special">=</span>
<span class="identifier">fs</span></code>
</p>
</td>
<td>
<p>
Assigns from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span><span class="special">.</span><span class="identifier">member_nameN</span></code>
</p>
</td>
<td>
<p>
Access of struct member <code class="computeroutput"><span class="identifier">member_nameN</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.adapted.define_struct.header"></a><h5>
<a name="id943499"></a>
<a class="link" href="define_struct.html#fusion.adapted.define_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">define_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">define_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.define_struct.example"></a><h5>
<a name="id943614"></a>
<a class="link" href="define_struct.html#fusion.adapted.define_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="comment">// demo::employee is a Fusion sequence
</span><span class="identifier">BOOST_FUSION_DEFINE_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">demo</span><span class="special">),</span> <span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapt_assoc_tpl_adt.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_tpl_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,217 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>BOOST_FUSION_DEFINE_TPL_STRUCT</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="define_struct.html" title="BOOST_FUSION_DEFINE_STRUCT">
<link rel="next" href="define_assoc_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_STRUCT">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_assoc_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.define_tpl_struct"></a><a class="link" href="define_tpl_struct.html" title="BOOST_FUSION_DEFINE_TPL_STRUCT">BOOST_FUSION_DEFINE_TPL_STRUCT</a>
</h3></div></div></div>
<a name="fusion.adapted.define_tpl_struct.description"></a><h5>
<a name="id943722"></a>
<a class="link" href="define_tpl_struct.html#fusion.adapted.define_tpl_struct.description">Description</a>
</h5>
<p>
BOOST_FUSION_DEFINE_TPL_STRUCT is a macro that can be used to generate all
the necessary boilerplate to define and adapt an arbitrary template struct
as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.define_tpl_struct.synopsis"></a><h5>
<a name="id943743"></a>
<a class="link" href="define_tpl_struct.html#fusion.adapted.define_tpl_struct.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="identifier">BOOST_FUSION_DEFINE_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...,</span>
<span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...,</span>
<span class="identifier">struct_name</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">member_type0</span><span class="special">,</span> <span class="identifier">member_name0</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">member_type1</span><span class="special">,</span> <span class="identifier">member_name1</span><span class="special">)</span>
<span class="special">...</span>
<span class="special">)</span>
</pre>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
<dd><p>
An instantiated <code class="computeroutput"><span class="identifier">struct_name</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
<dd><p>
An instance of <code class="computeroutput"><span class="identifier">Str</span></code>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code></span></dt>
<dd><p>
Heterogeneous values
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">fs</span></code></span></dt>
<dd><p>
A <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p></dd>
</dl>
</div>
<a name="fusion.adapted.define_tpl_struct.expression_semantics"></a><h5>
<a name="id943976"></a>
<a class="link" href="define_tpl_struct.html#fusion.adapted.define_tpl_struct.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The above macro generates the necessary code that defines and adapts <code class="computeroutput"><span class="identifier">struct_name</span></code> as a model of <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">template_param0</span><span class="special">)(</span><span class="identifier">template_param1</span><span class="special">)...</span></code>
declares the names of the template type parameters used. The sequence <code class="computeroutput"><span class="special">(</span><span class="identifier">namespace0</span><span class="special">)(</span><span class="identifier">namespace1</span><span class="special">)...</span></code> declares the namespace for <code class="computeroutput"><span class="identifier">struct_name</span></code>. It yields to a fully qualified
name for <code class="computeroutput"><span class="identifier">struct_name</span></code> of
<code class="computeroutput"><span class="identifier">namespace0</span><span class="special">::</span><span class="identifier">namespace1</span><span class="special">::...</span>
<span class="identifier">struct_name</span></code>. If an empty namespace
sequence is given (that is a macro that expands to nothing), the struct is
placed in the global namespace. The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">member_typeN</span><span class="special">,</span>
<span class="identifier">member_nameN</span><span class="special">)</span></code>
pairs declares the type and names of each of the struct members that are
part of the sequence.
</p>
<p>
The macro should be used at global scope. Semantics of an expression is defined
only where it differs from, or is not defined in <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
with default constructed elements.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">(</span><span class="identifier">e0</span><span class="special">,</span>
<span class="identifier">e1</span><span class="special">,...</span>
<span class="identifier">en</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Creates an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
with elements <code class="computeroutput"><span class="identifier">e0</span></code>...<code class="computeroutput"><span class="identifier">en</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Str</span><span class="special">(</span><span class="identifier">fs</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Copy constructs an instance of <code class="computeroutput"><span class="identifier">Str</span></code>
from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span> <span class="special">=</span>
<span class="identifier">fs</span></code>
</p>
</td>
<td>
<p>
Assigns from a <a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> <code class="computeroutput"><span class="identifier">fs</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">str</span><span class="special">.</span><span class="identifier">member_nameN</span></code>
</p>
</td>
<td>
<p>
Access of struct member <code class="computeroutput"><span class="identifier">member_nameN</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.adapted.define_tpl_struct.header"></a><h5>
<a name="id944403"></a>
<a class="link" href="define_tpl_struct.html#fusion.adapted.define_tpl_struct.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="keyword">struct</span><span class="special">/</span><span class="identifier">define_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">define_struct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.define_tpl_struct.example"></a><h5>
<a name="id944519"></a>
<a class="link" href="define_tpl_struct.html#fusion.adapted.define_tpl_struct.example">Example</a>
</h5>
<pre class="programlisting"><span class="comment">// Any instantiated demo::employee is a Fusion sequence
</span><span class="identifier">BOOST_FUSION_DEFINE_TPL_STRUCT</span><span class="special">(</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">)(</span><span class="identifier">Age</span><span class="special">),</span> <span class="special">(</span><span class="identifier">demo</span><span class="special">),</span> <span class="identifier">employee</span><span class="special">,</span>
<span class="special">(</span><span class="identifier">Name</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</span>
<span class="special">(</span><span class="identifier">Age</span><span class="special">,</span> <span class="identifier">age</span><span class="special">))</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="define_struct.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="define_assoc_struct.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,97 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>mpl sequence</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="std__pair.html" title="std::pair">
<link rel="next" href="boost__array.html" title="boost::array">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="std__pair.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__array.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.mpl_sequence"></a><a class="link" href="mpl_sequence.html" title="mpl sequence">mpl sequence</a>
</h3></div></div></div>
<p>
This module provides adapters for <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequences. Including the module header makes all <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequences fully conforming fusion sequences.
</p>
<a name="fusion.adapted.mpl_sequence.header"></a><h5>
<a name="id924453"></a>
<a class="link" href="mpl_sequence.html#fusion.adapted.mpl_sequence.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.mpl_sequence.model_of"></a><h5>
<a name="id924561"></a>
<a class="link" href="mpl_sequence.html#fusion.adapted.mpl_sequence.model_of">Model of</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<a class="link" href="../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward Sequence</a>
(If the <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequence is a forward sequence.)
</li>
<li class="listitem">
<a class="link" href="../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a> (If the <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequence is a bidirectional sequence.)
</li>
<li class="listitem">
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> (If the <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
sequence is a random access sequence.)
</li>
</ul></div>
<a name="fusion.adapted.mpl_sequence.example"></a><h5>
<a name="id925725"></a>
<a class="link" href="mpl_sequence.html#fusion.adapted.mpl_sequence.example">Example</a>
</h5>
<pre class="programlisting"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector_c</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">123</span><span class="special">,</span> <span class="number">456</span><span class="special">&gt;</span> <span class="identifier">vec_c</span><span class="special">;</span>
<span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector2</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">(</span><span class="identifier">vec_c</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">v</span> <span class="special">=</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector_c</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">456</span><span class="special">,</span> <span class="number">789</span><span class="special">&gt;();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="identifier">v</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.mpl_sequence.see_also"></a><h5>
<a name="id926145"></a>
<a class="link" href="mpl_sequence.html#fusion.adapted.mpl_sequence.see_also">See also</a>
</h5>
<p>
<a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="std__pair.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost__array.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,83 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>std::pair</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../adapted.html" title="Adapted">
<link rel="prev" href="array.html" title="Array">
<link rel="next" href="mpl_sequence.html" title="mpl sequence">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="array.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mpl_sequence.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.adapted.std__pair"></a><a class="link" href="std__pair.html" title="std::pair">std::pair</a>
</h3></div></div></div>
<p>
This module provides adapters for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>.
Including the module header makes <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>
a fully conforming <a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</p>
<a name="fusion.adapted.std__pair.header"></a><h5>
<a name="id923979"></a>
<a class="link" href="std__pair.html#fusion.adapted.std__pair.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.adapted.std__pair.model_of"></a><h5>
<a name="id924087"></a>
<a class="link" href="std__pair.html#fusion.adapted.std__pair.model_of">Model of</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<a class="link" href="../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>
</li></ul></div>
<a name="fusion.adapted.std__pair.example"></a><h5>
<a name="id924116"></a>
<a class="link" href="std__pair.html#fusion.adapted.std__pair.example">Example</a>
</h5>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">p</span><span class="special">(</span><span class="number">123</span><span class="special">,</span> <span class="string">"Hola!!!"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">p</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <a class="link" href="../sequence/intrinsic/functions/at_c.html" title="at_c"><code class="computeroutput"><span class="identifier">at_c</span></code></a><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="identifier">p</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
</pre>
<a name="fusion.adapted.std__pair.see_also"></a><h5>
<a name="id924367"></a>
<a class="link" href="std__pair.html#fusion.adapted.std__pair.see_also">See also</a>
</h5>
<p>
<a href="http://www.sgi.com/tech/stl/pair.html" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code></a>,
<a class="link" href="../tuple/pairs.html" title="Pairs"><code class="computeroutput"><span class="identifier">TR1</span>
<span class="keyword">and</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code></a>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="array.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapted.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mpl_sequence.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,111 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="prev" href="adapted/define_assoc_tpl_struct.html" title="BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT">
<link rel="next" href="algorithm/iteration.html" title="Iteration">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapted/define_assoc_tpl_struct.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm/iteration.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="fusion.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="algorithm/iteration.html">Iteration</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="algorithm/iteration/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="algorithm/iteration/metafunctions.html">Metafunctions</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="algorithm/query.html">Query</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="algorithm/query/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="algorithm/query/metafunctions.html">Metafunctions</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="algorithm/transformation.html">Transformation</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="algorithm/transformation/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="algorithm/transformation/metafunctions.html">Metafunctions</a></span></dt>
</dl></dd>
</dl></div>
<a name="fusion.algorithm.lazy_evaluation"></a><h4>
<a name="id948276"></a>
<a class="link" href="algorithm.html#fusion.algorithm.lazy_evaluation">Lazy Evaluation</a>
</h4>
<p>
Unlike <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>, Fusion
algorithms are lazy and non sequence-type preserving. What does that mean?
It means that when you operate on a sequence through a Fusion algorithm that
returns a sequence, the sequence returned may not be of the same class as the
original. This is by design. Runtime efficiency is given a high priority. Like
<a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>, and unlike
<a href="http://en.wikipedia.org/wiki/Standard_Template_Library" target="_top">STL</a>,
fusion algorithms are functional in nature such that algorithms are non mutating
(no side effects). However, due to the high cost of returning full sequences
such as vectors and lists, <span class="emphasis"><em>Views</em></span> are returned from Fusion
algorithms instead. For example, the <a class="link" href="algorithm/transformation/functions/transform.html" title="transform"><code class="computeroutput"><span class="identifier">transform</span></code></a> algorithm does not actually
return a transformed version of the original sequence. <a class="link" href="algorithm/transformation/functions/transform.html" title="transform"><code class="computeroutput"><span class="identifier">transform</span></code></a> returns a <a class="link" href="view/transform_view.html" title="transform_view"><code class="computeroutput"><span class="identifier">transform_view</span></code></a>. This view holds a
reference to the original sequence plus the transform function. Iteration over
the <a class="link" href="view/transform_view.html" title="transform_view"><code class="computeroutput"><span class="identifier">transform_view</span></code></a>
will apply the transform function over the sequence elements on demand. This
<span class="emphasis"><em>lazy</em></span> evaluation scheme allows us to chain as many algorithms
as we want without incurring a high runtime penalty.
</p>
<a name="fusion.algorithm.sequence_extension"></a><h4>
<a name="id948353"></a>
<a class="link" href="algorithm.html#fusion.algorithm.sequence_extension">Sequence Extension</a>
</h4>
<p>
The <span class="emphasis"><em>lazy</em></span> evaluation scheme where <a class="link" href="algorithm.html" title="Algorithm">Algorithms</a>
return <a class="link" href="view.html" title="View">Views</a> also allows operations such
as <a class="link" href="algorithm/transformation/functions/push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a> to be totally generic. In
Fusion, <a class="link" href="algorithm/transformation/functions/push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a> is actually a generic algorithm
that works on all sequences. Given an input sequence <code class="computeroutput"><span class="identifier">s</span></code>
and a value <code class="computeroutput"><span class="identifier">x</span></code>, Fusion's <a class="link" href="algorithm/transformation/functions/push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a> algorithm simply returns
a <a class="link" href="view/joint_view.html" title="joint_view"><code class="computeroutput"><span class="identifier">joint_view</span></code></a>:
a view that holds a reference to the original sequence <code class="computeroutput"><span class="identifier">s</span></code>
and the value <code class="computeroutput"><span class="identifier">x</span></code>. Functions
that were once sequence specific and need to be implemented N times over N
different sequences are now implemented only once. That is to say that Fusion
sequences are cheaply extensible. To regain the original sequence, <a class="link" href="container/conversion/functions.html" title="Functions">Conversion</a>
functions are provided. You may use one of the <a class="link" href="container/conversion/functions.html" title="Functions">Conversion</a>
functions to convert back to the original sequence type.
</p>
<a name="fusion.algorithm.header"></a><h4>
<a name="id948461"></a>
<a class="link" href="algorithm.html#fusion.algorithm.header">Header</a>
</h4>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adapted/define_assoc_tpl_struct.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm/iteration.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,59 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Iteration</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../algorithm.html" title="Algorithm">
<link rel="prev" href="../algorithm.html" title="Algorithm">
<link rel="next" href="iteration/functions.html" title="Functions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iteration/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.algorithm.iteration"></a><a class="link" href="iteration.html" title="Iteration">Iteration</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="iteration/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="iteration/metafunctions.html">Metafunctions</a></span></dt>
</dl></div>
<p>
The iteration algorithms provide the fundamental algorithms for traversing
a sequence repeatedly applying an operation to its elements.
</p>
<a name="fusion.algorithm.iteration.header"></a><h5>
<a name="id948575"></a>
<a class="link" href="iteration.html#fusion.algorithm.iteration.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iteration/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,52 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Functions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../iteration.html" title="Iteration">
<link rel="prev" href="../iteration.html" title="Iteration">
<link rel="next" href="functions/fold.html" title="fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../iteration.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iteration.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/fold.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.iteration.functions"></a><a class="link" href="functions.html" title="Functions">Functions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="functions/fold.html">fold</a></span></dt>
<dt><span class="section"><a href="functions/reverse_fold.html">reverse_fold</a></span></dt>
<dt><span class="section"><a href="functions/iter_fold.html">iter_fold</a></span></dt>
<dt><span class="section"><a href="functions/reverse_iter_fold.html">reverse_iter_fold</a></span></dt>
<dt><span class="section"><a href="functions/accumulate.html">accumulate</a></span></dt>
<dt><span class="section"><a href="functions/for_each.html">for_each</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../iteration.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iteration.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/fold.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,209 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>accumulate</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="reverse_iter_fold.html" title="reverse_iter_fold">
<link rel="next" href="for_each.html" title="for_each">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.accumulate"></a><a class="link" href="accumulate.html" title="accumulate">accumulate</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.accumulate.description"></a><h6>
<a name="id956476"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="literal">accumulate</code> returns the result of the repeated application
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.accumulate.synopsis"></a><h6>
<a name="id956555"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/accumulate.html" title="accumulate"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">accumulate</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> accumulate<span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/accumulate.html" title="accumulate"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">accumulate</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> accumulate<span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id956907"></a><p class="title"><b>Table&#160;1.41.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">initial_state</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Initial state
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> for current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.accumulate.expression_semantics"></a><h6>
<a name="id957164"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">accumulate<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.accumulate.complexity"></a><h6>
<a name="id957246"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.accumulate.header"></a><h6>
<a name="id957306"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.accumulate.example"></a><h6>
<a name="id957417"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">str</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span>t<span class="special">);</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span>accumulate<span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,209 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="../functions.html" title="Functions">
<link rel="next" href="reverse_fold.html" title="reverse_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.fold"></a><a class="link" href="fold.html" title="fold">fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.fold.description"></a><h6>
<a name="id948702"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="literal">fold</code> returns the result of the repeated application
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.fold.synopsis"></a><h6>
<a name="id949392"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/fold.html" title="fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> fold<span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/fold.html" title="fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> fold<span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id949741"></a><p class="title"><b>Table&#160;1.37.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">initial_state</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Initial state
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> for current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.fold.expression_semantics"></a><h6>
<a name="id950000"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.fold.complexity"></a><h6>
<a name="id950083"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.fold.header"></a><h6>
<a name="id950141"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.fold.example"></a><h6>
<a name="id950251"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">str</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span>t<span class="special">);</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span>fold<span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,174 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>for_each</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="accumulate.html" title="accumulate">
<link rel="next" href="../metafunctions.html" title="Metafunctions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="accumulate.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.for_each.description"></a><h6>
<a name="id957765"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.description">Description</a>
</h6>
<p>
Applies a unary function object to each element of a sequence.
</p>
<a name="fusion.algorithm.iteration.functions.for_each.synopsis"></a><h6>
<a name="id957784"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">for_each</span><span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id957916"></a><p class="title"><b>Table&#160;1.42.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> must be a valid expression
for each element <code class="computeroutput"><span class="identifier">e</span></code>
in <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A unary <a class="link" href="../../../functional/concepts/reg_callable.html" title="Regular Callable Object">Regular
Callable Object</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.for_each.expression_semantics"></a><h6>
<a name="id958619"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">for_each</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">void</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Calls <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> for each element <code class="computeroutput"><span class="identifier">e</span></code>
in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.for_each.complexity"></a><h6>
<a name="id958723"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.for_each.header"></a><h6>
<a name="id958783"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.for_each.example"></a><h6>
<a name="id958898"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">increment</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="special">++</span><span class="identifier">t</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<a class="link" href="for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">for_each</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">increment</span><span class="special">());</span>
<span class="identifier">assert</span><span class="special">(</span><span class="identifier">vec</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="accumulate.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,209 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>iter_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="reverse_fold.html" title="reverse_fold">
<link rel="next" href="reverse_iter_fold.html" title="reverse_iter_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.iter_fold"></a><a class="link" href="iter_fold.html" title="iter_fold">iter_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.iter_fold.description"></a><h6>
<a name="id953881"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="literal">iter_fold</code> returns the result of the repeated application
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.iter_fold.synopsis"></a><h6>
<a name="id953957"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/iter_fold.html" title="iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">iter_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> iter_fold<span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/iter_fold.html" title="iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">iter_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> iter_fold<span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id954306"></a><p class="title"><b>Table&#160;1.39.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">initial_state</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Initial state
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)&gt;::</span><span class="identifier">type</span></code> for current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
of type <code class="computeroutput"><span class="identifier">It</span></code>
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.iter_fold.expression_semantics"></a><h6>
<a name="id954563"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">iter_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
f(f(initial_state,it1),it2) ...itN)</code> where <code class="literal">it1 ...itN</code>
are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.iter_fold.complexity"></a><h6>
<a name="id954647"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.iter_fold.header"></a><h6>
<a name="id954707"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.iter_fold.example"></a><h6>
<a name="id954817"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">str</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><a class="link" href="../../../iterator/functions/deref.html" title="deref"><code class="computeroutput"><span class="identifier">deref</span></code></a>(t)<span class="special">);</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span>iter_fold<span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,209 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="fold.html" title="fold">
<link rel="next" href="iter_fold.html" title="iter_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.reverse_fold"></a><a class="link" href="reverse_fold.html" title="reverse_fold">reverse_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.reverse_fold.description"></a><h6>
<a name="id950599"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="literal">reverse_fold</code> returns the result of the repeated application
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_fold.synopsis"></a><h6>
<a name="id950678"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_fold.html" title="reverse_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> reverse_fold<span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_fold.html" title="reverse_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> reverse_fold<span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id951030"></a><p class="title"><b>Table&#160;1.38.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">initial_state</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Initial state
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> for current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.reverse_fold.expression_semantics"></a><h6>
<a name="id951287"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">reverse_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
f(f(initial_state,eN),eN-1) ...e1)</code> where <code class="literal">e1 ...eN</code>
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_fold.complexity"></a><h6>
<a name="id951369"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_fold.header"></a><h6>
<a name="id951432"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.reverse_fold.example"></a><h6>
<a name="id951547"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">str</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span>t<span class="special">);</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span>reverse_fold<span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "21"<span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,209 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse_iter_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="iter_fold.html" title="iter_fold">
<link rel="next" href="accumulate.html" title="accumulate">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold"></a><a class="link" href="reverse_iter_fold.html" title="reverse_iter_fold">reverse_iter_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.description"></a><h6>
<a name="id955171"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="literal">reverse_iter_fold</code> returns the result of the repeated
application of binary <code class="computeroutput"><span class="identifier">f</span></code>
to the result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
if it is the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis"></a><h6>
<a name="id955247"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_iter_fold.html" title="reverse_iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_iter_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> reverse_iter_fold<span class="special">(</span>
<span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_iter_fold.html" title="reverse_iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_iter_fold</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> reverse_iter_fold<span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id955603"></a><p class="title"><b>Table&#160;1.40.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">initial_state</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Initial state
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)&gt;::</span><span class="identifier">type</span></code> for current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
of type <code class="computeroutput"><span class="identifier">It</span></code>
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics"></a><h6>
<a name="id955860"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">reverse_iter_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
f(f(initial_state,itN),itN-1) ...it1)</code> where <code class="literal">it1 ...itN</code>
are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.complexity"></a><h6>
<a name="id955942"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
</p>
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.header"></a><h6>
<a name="id956002"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.example"></a><h6>
<a name="id956117"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">str</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">str</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><a class="link" href="../../../iterator/functions/deref.html" title="deref"><code class="computeroutput"><span class="identifier">deref</span></code></a>(t)<span class="special">);</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span>reverse_iter_fold<span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "21"<span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,52 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Metafunctions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../iteration.html" title="Iteration">
<link rel="prev" href="functions/for_each.html" title="for_each">
<link rel="next" href="metafunctions/fold.html" title="fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/for_each.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iteration.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/fold.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.iteration.metafunctions"></a><a class="link" href="metafunctions.html" title="Metafunctions">Metafunctions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="metafunctions/fold.html">fold</a></span></dt>
<dt><span class="section"><a href="metafunctions/reverse_fold.html">reverse_fold</a></span></dt>
<dt><span class="section"><a href="metafunctions/iter_fold.html">iter_fold</a></span></dt>
<dt><span class="section"><a href="metafunctions/reverse_iter_fold.html">reverse_iter_fold</a></span></dt>
<dt><span class="section"><a href="metafunctions/accumulate.html">accumulate</a></span></dt>
<dt><span class="section"><a href="metafunctions/for_each.html">for_each</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/for_each.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iteration.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/fold.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>accumulate</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="reverse_iter_fold.html" title="reverse_iter_fold">
<link rel="next" href="for_each.html" title="for_each">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.accumulate"></a><a class="link" href="accumulate.html" title="accumulate">accumulate</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.metafunctions.accumulate.description"></a><h6>
<a name="id962934"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.metafunctions.accumulate.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/accumulate.html" title="accumulate"><code class="computeroutput"><span class="identifier">accumulate</span></code></a>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.accumulate.synopsis"></a><h6>
<a name="id962965"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.metafunctions.accumulate.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> accumulate
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id963060"></a><p class="title"><b>Table&#160;1.47.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to iterate
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">State</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The initial state for the first application of <code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> is the return type of
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and an element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The operation to be applied on traversal
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.accumulate.expression_semantics"></a><h6>
<a name="id963322"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.metafunctions.accumulate.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">accumulate<span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the result of applying
<a class="link" href="../functions/accumulate.html" title="accumulate"><code class="computeroutput"><span class="identifier">accumulate</span></code></a> to a sequence of
type <code class="computeroutput"><span class="identifier">Sequence</span></code>, with an
initial state of type <code class="computeroutput"><span class="identifier">State</span></code>
and binary function object or function pointer of type <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.accumulate.complexity"></a><h6>
<a name="id963423"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.metafunctions.accumulate.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.accumulate.header"></a><h6>
<a name="id963486"></a>
<a class="link" href="accumulate.html#fusion.algorithm.iteration.metafunctions.accumulate.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="../metafunctions.html" title="Metafunctions">
<link rel="next" href="reverse_fold.html" title="reverse_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.fold"></a><a class="link" href="fold.html" title="fold">fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.metafunctions.fold.description"></a><h6>
<a name="id959162"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.metafunctions.fold.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/fold.html" title="fold"><code class="computeroutput"><span class="identifier">fold</span></code></a>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.fold.synopsis"></a><h6>
<a name="id959191"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.metafunctions.fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> fold
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id959284"></a><p class="title"><b>Table&#160;1.43.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to iterate
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">State</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The initial state for the first application of <code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> is the return type of
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and an element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The operation to be applied on traversal
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.fold.expression_semantics"></a><h6>
<a name="id959546"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.metafunctions.fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">fold<span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the result of applying
<a class="link" href="../functions/fold.html" title="fold"><code class="computeroutput"><span class="identifier">fold</span></code></a> to a sequence of type
<code class="computeroutput"><span class="identifier">Sequence</span></code>, with an initial
state of type <code class="computeroutput"><span class="identifier">State</span></code> and
binary function object or function pointer of type <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.fold.complexity"></a><h6>
<a name="id959647"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.metafunctions.fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.fold.header"></a><h6>
<a name="id959707"></a>
<a class="link" href="fold.html#fusion.algorithm.iteration.metafunctions.fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,160 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>for_each</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="accumulate.html" title="accumulate">
<link rel="next" href="../../query.html" title="Query">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="accumulate.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../query.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
</h5></div></div></div>
<p>
A metafunction returning the result type of applying <a class="link" href="../functions/for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">for_each</span></code></a> to a sequence. The
return type of <a class="link" href="../functions/for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">for_each</span></code></a> is always <code class="computeroutput"><span class="keyword">void</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.for_each.description"></a><h6>
<a name="id963642"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.metafunctions.for_each.description">Description</a>
</h6>
<a name="fusion.algorithm.iteration.metafunctions.for_each.synopsis"></a><h6>
<a name="id963660"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.metafunctions.for_each.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">for_each</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id963748"></a><p class="title"><b>Table&#160;1.48.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.for_each.expression_semantics"></a><h6>
<a name="id963867"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.metafunctions.for_each.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">for_each</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">void</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/for_each.html" title="for_each"><code class="computeroutput"><span class="identifier">for_each</span></code></a> for a sequence of type
<code class="computeroutput"><span class="identifier">Sequence</span></code> and a unary
function object <code class="computeroutput"><span class="identifier">F</span></code>. The
return type is always <code class="computeroutput"><span class="keyword">void</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.for_each.complexity"></a><h6>
<a name="id964050"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.metafunctions.for_each.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.iteration.metafunctions.for_each.header"></a><h6>
<a name="id964072"></a>
<a class="link" href="for_each.html#fusion.algorithm.iteration.metafunctions.for_each.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="accumulate.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../query.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>iter_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="reverse_fold.html" title="reverse_fold">
<link rel="next" href="reverse_iter_fold.html" title="reverse_iter_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.iter_fold"></a><a class="link" href="iter_fold.html" title="iter_fold">iter_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.metafunctions.iter_fold.description"></a><h6>
<a name="id960499"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.metafunctions.iter_fold.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/iter_fold.html" title="iter_fold"><code class="computeroutput"><span class="identifier">iter_fold</span></code></a>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.iter_fold.synopsis"></a><h6>
<a name="id960530"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.metafunctions.iter_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> iter_fold
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id960625"></a><p class="title"><b>Table&#160;1.45.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to iterate
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">State</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The initial state for the first application of <code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)&gt;::</span><span class="identifier">type</span></code> is the return type of
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and an iterator <code class="computeroutput"><span class="identifier">it</span></code>
of type <code class="computeroutput"><span class="identifier">It</span></code>
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The operation to be applied on traversal
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.iter_fold.expression_semantics"></a><h6>
<a name="id961981"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.metafunctions.iter_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">iter_fold<span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the result of applying
<a class="link" href="../functions/iter_fold.html" title="iter_fold"><code class="computeroutput"><span class="identifier">iter_fold</span></code></a> to a sequence of type
<code class="computeroutput"><span class="identifier">Sequence</span></code>, with an initial
state of type <code class="computeroutput"><span class="identifier">State</span></code> and
binary function object or function pointer of type <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.iter_fold.complexity"></a><h6>
<a name="id962082"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.metafunctions.iter_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.iter_fold.header"></a><h6>
<a name="id962144"></a>
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.metafunctions.iter_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="fold.html" title="fold">
<link rel="next" href="iter_fold.html" title="iter_fold">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.reverse_fold"></a><a class="link" href="reverse_fold.html" title="reverse_fold">reverse_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.metafunctions.reverse_fold.description"></a><h6>
<a name="id959828"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.metafunctions.reverse_fold.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/reverse_fold.html" title="reverse_fold"><code class="computeroutput"><span class="identifier">reverse_fold</span></code></a>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_fold.synopsis"></a><h6>
<a name="id959857"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.metafunctions.reverse_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> reverse_fold
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id959952"></a><p class="title"><b>Table&#160;1.44.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to iterate
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">State</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The initial state for the first application of <code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)&gt;::</span><span class="identifier">type</span></code> is the return type of
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and an element <code class="computeroutput"><span class="identifier">e</span></code>
of type <code class="computeroutput"><span class="identifier">E</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The operation to be applied on traversal
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.reverse_fold.expression_semantics"></a><h6>
<a name="id960215"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.metafunctions.reverse_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">reverse_fold<span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the result of applying
<a class="link" href="../functions/reverse_fold.html" title="reverse_fold"><code class="computeroutput"><span class="identifier">reverse_fold</span></code></a> to a sequence of
type <code class="computeroutput"><span class="identifier">Sequence</span></code>, with an
initial state of type <code class="computeroutput"><span class="identifier">State</span></code>
and binary function object or function pointer of type <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_fold.complexity"></a><h6>
<a name="id960313"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.metafunctions.reverse_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_fold.header"></a><h6>
<a name="id960373"></a>
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.metafunctions.reverse_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse_iter_fold</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="iter_fold.html" title="iter_fold">
<link rel="next" href="accumulate.html" title="accumulate">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold"></a><a class="link" href="reverse_iter_fold.html" title="reverse_iter_fold">reverse_iter_fold</a>
</h5></div></div></div>
<a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold.description"></a><h6>
<a name="id962272"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.metafunctions.reverse_iter_fold.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/reverse_iter_fold.html" title="reverse_iter_fold"><code class="computeroutput"><span class="identifier">reverse_iter_fold</span></code></a>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold.synopsis"></a><h6>
<a name="id962299"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.metafunctions.reverse_iter_fold.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
<span class="keyword">struct</span> reverse_iter_fold
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id962391"></a><p class="title"><b>Table&#160;1.46.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to iterate
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">State</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The initial state for the first application of <code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)&gt;::</span><span class="identifier">type</span></code> is the return type of
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with current state <code class="computeroutput"><span class="identifier">s</span></code> of type <code class="computeroutput"><span class="identifier">S</span></code>,
and an iterator <code class="computeroutput"><span class="identifier">it</span></code>
of type <code class="computeroutput"><span class="identifier">It</span></code>
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The operation to be applied on traversal
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold.expression_semantics"></a><h6>
<a name="id962654"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.metafunctions.reverse_iter_fold.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting">reverse_iter_fold<span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">State</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: Any type
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the result of applying
<a class="link" href="../functions/reverse_iter_fold.html" title="reverse_iter_fold"><code class="computeroutput"><span class="identifier">reverse_iter_fold</span></code></a> to a sequence
of type <code class="computeroutput"><span class="identifier">Sequence</span></code>, with
an initial state of type <code class="computeroutput"><span class="identifier">State</span></code>
and binary function object or function pointer of type <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold.complexity"></a><h6>
<a name="id962752"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.metafunctions.reverse_iter_fold.complexity">Complexity</a>
</h6>
<p>
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">F</span></code>.
</p>
<a name="fusion.algorithm.iteration.metafunctions.reverse_iter_fold.header"></a><h6>
<a name="id962810"></a>
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.metafunctions.reverse_iter_fold.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iter_fold.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,58 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Query</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../algorithm.html" title="Algorithm">
<link rel="prev" href="iteration/metafunctions/for_each.html" title="for_each">
<link rel="next" href="query/functions.html" title="Functions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iteration/metafunctions/for_each.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="query/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.algorithm.query"></a><a class="link" href="query.html" title="Query">Query</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="query/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="query/metafunctions.html">Metafunctions</a></span></dt>
</dl></div>
<p>
The query algorithms provide support for searching and analyzing sequences.
</p>
<a name="fusion.algorithm.query.header"></a><h5>
<a name="id964206"></a>
<a class="link" href="query.html#fusion.algorithm.query.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">query</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="iteration/metafunctions/for_each.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="query/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,53 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Functions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../query.html" title="Query">
<link rel="prev" href="../query.html" title="Query">
<link rel="next" href="functions/any.html" title="any">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../query.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../query.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/any.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.query.functions"></a><a class="link" href="functions.html" title="Functions">Functions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="functions/any.html">any</a></span></dt>
<dt><span class="section"><a href="functions/all.html">all</a></span></dt>
<dt><span class="section"><a href="functions/none.html">none</a></span></dt>
<dt><span class="section"><a href="functions/find.html">find</a></span></dt>
<dt><span class="section"><a href="functions/find_if.html">find_if</a></span></dt>
<dt><span class="section"><a href="functions/count.html">count</a></span></dt>
<dt><span class="section"><a href="functions/count_if.html">count_if</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../query.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../query.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/any.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,179 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>all</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="any.html" title="any">
<link rel="next" href="none.html" title="none">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="none.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.all"></a><a class="link" href="all.html" title="all">all</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.all.description"></a><h6>
<a name="id965204"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code> and
unary function object <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="computeroutput"><span class="identifier">all</span></code> returns true if
<code class="computeroutput"><span class="identifier">f</span></code> returns true for every
element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.all.synopsis"></a><h6>
<a name="id965257"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/all.html" title="all"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span><span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">all</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id965393"></a><p class="title"><b>Table&#160;1.50.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> is a valid expression, convertible
to <code class="computeroutput"><span class="keyword">bool</span></code>, for every
element <code class="computeroutput"><span class="identifier">e</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A unary function object
</p>
</td>
<td>
<p>
The search predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.all.expression_semantics"></a><h6>
<a name="id965555"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="all.html" title="all"><code class="computeroutput"><span class="identifier">all</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns true if and only
if <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>
evaluates to <code class="computeroutput"><span class="keyword">true</span></code> for every
element <code class="computeroutput"><span class="identifier">e</span></code> in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.all.complexity"></a><h6>
<a name="id965666"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.all.header"></a><h6>
<a name="id965717"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.all.example"></a><h6>
<a name="id965832"></a>
<a class="link" href="all.html#fusion.algorithm.query.functions.all.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">odd</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">t</span> <span class="special">%</span> <span class="number">2</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="all.html" title="all"><code class="computeroutput"><span class="identifier">all</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">3</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
<span class="identifier">assert</span><span class="special">(!</span><a class="link" href="all.html" title="all"><code class="computeroutput"><span class="identifier">all</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="none.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,179 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>any</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="../functions.html" title="Functions">
<link rel="next" href="all.html" title="all">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.any"></a><a class="link" href="any.html" title="any">any</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.any.description"></a><h6>
<a name="id964333"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code> and
unary function object <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="computeroutput"><span class="identifier">any</span></code> returns true if
<code class="computeroutput"><span class="identifier">f</span></code> returns true for at
least one element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.any.synopsis"></a><h6>
<a name="id964386"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/any.html" title="any"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">any</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span><span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">any</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id964522"></a><p class="title"><b>Table&#160;1.49.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> must be a valid expression,
convertible to <code class="computeroutput"><span class="keyword">bool</span></code>,
for each element <code class="computeroutput"><span class="identifier">e</span></code>
in <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A unary function object
</p>
</td>
<td>
<p>
The search predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.any.expression_semantics"></a><h6>
<a name="id964682"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.expression_semantics">Expression
semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="any.html" title="any"><code class="computeroutput"><span class="identifier">any</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns true if and only
if <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>
evaluates to <code class="computeroutput"><span class="keyword">true</span></code> for some
element <code class="computeroutput"><span class="identifier">e</span></code> in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.any.complexity"></a><h6>
<a name="id964794"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.any.header"></a><h6>
<a name="id964844"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.any.example"></a><h6>
<a name="id964960"></a>
<a class="link" href="any.html#fusion.algorithm.query.functions.any.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">odd</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">t</span> <span class="special">%</span> <span class="number">2</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="any.html" title="any"><code class="computeroutput"><span class="identifier">any</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
<span class="identifier">assert</span><span class="special">(!</span><a class="link" href="any.html" title="any"><code class="computeroutput"><span class="identifier">any</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">4</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,166 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>count</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="find_if.html" title="find_if">
<link rel="next" href="count_if.html" title="count_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.count"></a><a class="link" href="count.html" title="count">count</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.count.description"></a><h6>
<a name="id971882"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.description">Description</a>
</h6>
<p>
Returns the number of elements of a given type within a sequence.
</p>
<a name="fusion.algorithm.query.functions.count.synopsis"></a><h6>
<a name="id971898"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/count.html" title="count"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">count</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">count</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id972044"></a><p class="title"><b>Table&#160;1.54.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">e</span>
<span class="special">==</span> <span class="identifier">t</span></code>
must be a valid expression, convertible to <code class="computeroutput"><span class="keyword">bool</span></code>,
for each element <code class="computeroutput"><span class="identifier">e</span></code>
in <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The type to count
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.count.expression_semantics"></a><h6>
<a name="id972204"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="count.html" title="count"><code class="computeroutput"><span class="identifier">count</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">int</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the number of elements
of type <code class="computeroutput"><span class="identifier">T</span></code> and equal to
<code class="computeroutput"><span class="identifier">t</span></code> in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.count.complexity"></a><h6>
<a name="id972298"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.count.header"></a><h6>
<a name="id972348"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.count.example"></a><h6>
<a name="id972464"></a>
<a class="link" href="count.html#fusion.algorithm.query.functions.count.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="count.html" title="count"><code class="computeroutput"><span class="identifier">count</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="number">2</span><span class="special">)</span> <span class="special">==</span> <span class="number">1</span><span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,165 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>count_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="count.html" title="count">
<link rel="next" href="../metafunctions.html" title="Metafunctions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.count_if"></a><a class="link" href="count_if.html" title="count_if">count_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.count_if.description"></a><h6>
<a name="id972609"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.description">Description</a>
</h6>
<p>
Returns the number of elements within a sequence with a type for which
a given unary function object evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
</p>
<a name="fusion.algorithm.query.functions.count_if.synopsis"></a><h6>
<a name="id972633"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/count_if.html" title="count_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">count_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">count_if</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id972770"></a><p class="title"><b>Table&#160;1.55.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> is a valid expression, convertible
to <code class="computeroutput"><span class="keyword">bool</span></code>, for each
element <code class="computeroutput"><span class="identifier">e</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A unary function object
</p>
</td>
<td>
<p>
The search predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.count_if.expression_semantics"></a><h6>
<a name="id972932"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="count_if.html" title="count_if"><code class="computeroutput"><span class="identifier">count_if</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">int</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the number of elements
in <code class="computeroutput"><span class="identifier">seq</span></code> where <code class="computeroutput"><span class="identifier">f</span></code> evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
</p>
<a name="fusion.algorithm.query.functions.count_if.complexity"></a><h6>
<a name="id973025"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.count_if.header"></a><h6>
<a name="id973076"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.count_if.example"></a><h6>
<a name="id973191"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.functions.count_if.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="count_if.html" title="count_if"><code class="computeroutput"><span class="identifier">count_if</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span><span class="identifier">odd</span><span class="special">())</span> <span class="special">==</span> <span class="number">2</span><span class="special">);</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,170 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>find</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="none.html" title="none">
<link rel="next" href="find_if.html" title="find_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="none.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.find"></a><a class="link" href="find.html" title="find">find</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.find.description"></a><h6>
<a name="id969232"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.description">Description</a>
</h6>
<p>
Finds the first element of a given type within a sequence.
</p>
<a name="fusion.algorithm.query.functions.find.synopsis"></a><h6>
<a name="id969249"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="emphasis"><em>unspecified</em></span> <span class="identifier">find</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="emphasis"><em>unspecified</em></span> <span class="identifier">find</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id969394"></a><p class="title"><b>Table&#160;1.52.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The type to search for
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.find.expression_semantics"></a><h6>
<a name="id969516"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="find.html" title="find"><code class="computeroutput"><span class="identifier">find</span></code></a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of the same iterator
category as the iterators of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns an iterator to the
first element of <code class="computeroutput"><span class="identifier">seq</span></code>
of type <code class="computeroutput"><span class="identifier">T</span></code>, or <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">)</span></code> if there is no such element. Equivalent
to <code class="computeroutput"><a class="link" href="find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">find_if</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">_</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span></code>
</p>
<a name="fusion.algorithm.query.functions.find.complexity"></a><h6>
<a name="id969684"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.find.header"></a><h6>
<a name="id969734"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.find.example"></a><h6>
<a name="id969849"></a>
<a class="link" href="find.html#fusion.algorithm.query.functions.find.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="char">'a'</span><span class="special">,</span><span class="char">'0'</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(*</span><a class="link" href="find.html" title="find"><code class="computeroutput"><span class="identifier">find</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <span class="char">'0'</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="find.html" title="find"><code class="computeroutput"><span class="identifier">find</span></code></a><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="none.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>find_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="find.html" title="find">
<link rel="next" href="count.html" title="count">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.find_if"></a><a class="link" href="find_if.html" title="find_if">find_if</a>
</h5></div></div></div>
<p>
Finds the first element within a sequence with a type for which a given
<a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a> evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>.
</p>
<a name="fusion.algorithm.query.functions.find_if.description"></a><h6>
<a name="id970070"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.functions.find_if.description">Description</a>
</h6>
<a name="fusion.algorithm.query.functions.find_if.synopsis"></a><h6>
<a name="id970083"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.functions.find_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="emphasis"><em>unspecified</em></span> <span class="identifier">find_if</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="emphasis"><em>unspecified</em></span> <span class="identifier">find_if</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id970228"></a><p class="title"><b>Table&#160;1.53.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
A unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
The search predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.find_if.expression_semantics"></a><h6>
<a name="id970354"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.functions.find_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">find_if</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: An iterator of the same
iterator category as the iterators of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the first element
of <code class="computeroutput"><span class="identifier">seq</span></code> for which <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a> <code class="computeroutput"><span class="identifier">F</span></code>
evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>, or <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">)</span></code>
if there is no such element.
</p>
<a name="fusion.algorithm.query.functions.find_if.complexity"></a><h6>
<a name="id970489"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.functions.find_if.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
include &lt;boost/fusion/algorithm/query/find_if.hpp&gt;
</li>
<li class="listitem">
include &lt;boost/fusion/include/find_if.hpp&gt;
</li>
</ol></div>
<a name="fusion.algorithm.query.functions.find_if.example"></a><h6>
<a name="id970560"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.functions.find_if.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(*</span><a class="link" href="find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">find_if</span></code></a><span class="special">&lt;</span><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">find_if</span></code></a><span class="special">&lt;</span><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,179 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>none</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="all.html" title="all">
<link rel="next" href="find.html" title="find">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="all.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.functions.none"></a><a class="link" href="none.html" title="none">none</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.functions.none.description"></a><h6>
<a name="id966077"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code> and
unary function object <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="computeroutput"><span class="identifier">none</span></code> returns true if
<code class="computeroutput"><span class="identifier">f</span></code> returns false for every
element of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.query.functions.none.synopsis"></a><h6>
<a name="id966130"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/none.html" title="none"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">none</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span><span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">none</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id968518"></a><p class="title"><b>Table&#160;1.51.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> is a valid expression, convertible
to <code class="computeroutput"><span class="keyword">bool</span></code>, for every
element <code class="computeroutput"><span class="identifier">e</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
The sequence to search
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A unary function object
</p>
</td>
<td>
<p>
The search predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.functions.none.expression_semantics"></a><h6>
<a name="id968680"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="none.html" title="none"><code class="computeroutput"><span class="identifier">none</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns true if and only
if <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>
evaluates to <code class="computeroutput"><span class="keyword">false</span></code> for every
element <code class="computeroutput"><span class="identifier">e</span></code> in <code class="computeroutput"><span class="identifier">seq</span></code>. Result equivalent to <code class="computeroutput"><span class="special">!</span><span class="identifier">any</span><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>.
</p>
<a name="fusion.algorithm.query.functions.none.complexity"></a><h6>
<a name="id968822"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.functions.none.header"></a><h6>
<a name="id968872"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">none</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">none</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.query.functions.none.example"></a><h6>
<a name="id968988"></a>
<a class="link" href="none.html#fusion.algorithm.query.functions.none.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">odd</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">t</span> <span class="special">%</span> <span class="number">2</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="none.html" title="none"><code class="computeroutput"><span class="identifier">none</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">4</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
<span class="identifier">assert</span><span class="special">(!</span><a class="link" href="none.html" title="none"><code class="computeroutput"><span class="identifier">none</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">()));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="all.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,53 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Metafunctions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../query.html" title="Query">
<link rel="prev" href="functions/count_if.html" title="count_if">
<link rel="next" href="metafunctions/any.html" title="any">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/count_if.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../query.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/any.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.query.metafunctions"></a><a class="link" href="metafunctions.html" title="Metafunctions">Metafunctions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="metafunctions/any.html">any</a></span></dt>
<dt><span class="section"><a href="metafunctions/all.html">all</a></span></dt>
<dt><span class="section"><a href="metafunctions/none.html">none</a></span></dt>
<dt><span class="section"><a href="metafunctions/find.html">find</a></span></dt>
<dt><span class="section"><a href="metafunctions/find_if.html">find_if</a></span></dt>
<dt><span class="section"><a href="metafunctions/count.html">count</a></span></dt>
<dt><span class="section"><a href="metafunctions/count_if.html">count_if</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/count_if.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../query.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/any.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>all</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="any.html" title="any">
<link rel="next" href="none.html" title="none">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="none.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.all"></a><a class="link" href="all.html" title="all">all</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.all.description"></a><h6>
<a name="id973848"></a>
<a class="link" href="all.html#fusion.algorithm.query.metafunctions.all.description">Description</a>
</h6>
<p>
A metafunction returning the result type of <a class="link" href="../functions/all.html" title="all"><code class="computeroutput"><span class="identifier">all</span></code></a>.
</p>
<a name="fusion.algorithm.query.metafunctions.all.synopsis"></a><h6>
<a name="id973876"></a>
<a class="link" href="all.html#fusion.algorithm.query.metafunctions.all.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">all</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id975328"></a><p class="title"><b>Table&#160;1.57.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
A model of unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.all.expression_semantics"></a><h6>
<a name="id975454"></a>
<a class="link" href="all.html#fusion.algorithm.query.metafunctions.all.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="all.html" title="all"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">all</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/all.html" title="all"><code class="computeroutput"><span class="identifier">all</span></code></a>
given a sequence of type <code class="computeroutput"><span class="identifier">Sequence</span></code>
and a unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a> of type <code class="computeroutput"><span class="identifier">F</span></code>.
The return type is always <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<a name="fusion.algorithm.query.metafunctions.all.complexity"></a><h6>
<a name="id975573"></a>
<a class="link" href="all.html#fusion.algorithm.query.metafunctions.all.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.query.metafunctions.all.header"></a><h6>
<a name="id975590"></a>
<a class="link" href="all.html#fusion.algorithm.query.metafunctions.all.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">all</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="none.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>any</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="../metafunctions.html" title="Metafunctions">
<link rel="next" href="all.html" title="all">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.any"></a><a class="link" href="any.html" title="any">any</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.any.description"></a><h6>
<a name="id973347"></a>
<a class="link" href="any.html#fusion.algorithm.query.metafunctions.any.description">Description</a>
</h6>
<p>
A metafunction returning the result type of <a class="link" href="../functions/any.html" title="any"><code class="computeroutput"><span class="identifier">any</span></code></a>.
</p>
<a name="fusion.algorithm.query.metafunctions.any.synopsis"></a><h6>
<a name="id973374"></a>
<a class="link" href="any.html#fusion.algorithm.query.metafunctions.any.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">any</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id973461"></a><p class="title"><b>Table&#160;1.56.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
A model of unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.any.expression_semantics"></a><h6>
<a name="id973587"></a>
<a class="link" href="any.html#fusion.algorithm.query.metafunctions.any.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="any.html" title="any"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">any</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/any.html" title="any"><code class="computeroutput"><span class="identifier">any</span></code></a>
given a sequence of type <code class="computeroutput"><span class="identifier">Sequence</span></code>
and a unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a> of type <code class="computeroutput"><span class="identifier">F</span></code>.
The return type is always <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<a name="fusion.algorithm.query.metafunctions.any.complexity"></a><h6>
<a name="id973706"></a>
<a class="link" href="any.html#fusion.algorithm.query.metafunctions.any.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.query.metafunctions.any.header"></a><h6>
<a name="id973722"></a>
<a class="link" href="any.html#fusion.algorithm.query.metafunctions.any.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">any</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="all.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,158 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>count</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="find_if.html" title="find_if">
<link rel="next" href="count_if.html" title="count_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.count"></a><a class="link" href="count.html" title="count">count</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.count.description"></a><h6>
<a name="id977307"></a>
<a class="link" href="count.html#fusion.algorithm.query.metafunctions.count.description">Description</a>
</h6>
<p>
A metafunction that returns the result type of <code class="computeroutput"><span class="identifier">count</span></code>
given the sequence and search types.
</p>
<a name="fusion.algorithm.query.metafunctions.count.synopsis"></a><h6>
<a name="id977334"></a>
<a class="link" href="count.html#fusion.algorithm.query.metafunctions.count.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">count</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id977420"></a><p class="title"><b>Table&#160;1.61.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
heading Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.count.expression_semantics"></a><h6>
<a name="id977543"></a>
<a class="link" href="count.html#fusion.algorithm.query.metafunctions.count.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="count.html" title="count"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">count</span></code></a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">int</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/count.html" title="count"><code class="computeroutput"><span class="identifier">count</span></code></a>. The return type is always
<code class="computeroutput"><span class="keyword">int</span></code>.
</p>
<a name="fusion.algorithm.query.metafunctions.count.complexity"></a><h6>
<a name="id977634"></a>
<a class="link" href="count.html#fusion.algorithm.query.metafunctions.count.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.query.metafunctions.count.header"></a><h6>
<a name="id977651"></a>
<a class="link" href="count.html#fusion.algorithm.query.metafunctions.count.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,158 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>count_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="count.html" title="count">
<link rel="next" href="../../transformation.html" title="Transformation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../transformation.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.count_if"></a><a class="link" href="count_if.html" title="count_if">count_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.count_if.description"></a><h6>
<a name="id977779"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.metafunctions.count_if.description">Description</a>
</h6>
<p>
A metafunction that returns the result type of <code class="computeroutput"><span class="identifier">count_if</span></code>
given the sequence and predicate types.
</p>
<a name="fusion.algorithm.query.metafunctions.count_if.synopsis"></a><h6>
<a name="id977808"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.metafunctions.count_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">count_if</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id977894"></a><p class="title"><b>Table&#160;1.62.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A unary function object
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.count_if.expression_semantics"></a><h6>
<a name="id978013"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.metafunctions.count_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="count_if.html" title="count_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">count_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">int</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/count_if.html" title="count_if"><code class="computeroutput"><span class="identifier">count_if</span></code></a>. The return type is
always <code class="computeroutput"><span class="keyword">int</span></code>.
</p>
<a name="fusion.algorithm.query.metafunctions.count_if.complexity"></a><h6>
<a name="id978113"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.metafunctions.count_if.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.query.metafunctions.count_if.header"></a><h6>
<a name="id978132"></a>
<a class="link" href="count_if.html#fusion.algorithm.query.metafunctions.count_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../transformation.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,160 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>find</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="none.html" title="none">
<link rel="next" href="find_if.html" title="find_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="none.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.find"></a><a class="link" href="find.html" title="find">find</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.find.description"></a><h6>
<a name="id976218"></a>
<a class="link" href="find.html#fusion.algorithm.query.metafunctions.find.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/find.html" title="find"><code class="computeroutput"><span class="identifier">find</span></code></a>, given the sequence and
search types.
</p>
<a name="fusion.algorithm.query.metafunctions.find.synopsis"></a><h6>
<a name="id976245"></a>
<a class="link" href="find.html#fusion.algorithm.query.metafunctions.find.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">find</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id976330"></a><p class="title"><b>Table&#160;1.59.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
Model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.find.expression_semantics"></a><h6>
<a name="id976452"></a>
<a class="link" href="find.html#fusion.algorithm.query.metafunctions.find.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="find.html" title="find"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">find</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of the same iterator
category as the iterators of <code class="computeroutput"><span class="identifier">Sequence</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns an iterator to the
first element of type <code class="computeroutput"><span class="identifier">T</span></code>
in <code class="computeroutput"><span class="identifier">Sequence</span></code>, or <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/end.html" title="end"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">end</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
if there is no such element.
</p>
<a name="fusion.algorithm.query.metafunctions.find.complexity"></a><h6>
<a name="id976584"></a>
<a class="link" href="find.html#fusion.algorithm.query.metafunctions.find.complexity">Complexity</a>
</h6>
<p>
Linear, at most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.metafunctions.find.header"></a><h6>
<a name="id976634"></a>
<a class="link" href="find.html#fusion.algorithm.query.metafunctions.find.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="none.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>find_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="find.html" title="find">
<link rel="next" href="count.html" title="count">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.find_if"></a><a class="link" href="find_if.html" title="find_if">find_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.find_if.description"></a><h6>
<a name="id976762"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.metafunctions.find_if.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">find_if</span></code></a> given the sequence and
predicate types.
</p>
<a name="fusion.algorithm.query.metafunctions.find_if.synopsis"></a><h6>
<a name="id976792"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.metafunctions.find_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">find_if</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id976878"></a><p class="title"><b>Table&#160;1.60.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A model of <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
Operation's arguments
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.find_if.expression_semantics"></a><h6>
<a name="id977001"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.metafunctions.find_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="find_if.html" title="find_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">find_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of the same iterator
category as the iterators of <code class="computeroutput"><span class="identifier">Sequence</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns an iterator to the
first element in <code class="computeroutput"><span class="identifier">Sequence</span></code>
for which <code class="computeroutput"><span class="identifier">Pred</span></code> evaluates
to true. Returns <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/end.html" title="end"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">end</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">type</span></code> if there is no such element.
</p>
<a name="fusion.algorithm.query.metafunctions.find_if.complexity"></a><h6>
<a name="id977131"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.metafunctions.find_if.complexity">Complexity</a>
</h6>
<p>
Linear. At most <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">value</span></code> comparisons.
</p>
<a name="fusion.algorithm.query.metafunctions.find_if.header"></a><h6>
<a name="id977181"></a>
<a class="link" href="find_if.html#fusion.algorithm.query.metafunctions.find_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">find_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">find_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>none</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="all.html" title="all">
<link rel="next" href="find.html" title="find">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="all.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.query.metafunctions.none"></a><a class="link" href="none.html" title="none">none</a>
</h5></div></div></div>
<a name="fusion.algorithm.query.metafunctions.none.description"></a><h6>
<a name="id975716"></a>
<a class="link" href="none.html#fusion.algorithm.query.metafunctions.none.description">Description</a>
</h6>
<p>
A metafunction returning the result type of <a class="link" href="../functions/none.html" title="none"><code class="computeroutput"><span class="identifier">none</span></code></a>.
</p>
<a name="fusion.algorithm.query.metafunctions.none.synopsis"></a><h6>
<a name="id975744"></a>
<a class="link" href="none.html#fusion.algorithm.query.metafunctions.none.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">none</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id975830"></a><p class="title"><b>Table&#160;1.58.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">F</span></code>
</p>
</td>
<td>
<p>
A model of unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.query.metafunctions.none.expression_semantics"></a><h6>
<a name="id975956"></a>
<a class="link" href="none.html#fusion.algorithm.query.metafunctions.none.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="none.html" title="none"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">none</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns the return type of
<a class="link" href="../functions/none.html" title="none"><code class="computeroutput"><span class="identifier">none</span></code></a>
given a sequence of type <code class="computeroutput"><span class="identifier">Sequence</span></code>
and a unary <a class="link" href="../../../functional/concepts/poly.html" title="Polymorphic Function Object">Polymorphic
Function Object</a> of type <code class="computeroutput"><span class="identifier">F</span></code>.
The return type is always <code class="computeroutput"><span class="keyword">bool</span></code>.
</p>
<a name="fusion.algorithm.query.metafunctions.none.complexity"></a><h6>
<a name="id976075"></a>
<a class="link" href="none.html#fusion.algorithm.query.metafunctions.none.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.query.metafunctions.none.header"></a><h6>
<a name="id976092"></a>
<a class="link" href="none.html#fusion.algorithm.query.metafunctions.none.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">query</span><span class="special">/</span><span class="identifier">none</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">none</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="all.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,71 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Transformation</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../algorithm.html" title="Algorithm">
<link rel="prev" href="query/metafunctions/count_if.html" title="count_if">
<link rel="next" href="transformation/functions.html" title="Functions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="query/metafunctions/count_if.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformation/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="fusion.algorithm.transformation"></a><a class="link" href="transformation.html" title="Transformation">Transformation</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="transformation/functions.html">Functions</a></span></dt>
<dt><span class="section"><a href="transformation/metafunctions.html">Metafunctions</a></span></dt>
</dl></div>
<p>
The transformation algorithms create new sequences out of existing sequences
by performing some sort of transformation. In reality the new sequences are
views onto the data in the original sequences.
</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
As the transformation algorithms return views onto their input arguments,
it is important that the lifetime of the input arguments is greater than
the period during which you wish to use the results.
</p></td></tr>
</table></div>
<a name="fusion.algorithm.transformation.header"></a><h5>
<a name="id978271"></a>
<a class="link" href="transformation.html#fusion.algorithm.transformation.header">Header</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="query/metafunctions/count_if.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithm.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformation/functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,65 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Functions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../transformation.html" title="Transformation">
<link rel="prev" href="../transformation.html" title="Transformation">
<link rel="next" href="functions/filter.html" title="filter">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../transformation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../transformation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/filter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.transformation.functions"></a><a class="link" href="functions.html" title="Functions">Functions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="functions/filter.html">filter</a></span></dt>
<dt><span class="section"><a href="functions/filter_if.html">filter_if</a></span></dt>
<dt><span class="section"><a href="functions/transform.html">transform</a></span></dt>
<dt><span class="section"><a href="functions/replace.html">replace</a></span></dt>
<dt><span class="section"><a href="functions/replace_if.html">replace_if</a></span></dt>
<dt><span class="section"><a href="functions/remove.html">remove</a></span></dt>
<dt><span class="section"><a href="functions/remove_if.html">remove_if</a></span></dt>
<dt><span class="section"><a href="functions/reverse.html">reverse</a></span></dt>
<dt><span class="section"><a href="functions/clear.html">clear</a></span></dt>
<dt><span class="section"><a href="functions/erase.html">erase</a></span></dt>
<dt><span class="section"><a href="functions/erase_key.html">erase_key</a></span></dt>
<dt><span class="section"><a href="functions/insert.html">insert</a></span></dt>
<dt><span class="section"><a href="functions/insert_range.html">insert_range</a></span></dt>
<dt><span class="section"><a href="functions/join.html">join</a></span></dt>
<dt><span class="section"><a href="functions/zip.html">zip</a></span></dt>
<dt><span class="section"><a href="functions/pop_back.html">pop_back</a></span></dt>
<dt><span class="section"><a href="functions/pop_front.html">pop_front</a></span></dt>
<dt><span class="section"><a href="functions/push_back.html">push_back</a></span></dt>
<dt><span class="section"><a href="functions/push_front.html">push_front</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../transformation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../transformation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="functions/filter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,140 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>clear</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="reverse.html" title="reverse">
<link rel="next" href="erase.html" title="erase">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.clear"></a><a class="link" href="clear.html" title="clear">clear</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.clear.description"></a><h6>
<a name="id987528"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.description">Description</a>
</h6>
<p>
<a class="link" href="clear.html" title="clear"><code class="computeroutput"><span class="identifier">clear</span></code></a> returns an empty sequence.
</p>
<a name="fusion.algorithm.transformation.functions.clear.synposis"></a><h6>
<a name="id987559"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/clear.html" title="clear"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">clear</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">clear</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id987667"></a><p class="title"><b>Table&#160;1.72.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.clear.expression_semantics"></a><h6>
<a name="id987753"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="clear.html" title="clear"><code class="computeroutput"><span class="identifier">clear</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Expression Semantics</strong></span>: Returns a sequence
with no elements.
</p>
<a name="fusion.algorithm.transformation.functions.clear.complexity"></a><h6>
<a name="id987816"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.functions.clear.header"></a><h6>
<a name="id987835"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">clear</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">clear</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.clear.example"></a><h6>
<a name="id987950"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.functions.clear.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="clear.html" title="clear"><code class="computeroutput"><span class="identifier">clear</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">());</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,226 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>erase</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="clear.html" title="clear">
<link rel="next" href="erase_key.html" title="erase_key">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="clear.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase_key.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.erase"></a><a class="link" href="erase.html" title="erase">erase</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.erase.description"></a><h6>
<a name="id988052"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.description">Description</a>
</h6>
<p>
Returns a new sequence, containing all the elements of the original except
those at a specified iterator, or between two iterators.
</p>
<a name="fusion.algorithm.transformation.functions.erase.synposis"></a><h6>
<a name="id988074"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">First</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/erase.html" title="erase"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">First</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">erase</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">First</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it1</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">First</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Last</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/erase.html" title="erase"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">First</span><span class="special">,</span> <span class="identifier">Last</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">erase</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">First</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it1</span><span class="special">,</span> <span class="identifier">Last</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it2</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id988406"></a><p class="title"><b>Table&#160;1.73.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameters
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">it1</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Iterator into <code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">it2</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Iterator into <code class="computeroutput"><span class="identifier">seq</span></code>
after <code class="computeroutput"><span class="identifier">it1</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.erase.expression_semantics"></a><h6>
<a name="id989954"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">erase</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">pos</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>
except the element at <code class="computeroutput"><span class="identifier">pos</span></code>.
</p>
<pre class="programlisting"><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">erase</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, with
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
in their original order, except those in the range [<code class="computeroutput"><span class="identifier">first</span></code>,<code class="computeroutput"><span class="identifier">last</span></code>).
</p>
<a name="fusion.algorithm.transformation.functions.erase.complexity"></a><h6>
<a name="id990193"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.erase.header"></a><h6>
<a name="id990212"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.erase.example"></a><h6>
<a name="id990327"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.functions.erase.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">char</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="char">'c'</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">erase</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <a class="link" href="../../../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../../../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">)))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="char">'c'</span><span class="special">));</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">erase</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <a class="link" href="../../../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../../../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">)),</span> <a class="link" href="../../../sequence/intrinsic/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="clear.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase_key.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,168 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>erase_key</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="erase.html" title="erase">
<link rel="next" href="insert.html" title="insert">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.erase_key"></a><a class="link" href="erase_key.html" title="erase_key">erase_key</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.erase_key.description"></a><h6>
<a name="id990631"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.description">Description</a>
</h6>
<p>
For an <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">associative</a>]
<a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward Sequence</a>
<code class="computeroutput"><span class="identifier">seq</span></code>, returns a <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">associative</a>]
<a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward Sequence</a>
containing all the elements of the original except those with a given
key.
</p>
<a name="fusion.algorithm.transformation.functions.erase_key.synposis"></a><h6>
<a name="id990679"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/erase_key.html" title="erase_key"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase_key</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">erase_key</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id990809"></a><p class="title"><b>Table&#160;1.74.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> and <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Key</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Key to erase
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.erase_key.expression_semantics"></a><h6>
<a name="id990933"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="erase_key.html" title="erase_key"><code class="computeroutput"><span class="identifier">erase_key</span></code></a><span class="special">&lt;</span><span class="identifier">Key</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> and <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
except those with key <code class="computeroutput"><span class="identifier">Key</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.erase_key.complexity"></a><h6>
<a name="id991021"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.erase_key.header"></a><h6>
<a name="id991043"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">erase_key</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">erase_key</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.erase_key.example"></a><h6>
<a name="id991163"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.functions.erase_key.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="erase_key.html" title="erase_key"><code class="computeroutput"><span class="identifier">erase_key</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><a class="link" href="../../../container/generation/functions/make_map.html" title="make_map"><code class="computeroutput"><span class="identifier">make_map</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;(</span><span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_map.html" title="make_map"><code class="computeroutput"><span class="identifier">make_map</span></code></a><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;(</span><span class="char">'b'</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>filter</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="../functions.html" title="Functions">
<link rel="next" href="filter_if.html" title="filter_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filter_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.filter"></a><a class="link" href="filter.html" title="filter">filter</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.filter.description"></a><h6>
<a name="id978401"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.description">Description</a>
</h6>
<p>
For a given sequence, filter returns a new sequences containing only
the elements of a specified type.
</p>
<a name="fusion.algorithm.transformation.functions.filter.synopsis"></a><h6>
<a name="id978422"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/filter.html" title="filter"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">filter</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">filter</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id978552"></a><p class="title"><b>Table&#160;1.63.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The type to retain
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.filter.expression_semantics"></a><h6>
<a name="id978672"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="filter.html" title="filter"><code class="computeroutput"><span class="identifier">filter</span></code></a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>
of type <code class="computeroutput"><span class="identifier">T</span></code>. Equivalent
to <code class="computeroutput"><a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_type</span><span class="special">&lt;</span><span class="identifier">_</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.filter.complexity"></a><h6>
<a name="id978847"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.filter.header"></a><h6>
<a name="id978866"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">filter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">filter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.filter.example"></a><h6>
<a name="id978984"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.functions.filter.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">long</span><span class="special">,</span><span class="keyword">long</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="filter.html" title="filter"><code class="computeroutput"><span class="identifier">filter</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filter_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,178 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>filter_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="filter.html" title="filter">
<link rel="next" href="transform.html" title="transform">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.filter_if"></a><a class="link" href="filter_if.html" title="filter_if">filter_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.filter_if.description"></a><h6>
<a name="id979168"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.description">Description</a>
</h6>
<p>
For a given sequence, <a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">filter_if</span></code></a> returns a new sequences
containing only the elements with types for which a given <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a> evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.filter_if.synopsis"></a><h6>
<a name="id979225"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">filter_if</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id979355"></a><p class="title"><b>Table&#160;1.64.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
The predicate to filter by
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.filter_if.expression_semantics"></a><h6>
<a name="id979478"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">Pred</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>
with types for which <code class="computeroutput"><span class="identifier">Pred</span></code>
evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>. The order of the retained elements
is the same as in the original sequence.
</p>
<a name="fusion.algorithm.transformation.functions.filter_if.complexity"></a><h6>
<a name="id979618"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.filter_if.header"></a><h6>
<a name="id979776"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">filter_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">filter_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.filter_if.example"></a><h6>
<a name="id979896"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.functions.filter_if.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3.0</span><span class="special">,</span><span class="number">4.0</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,188 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>insert</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="erase_key.html" title="erase_key">
<link rel="next" href="insert_range.html" title="insert_range">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase_key.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert_range.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.insert"></a><a class="link" href="insert.html" title="insert">insert</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.insert.description"></a><h6>
<a name="id991298"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.description">Description</a>
</h6>
<p>
Returns a new sequence with all the elements of the original, an a new
element inserted the position described by a given iterator.
</p>
<a name="fusion.algorithm.transformation.functions.insert.synposis"></a><h6>
<a name="id991320"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pos</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/insert.html" title="insert"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">insert</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Pos</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">insert</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">Pos</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id991515"></a><p class="title"><b>Table&#160;1.75.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">pos</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
The position to insert at
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">t</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The value to insert
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.insert.expression_semantics"></a><h6>
<a name="id991673"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="insert.html" title="insert"><code class="computeroutput"><span class="identifier">insert</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
in their original order, and a new element with the type and value of
<code class="computeroutput"><span class="identifier">t</span></code> inserted at iterator
<code class="computeroutput"><span class="identifier">pos</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.insert.complexity"></a><h6>
<a name="id991783"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.insert.header"></a><h6>
<a name="id991802"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.insert.example"></a><h6>
<a name="id991920"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.functions.insert.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="insert.html" title="insert"><code class="computeroutput"><span class="identifier">insert</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <a class="link" href="../../../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../../../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">)),</span> <span class="number">3</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase_key.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert_range.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,197 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>insert_range</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="insert.html" title="insert">
<link rel="next" href="join.html" title="join">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="join.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.insert_range"></a><a class="link" href="insert_range.html" title="insert_range">insert_range</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.insert_range.description"></a><h6>
<a name="id992114"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.description">Description</a>
</h6>
<p>
Returns a new sequence with another sequence inserted at a specified
iterator.
</p>
<a name="fusion.algorithm.transformation.functions.insert_range.synposis"></a><h6>
<a name="id992133"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pos</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Range</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/insert_range.html" title="insert_range"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">insert_range</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Pos</span><span class="special">,</span> <span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">insert_range</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">Pos</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">Range</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">range</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id992331"></a><p class="title"><b>Table&#160;1.76.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">pos</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
The position to insert at
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">range</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Range to insert
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.insert_range.expression_semantics"></a><h6>
<a name="id992493"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="insert_range.html" title="insert_range"><code class="computeroutput"><span class="identifier">insert_range</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">range</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
and the elements of <code class="computeroutput"><span class="identifier">range</span></code>
inserted at iterator <code class="computeroutput"><span class="identifier">pos</span></code>.
All elements retaining their ordering from the orignal sequences.
</p>
<a name="fusion.algorithm.transformation.functions.insert_range.complexity"></a><h6>
<a name="id992625"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.insert_range.header"></a><h6>
<a name="id992644"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">insert_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">insert_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.insert_range.example"></a><h6>
<a name="id992764"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.functions.insert_range.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="insert_range.html" title="insert_range"><code class="computeroutput"><span class="identifier">insert_range</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <a class="link" href="../../../iterator/functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><a class="link" href="../../../sequence/intrinsic/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">vec</span><span class="special">)),</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="join.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,177 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>join</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="insert_range.html" title="insert_range">
<link rel="next" href="zip.html" title="zip">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert_range.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="zip.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.join"></a><a class="link" href="join.html" title="join">join</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.join.description"></a><h6>
<a name="id992986"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.description">Description</a>
</h6>
<p>
Takes 2 sequences and returns a sequence containing the elements of the
first followed by the elements of the second.
</p>
<a name="fusion.algorithm.transformation.functions.join.synopsis"></a><h6>
<a name="id993005"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">LhSequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">RhSequence</span><span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/join.html" title="join"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join</span></code></a><span class="special">&lt;</span><span class="identifier">LhSequence</span><span class="special">,</span> <span class="identifier">RhSequence</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">join</span><span class="special">(</span><span class="identifier">LhSequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">RhSequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id993148"></a><p class="title"><b>Table&#160;1.77.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">lhs</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">rhs</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.join.expression_semantics"></a><h6>
<a name="id993272"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="join.html" title="join"><code class="computeroutput"><span class="identifier">join</span></code></a><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">lhs</span></code>
and <code class="computeroutput"><span class="identifier">rhs</span></code> implement
the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
all the elements of <code class="computeroutput"><span class="identifier">lhs</span></code>
followed by all the elements of <code class="computeroutput"><span class="identifier">rhs</span></code>.
The order of the elements is preserved.
</p>
<a name="fusion.algorithm.transformation.functions.join.complexity"></a><h6>
<a name="id993398"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.join.header"></a><h6>
<a name="id993417"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.join.example"></a><h6>
<a name="id993532"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.functions.join.example">Example</a>
</h6>
<pre class="programlisting"><a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="identifier">v1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="char">'a'</span><span class="special">);</span>
<a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="identifier">v2</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="char">'b'</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="join.html" title="join"><code class="computeroutput"><span class="identifier">join</span></code></a><span class="special">(</span><span class="identifier">v1</span><span class="special">,</span> <span class="identifier">v2</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="char">'a'</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="char">'b'</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert_range.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="zip.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,153 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>pop_back</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="zip.html" title="zip">
<link rel="next" href="pop_front.html" title="pop_front">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="zip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.pop_back"></a><a class="link" href="pop_back.html" title="pop_back">pop_back</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.pop_back.description"></a><h6>
<a name="id995882"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.description">Description</a>
</h6>
<p>
Returns a new sequence, with the last element of the original removed.
</p>
<a name="fusion.algorithm.transformation.functions.pop_back.synopsis"></a><h6>
<a name="id995904"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/pop_back.html" title="pop_back"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">pop_back</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">pop_back</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id996012"></a><p class="title"><b>Table&#160;1.79.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.pop_back.expression_semantics"></a><h6>
<a name="id996098"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="pop_back.html" title="pop_back"><code class="computeroutput"><span class="identifier">pop_back</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
except the last element. The elements in the new sequence are in the
same order as they were in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.pop_back.complexity"></a><h6>
<a name="id996208"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.pop_back.header"></a><h6>
<a name="id996230"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">pop_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">pop_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.pop_back.example"></a><h6>
<a name="id996350"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.functions.pop_back.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><span class="identifier">___pop_back__</span><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="zip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,153 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>pop_front</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="pop_back.html" title="pop_back">
<link rel="next" href="push_back.html" title="push_back">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.pop_front"></a><a class="link" href="pop_front.html" title="pop_front">pop_front</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.pop_front.description"></a><h6>
<a name="id996464"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.description">Description</a>
</h6>
<p>
Returns a new sequence, with the first element of the original removed.
</p>
<a name="fusion.algorithm.transformation.functions.pop_front.synopsis"></a><h6>
<a name="id996486"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/pop_front.html" title="pop_front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">pop_front</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">pop_front</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id996594"></a><p class="title"><b>Table&#160;1.80.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.pop_front.expression_semantics"></a><h6>
<a name="id996680"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="pop_front.html" title="pop_front"><code class="computeroutput"><span class="identifier">pop_front</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
except the first element. The elements in the new sequence are in the
same order as they were in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.pop_front.complexity"></a><h6>
<a name="id996790"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.pop_front.header"></a><h6>
<a name="id996812"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">pop_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">pop_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.pop_front.example"></a><h6>
<a name="id996932"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.functions.pop_front.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="pop_front.html" title="pop_front"><code class="computeroutput"><span class="identifier">pop_front</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,166 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>push_back</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="pop_front.html" title="pop_front">
<link rel="next" href="push_front.html" title="push_front">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_front.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.push_back"></a><a class="link" href="push_back.html" title="push_back">push_back</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.push_back.description"></a><h6>
<a name="id997051"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.description">Description</a>
</h6>
<p>
Returns a new sequence with an element added at the end.
</p>
<a name="fusion.algorithm.transformation.functions.push_back.synopsis"></a><h6>
<a name="id997072"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">push_back</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">push_back</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id997220"></a><p class="title"><b>Table&#160;1.81.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">t</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The value to add to the end
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.push_back.expression_semantics"></a><h6>
<a name="id997339"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
and new element <code class="computeroutput"><span class="identifier">t</span></code> appended
to the end. The elements are in the same order as they were in <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.push_back.complexity"></a><h6>
<a name="id997441"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.push_back.header"></a><h6>
<a name="id997462"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.push_back.example"></a><h6>
<a name="id997582"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.functions.push_back.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">),</span><span class="number">4</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_front.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,167 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>push_front</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="push_back.html" title="push_back">
<link rel="next" href="../metafunctions.html" title="Metafunctions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.push_front"></a><a class="link" href="push_front.html" title="push_front">push_front</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.push_front.description"></a><h6>
<a name="id998267"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.description">Description</a>
</h6>
<p>
Returns a new sequence with an element added at the beginning.
</p>
<a name="fusion.algorithm.transformation.functions.push_front.synopsis"></a><h6>
<a name="id998286"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/push_front.html" title="push_front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">push_front</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">push_front</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id998436"></a><p class="title"><b>Table&#160;1.82.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">t</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
The value to add to the beginning
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.push_front.expression_semantics"></a><h6>
<a name="id998555"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">t</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
and new element <code class="computeroutput"><span class="identifier">t</span></code> appended
to the beginning. The elements are in the same order as they were in
<code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.push_front.complexity"></a><h6>
<a name="id998657"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.push_front.header"></a><h6>
<a name="id998679"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.push_front.example"></a><h6>
<a name="id998799"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.functions.push_front.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="push_front.html" title="push_front"><code class="computeroutput"><span class="identifier">push_front</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">),</span><span class="number">0</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="replace_if.html" title="replace_if">
<link rel="next" href="remove_if.html" title="remove_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.remove"></a><a class="link" href="remove.html" title="remove">remove</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.remove.description"></a><h6>
<a name="id984301"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.description">Description</a>
</h6>
<p>
Returns a new sequence, with all the elements of the original sequence,
except those of a given type.
</p>
<a name="fusion.algorithm.transformation.functions.remove.synopsis"></a><h6>
<a name="id984323"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/remove.html" title="remove"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">remove</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">replace</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id984452"></a><p class="title"><b>Table&#160;1.69.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Type to remove
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.remove.expression_semantics"></a><h6>
<a name="id984572"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="remove.html" title="remove"><code class="computeroutput"><span class="identifier">remove</span></code></a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
in their original order, except those of type <code class="computeroutput"><span class="identifier">T</span></code>.
Equivalent to <code class="computeroutput"><a class="link" href="remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">remove_if</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">_</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.remove.complexity"></a><h6>
<a name="id984748"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.remove.header"></a><h6>
<a name="id984767"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.remove.example"></a><h6>
<a name="id984884"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.functions.remove.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2.0</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="remove.html" title="remove"><code class="computeroutput"><span class="identifier">remove</span></code></a><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,177 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="remove.html" title="remove">
<link rel="next" href="reverse.html" title="reverse">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.remove_if"></a><a class="link" href="remove_if.html" title="remove_if">remove_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.remove_if.description"></a><h6>
<a name="id985032"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.description">Description</a>
</h6>
<p>
Returns a new sequence, containing all the elements of the original except
those where a given unary function object evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.remove_if.synopsis"></a><h6>
<a name="id985061"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">remove_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id985190"></a><p class="title"><b>Table&#160;1.70.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A model of unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
Removal predicate
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.remove_if.expression_semantics"></a><h6>
<a name="id986408"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">remove_if</span></code></a><span class="special">&lt;</span><span class="identifier">Pred</span><span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
in their original order, except those elements with types for which
<code class="computeroutput"><span class="identifier">Pred</span></code> evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>. Equivalent to <code class="computeroutput"><a class="link" href="filter.html" title="filter"><code class="computeroutput"><span class="identifier">filter</span></code></a><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">not_</span><span class="special">&lt;</span><span class="identifier">Pred</span><span class="special">&gt;</span>
<span class="special">&gt;(</span><span class="identifier">seq</span><span class="special">)</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.remove_if.complexity"></a><h6>
<a name="id986604"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.remove_if.header"></a><h6>
<a name="id986625"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.remove_if.example"></a><h6>
<a name="id986745"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.functions.remove_if.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2.0</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">remove_if</span></code></a><span class="special">&lt;</span><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="identifier">vec</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,186 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="transform.html" title="transform">
<link rel="next" href="replace_if.html" title="replace_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="transform.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.replace"></a><a class="link" href="replace.html" title="replace">replace</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.replace.description"></a><h6>
<a name="id981551"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.description">Description</a>
</h6>
<p>
Replaces each value within a sequence of a given type and value with
a new value.
</p>
<a name="fusion.algorithm.transformation.functions.replace.synopsis"></a><h6>
<a name="id981573"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/replace.html" title="replace"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">replace</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">replace</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">old_value</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">new_value</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id981747"></a><p class="title"><b>Table&#160;1.67.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>, <code class="computeroutput"><span class="identifier">e</span>
<span class="special">==</span> <span class="identifier">old_value</span></code>
is a valid expression, convertible to <code class="computeroutput"><span class="keyword">bool</span></code>,
for each element <code class="computeroutput"><span class="identifier">e</span></code>
in <code class="computeroutput"><span class="identifier">seq</span></code> with
type convertible to <code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">old_value</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Value to replace
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">new_value</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Replacement value
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.replace.expression_semantics"></a><h6>
<a name="id981947"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="replace.html" title="replace"><code class="computeroutput"><span class="identifier">replace</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">old_value</span><span class="special">,</span> <span class="identifier">new_value</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence with
all the values of <code class="computeroutput"><span class="identifier">seq</span></code>
with <code class="computeroutput"><span class="identifier">new_value</span></code> assigned
to elements with the same type and equal to <code class="computeroutput"><span class="identifier">old_value</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.replace.complexity"></a><h6>
<a name="id983141"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.replace.header"></a><h6>
<a name="id983162"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">replace</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">replace</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.replace.example"></a><h6>
<a name="id983282"></a>
<a class="link" href="replace.html#fusion.algorithm.transformation.functions.replace.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="replace.html" title="replace"><code class="computeroutput"><span class="identifier">replace</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">),</span> <span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">3</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="transform.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,195 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="replace.html" title="replace">
<link rel="next" href="remove.html" title="remove">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.replace_if"></a><a class="link" href="replace_if.html" title="replace_if">replace_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.replace_if.description"></a><h6>
<a name="id983408"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.description">Description</a>
</h6>
<p>
Replaces each element of a given sequence for which an unary function
object evaluates to <code class="computeroutput"><span class="keyword">true</span></code>
replaced with a new value.
</p>
<a name="fusion.algorithm.transformation.functions.replace_if.synopsis"></a><h6>
<a name="id983435"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/replace_if.html" title="replace_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">replace_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">replace_if</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">new_value</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id983623"></a><p class="title"><b>Table&#160;1.68.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
A function object for which <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> is a valid expression, convertible
to <code class="computeroutput"><span class="keyword">bool</span></code>, for each
element <code class="computeroutput"><span class="identifier">e</span></code> in
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">new_value</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Replacement value
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.replace_if.expression_semantics"></a><h6>
<a name="id983816"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="replace_if.html" title="replace_if"><code class="computeroutput"><span class="identifier">replace_if</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">new_value</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence with
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>,
with <code class="computeroutput"><span class="identifier">new_value</span></code> assigned
to each element for which <code class="computeroutput"><span class="identifier">f</span></code>
evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.replace_if.complexity"></a><h6>
<a name="id983924"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.replace_if.header"></a><h6>
<a name="id983946"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">replace_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">replace_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.replace_if.example"></a><h6>
<a name="id984066"></a>
<a class="link" href="replace_if.html#fusion.algorithm.transformation.functions.replace_if.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">odd</span>
<span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">t</span> <span class="special">%</span> <span class="number">2</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="replace_if.html" title="replace_if"><code class="computeroutput"><span class="identifier">replace_if</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">),</span> <span class="identifier">odd</span><span class="special">(),</span> <span class="number">3</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,157 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="remove_if.html" title="remove_if">
<link rel="next" href="clear.html" title="clear">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="clear.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.reverse"></a><a class="link" href="reverse.html" title="reverse">reverse</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.reverse.description"></a><h6>
<a name="id986912"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.description">Description</a>
</h6>
<p>
Returns a new sequence with the elements of the original in reverse order.
</p>
<a name="fusion.algorithm.transformation.functions.reverse.synposis"></a><h6>
<a name="id986934"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.synposis">Synposis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse.html" title="reverse"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">reverse</span><span class="special">(</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id987042"></a><p class="title"><b>Table&#160;1.71.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.reverse.expression_semantics"></a><h6>
<a name="id987128"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="reverse.html" title="reverse"><code class="computeroutput"><span class="identifier">reverse</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
is a <a class="link" href="../../../sequence/concepts/bidirectional_sequence.html" title="Bidirectional Sequence">Bidirectional
Sequence</a> else, <a class="link" href="../../../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
is a <a class="link" href="../../../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
Access Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">seq</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence containing
all the elements of <code class="computeroutput"><span class="identifier">seq</span></code>
in reverse order.
</p>
<a name="fusion.algorithm.transformation.functions.reverse.complexity"></a><h6>
<a name="id987260"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.reverse.header"></a><h6>
<a name="id987282"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">reverse</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">reverse</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.reverse.example"></a><h6>
<a name="id987402"></a>
<a class="link" href="reverse.html#fusion.algorithm.transformation.functions.reverse.example">Example</a>
</h6>
<pre class="programlisting"><span class="identifier">assert</span><span class="special">(</span><a class="link" href="reverse.html" title="reverse"><code class="computeroutput"><span class="identifier">reverse</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">))</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">1</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="clear.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,291 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>transform</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="filter_if.html" title="filter_if">
<link rel="next" href="replace.html" title="replace">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.transform"></a><a class="link" href="transform.html" title="transform">transform</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.transform.description"></a><h6>
<a name="id980099"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.description">Description</a>
</h6>
<p>
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code> and
function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
<code class="computeroutput"><span class="identifier">transform</span></code> returns a new
sequence with elements created by applying <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> to each element of <code class="computeroutput"><span class="identifier">e</span></code>
of <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.transform.unary_version_synopsis"></a><h6>
<a name="id980172"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.unary_version_synopsis">Unary
version synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/transform.html" title="transform"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">transform</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">transform</span><span class="special">(</span>
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id980314"></a><p class="title"><b>Table&#160;1.65.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>
is a valid expression for each element <code class="computeroutput"><span class="identifier">e</span></code>
of <code class="computeroutput"><span class="identifier">seq</span></code>. <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">E</span><span class="special">)&gt;::</span><span class="identifier">type</span></code>
is the return type of <code class="computeroutput"><span class="identifier">f</span></code>
when called with a value of each element type <code class="computeroutput"><span class="identifier">E</span></code>.
</p>
</td>
<td>
<p>
Transformation function
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.transform.expression_semantics"></a><h6>
<a name="id980522"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="transform.html" title="transform"><code class="computeroutput"><span class="identifier">transform</span></code></a><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
the return values of <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> for each element <code class="computeroutput"><span class="identifier">e</span></code>
within <code class="computeroutput"><span class="identifier">seq</span></code>.
</p>
<a name="fusion.algorithm.transformation.functions.transform.binary_version_synopsis"></a><h6>
<a name="id980621"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.binary_version_synopsis">Binary
version synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence1</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence2</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">F</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/transform.html" title="transform"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">transform</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">Sequence2</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">transform</span><span class="special">(</span>
<span class="identifier">Sequence1</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq1</span><span class="special">,</span> <span class="identifier">Sequence2</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq2</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id980811"></a><p class="title"><b>Table&#160;1.66.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq1</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq2</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e1</span><span class="special">,</span><span class="identifier">e2</span><span class="special">)</span></code>
is a valid expression for each pair of elements <code class="computeroutput"><span class="identifier">e1</span></code> of <code class="computeroutput"><span class="identifier">seq1</span></code>
and <code class="computeroutput"><span class="identifier">e2</span></code> of
<code class="computeroutput"><span class="identifier">seq2</span></code>. <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special">&lt;</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">E1</span><span class="special">,</span><span class="identifier">E2</span><span class="special">)&gt;::</span><span class="identifier">type</span></code>
is the return type of <code class="computeroutput"><span class="identifier">f</span></code>
when called with elements of type <code class="computeroutput"><span class="identifier">E1</span></code>
and <code class="computeroutput"><span class="identifier">E2</span></code>
</p>
</td>
<td>
<p>
Transformation function
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence, containing
the return values of <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">e1</span><span class="special">,</span> <span class="identifier">e2</span><span class="special">)</span></code> for each pair of elements <code class="computeroutput"><span class="identifier">e1</span></code> and <code class="computeroutput"><span class="identifier">e2</span></code>
within <code class="computeroutput"><span class="identifier">seq1</span></code> and <code class="computeroutput"><span class="identifier">seq2</span></code> respectively.
</p>
<a name="fusion.algorithm.transformation.functions.transform.complexity"></a><h6>
<a name="id981171"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.transform.header"></a><h6>
<a name="id981192"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">transform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">transform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.transform.example"></a><h6>
<a name="id981312"></a>
<a class="link" href="transform.html#fusion.algorithm.transformation.functions.transform.example">Example</a>
</h6>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">triple</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">result_type</span><span class="special">;</span>
<span class="keyword">int</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">int</span> <span class="identifier">t</span><span class="special">)</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">t</span> <span class="special">*</span> <span class="number">3</span><span class="special">;</span>
<span class="special">};</span>
<span class="special">};</span>
<span class="special">...</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="transform.html" title="transform"><code class="computeroutput"><span class="identifier">transform</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">),</span> <span class="identifier">triple</span><span class="special">())</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">9</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,153 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>zip</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../functions.html" title="Functions">
<link rel="prev" href="join.html" title="join">
<link rel="next" href="pop_back.html" title="pop_back">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="join.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.functions.zip"></a><a class="link" href="zip.html" title="zip">zip</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.functions.zip.description"></a><h6>
<a name="id993748"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.description">Description</a>
</h6>
<p>
Zips sequences together to form a single sequence, whos members are tuples
of the members of the component sequences.
</p>
<a name="fusion.algorithm.transformation.functions.zip.synopsis"></a><h6>
<a name="id993767"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence1</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Sequence2</span><span class="special">,</span>
<span class="special">...</span>
<span class="keyword">typename</span> <span class="identifier">SequenceN</span>
<span class="special">&gt;</span>
<span class="keyword">typename</span> <a class="link" href="../metafunctions/zip.html" title="zip"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">zip</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence1</span><span class="special">,</span> <span class="identifier">Sequence2</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">SequenceN</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">zip</span><span class="special">(</span><span class="identifier">Sequence1</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq1</span><span class="special">,</span> <span class="identifier">Sequence2</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seq2</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">SequenceN</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">seqN</span><span class="special">);</span>
</pre>
<div class="table">
<a name="id993969"></a><p class="title"><b>Table&#160;1.78.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">seq1</span></code> to <code class="computeroutput"><span class="identifier">seqN</span></code>
</p>
</td>
<td>
<p>
Each sequence is a model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.functions.zip.expression_semantics"></a><h6>
<a name="id994062"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="zip.html" title="zip"><code class="computeroutput"><span class="identifier">zip</span></code></a><span class="special">(</span><span class="identifier">seq1</span><span class="special">,</span> <span class="identifier">seq2</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">seqN</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
tuples of elements from sequences <code class="computeroutput"><span class="identifier">seq1</span></code>
to <code class="computeroutput"><span class="identifier">seqN</span></code>. For example,
applying zip to tuples <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span></code>
and <code class="computeroutput"><span class="special">(</span><span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span><span class="special">,</span>
<span class="char">'c'</span><span class="special">)</span></code>
would return <code class="computeroutput"><span class="special">((</span><span class="number">1</span><span class="special">,</span> <span class="char">'a'</span><span class="special">),(</span><span class="number">2</span><span class="special">,</span> <span class="char">'b'</span><span class="special">),(</span><span class="number">3</span><span class="special">,</span>
<span class="char">'c'</span><span class="special">))</span></code>
</p>
<a name="fusion.algorithm.transformation.functions.zip.complexity"></a><h6>
<a name="id995505"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.complexity">Complexity</a>
</h6>
<p>
Constant. Returns a view which is lazily evaluated.
</p>
<a name="fusion.algorithm.transformation.functions.zip.header"></a><h6>
<a name="id995524"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">zip</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">zip</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<a name="fusion.algorithm.transformation.functions.zip.example"></a><h6>
<a name="id995640"></a>
<a class="link" href="zip.html#fusion.algorithm.transformation.functions.zip.example">Example</a>
</h6>
<pre class="programlisting"><a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="identifier">v1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="char">'a'</span><span class="special">);</span>
<a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="identifier">v2</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="char">'b'</span><span class="special">);</span>
<span class="identifier">assert</span><span class="special">(</span><a class="link" href="zip.html" title="zip"><code class="computeroutput"><span class="identifier">zip</span></code></a><span class="special">(</span><span class="identifier">v1</span><span class="special">,</span> <span class="identifier">v2</span><span class="special">)</span> <span class="special">==</span> <a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">),</span><a class="link" href="../../../container/generation/functions/make_vector.html" title="make_vector"><code class="computeroutput"><span class="identifier">make_vector</span></code></a><span class="special">(</span><span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span><span class="special">));</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="join.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,65 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Metafunctions</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../transformation.html" title="Transformation">
<link rel="prev" href="functions/push_front.html" title="push_front">
<link rel="next" href="metafunctions/filter.html" title="filter">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/push_front.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../transformation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/filter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.algorithm.transformation.metafunctions"></a><a class="link" href="metafunctions.html" title="Metafunctions">Metafunctions</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="metafunctions/filter.html">filter</a></span></dt>
<dt><span class="section"><a href="metafunctions/filter_if.html">filter_if</a></span></dt>
<dt><span class="section"><a href="metafunctions/transform.html">transform</a></span></dt>
<dt><span class="section"><a href="metafunctions/replace.html">replace</a></span></dt>
<dt><span class="section"><a href="metafunctions/replace_if.html">replace_if</a></span></dt>
<dt><span class="section"><a href="metafunctions/remove.html">remove</a></span></dt>
<dt><span class="section"><a href="metafunctions/remove_if.html">remove_if</a></span></dt>
<dt><span class="section"><a href="metafunctions/reverse.html">reverse</a></span></dt>
<dt><span class="section"><a href="metafunctions/clear.html">clear</a></span></dt>
<dt><span class="section"><a href="metafunctions/erase.html">erase</a></span></dt>
<dt><span class="section"><a href="metafunctions/erase_key.html">erase_key</a></span></dt>
<dt><span class="section"><a href="metafunctions/insert.html">insert</a></span></dt>
<dt><span class="section"><a href="metafunctions/insert_range.html">insert_range</a></span></dt>
<dt><span class="section"><a href="metafunctions/join.html">join</a></span></dt>
<dt><span class="section"><a href="metafunctions/zip.html">zip</a></span></dt>
<dt><span class="section"><a href="metafunctions/pop_back.html">pop_back</a></span></dt>
<dt><span class="section"><a href="metafunctions/pop_front.html">pop_front</a></span></dt>
<dt><span class="section"><a href="metafunctions/push_back.html">push_back</a></span></dt>
<dt><span class="section"><a href="metafunctions/push_front.html">push_front</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="functions/push_front.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../transformation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="metafunctions/filter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,136 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>clear</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="reverse.html" title="reverse">
<link rel="next" href="erase.html" title="erase">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.clear"></a><a class="link" href="clear.html" title="clear">clear</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.clear.description"></a><h6>
<a name="id1006245"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.metafunctions.clear.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/clear.html" title="clear"><code class="computeroutput"><span class="identifier">clear</span></code></a>, given the input sequence
type.
</p>
<a name="fusion.algorithm.transformation.metafunctions.clear.synopsis"></a><h6>
<a name="id1006277"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.metafunctions.clear.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">clear</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1006351"></a><p class="title"><b>Table&#160;1.92.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.clear.expression_semantics"></a><h6>
<a name="id1006433"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.metafunctions.clear.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="clear.html" title="clear"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">clear</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns an empty sequence.
</p>
<a name="fusion.algorithm.transformation.metafunctions.clear.complexity"></a><h6>
<a name="id1006505"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.metafunctions.clear.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.clear.header"></a><h6>
<a name="id1006526"></a>
<a class="link" href="clear.html#fusion.algorithm.transformation.metafunctions.clear.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">clear</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">clear</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,199 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>erase</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="clear.html" title="clear">
<link rel="next" href="erase_key.html" title="erase_key">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="clear.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase_key.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.erase"></a><a class="link" href="erase.html" title="erase">erase</a>
</h5></div></div></div>
<p>
Returns the result type of <a class="link" href="../functions/erase.html" title="erase"><code class="computeroutput"><span class="identifier">erase</span></code></a>, given the input sequence
and range delimiting iterator types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase.description"></a><h6>
<a name="id1006670"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.metafunctions.erase.description">Description</a>
</h6>
<a name="fusion.algorithm.transformation.metafunctions.erase.synopsis"></a><h6>
<a name="id1006688"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.metafunctions.erase.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">It1</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">It2</span> <span class="special">=</span> <span class="emphasis"><em>unspecified</em></span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">erase</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1006796"></a><p class="title"><b>Table&#160;1.93.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">It1</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">It2</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.erase.expression_semantics"></a><h6>
<a name="id1006958"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.metafunctions.erase.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">It1</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence with
the element at <code class="computeroutput"><span class="identifier">It1</span></code> removed.
</p>
<pre class="programlisting"><a class="link" href="erase.html" title="erase"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">It1</span><span class="special">,</span> <span class="identifier">It2</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a new sequence with
the elements between <code class="computeroutput"><span class="identifier">It1</span></code>
and <code class="computeroutput"><span class="identifier">It2</span></code> removed.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase.complexity"></a><h6>
<a name="id1007170"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.metafunctions.erase.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase.header"></a><h6>
<a name="id1007192"></a>
<a class="link" href="erase.html#fusion.algorithm.transformation.metafunctions.erase.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="clear.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase_key.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>erase_key</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="erase.html" title="erase">
<link rel="next" href="insert.html" title="insert">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.erase_key"></a><a class="link" href="erase_key.html" title="erase_key">erase_key</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.erase_key.description"></a><h6>
<a name="id1007320"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.metafunctions.erase_key.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/erase_key.html" title="erase_key"><code class="computeroutput"><span class="identifier">erase_key</span></code></a>, given the sequence
and key types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase_key.synopsis"></a><h6>
<a name="id1007348"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.metafunctions.erase_key.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Key</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">erase_key</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1007433"></a><p class="title"><b>Table&#160;1.94.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> and <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Key</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Key type
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.erase_key.expression_semantics"></a><h6>
<a name="id1007556"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.metafunctions.erase_key.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="erase_key.html" title="erase_key"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">erase_key</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>: A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a> and <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a>.
</p>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with the
elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>,
except those with key <code class="computeroutput"><span class="identifier">Key</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase_key.complexity"></a><h6>
<a name="id1007654"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.metafunctions.erase_key.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.erase_key.header"></a><h6>
<a name="id1007673"></a>
<a class="link" href="erase_key.html#fusion.algorithm.transformation.metafunctions.erase_key.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">erase_key</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">erase_key</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,172 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>filter</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="../metafunctions.html" title="Metafunctions">
<link rel="next" href="filter_if.html" title="filter_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filter_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.filter"></a><a class="link" href="filter.html" title="filter">filter</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.filter.description"></a><h6>
<a name="id998948"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.metafunctions.filter.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/filter.html" title="filter"><code class="computeroutput"><span class="identifier">filter</span></code></a> given the sequence type
and type to retain.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter.synopsis"></a><h6>
<a name="id998976"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.metafunctions.filter.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">filter</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id999064"></a><p class="title"><b>Table&#160;1.83.&#160;Parameter</b></p>
<div class="table-contents"><table class="table" summary="Parameter">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Type to retain
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.filter.expression_semantics"></a><h6>
<a name="id999184"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.metafunctions.filter.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="filter.html" title="filter"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">filter</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
that are of type <code class="computeroutput"><span class="identifier">T</span></code>. Equivalent
to <code class="computeroutput"><a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter.complexity"></a><h6>
<a name="id999392"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.metafunctions.filter.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter.header"></a><h6>
<a name="id999413"></a>
<a class="link" href="filter.html#fusion.algorithm.transformation.metafunctions.filter.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">filter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">filter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filter_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,173 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>filter_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="filter.html" title="filter">
<link rel="next" href="transform.html" title="transform">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.filter_if"></a><a class="link" href="filter_if.html" title="filter_if">filter_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.filter_if.description"></a><h6>
<a name="id999542"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.metafunctions.filter_if.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">filter_if</span></code></a> given the sequence
and unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a> predicate type.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter_if.synopsis"></a><h6>
<a name="id999573"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.metafunctions.filter_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">filter_if</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id999658"></a><p class="title"><b>Table&#160;1.84.&#160;Parameter</b></p>
<div class="table-contents"><table class="table" summary="Parameter">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
Type to retain
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.filter_if.expression_semantics"></a><h6>
<a name="id999783"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.metafunctions.filter_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="filter_if.html" title="filter_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">filter_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
for which <code class="computeroutput"><span class="identifier">Pred</span></code> evaluates
to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter_if.complexity"></a><h6>
<a name="id999933"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.metafunctions.filter_if.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.filter_if.header"></a><h6>
<a name="id999952"></a>
<a class="link" href="filter_if.html#fusion.algorithm.transformation.metafunctions.filter_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">filter_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">filter_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="filter.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,182 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>insert</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="erase_key.html" title="erase_key">
<link rel="next" href="insert_range.html" title="insert_range">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase_key.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert_range.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.insert"></a><a class="link" href="insert.html" title="insert">insert</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.insert.description"></a><h6>
<a name="id1007801"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.metafunctions.insert.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/insert.html" title="insert"><code class="computeroutput"><span class="identifier">insert</span></code></a>, given the sequence,
position iterator and insertion types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert.synopsis"></a><h6>
<a name="id1007830"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.metafunctions.insert.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Position</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">insert</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1007931"></a><p class="title"><b>Table&#160;1.95.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Position</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.insert.expression_semantics"></a><h6>
<a name="id1008087"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.metafunctions.insert.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="insert.html" title="insert"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">insert</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Position</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with an
element of type <code class="computeroutput"><span class="identifier">T</span></code> inserted
at position <code class="computeroutput"><span class="identifier">Position</span></code>
in <code class="computeroutput"><span class="identifier">Sequence</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert.complexity"></a><h6>
<a name="id1008209"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.metafunctions.insert.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert.header"></a><h6>
<a name="id1008231"></a>
<a class="link" href="insert.html#fusion.algorithm.transformation.metafunctions.insert.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="erase_key.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert_range.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,191 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>insert_range</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="insert.html" title="insert">
<link rel="next" href="join.html" title="join">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="join.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.insert_range"></a><a class="link" href="insert_range.html" title="insert_range">insert_range</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.insert_range.description"></a><h6>
<a name="id1008364"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.metafunctions.insert_range.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/insert_range.html" title="insert_range"><code class="computeroutput"><span class="identifier">insert_range</span></code></a>, given the input
sequence, position iterator and insertion range types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert_range.synopsis"></a><h6>
<a name="id1008390"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.metafunctions.insert_range.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Position</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Range</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">insert_range</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1008489"></a><p class="title"><b>Table&#160;1.96.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Position</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../iterator/concepts/forward_iterator.html" title="Forward Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Range</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.insert_range.expression_semantics"></a><h6>
<a name="id1008650"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.metafunctions.insert_range.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="insert_range.html" title="insert_range"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">insert_range</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Position</span><span class="special">,</span> <span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with the
elements of <code class="computeroutput"><span class="identifier">Range</span></code> inserted
at position <code class="computeroutput"><span class="identifier">Position</span></code>
into <code class="computeroutput"><span class="identifier">Sequence</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert_range.complexity"></a><h6>
<a name="id1008795"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.metafunctions.insert_range.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.insert_range.header"></a><h6>
<a name="id1008812"></a>
<a class="link" href="insert_range.html#fusion.algorithm.transformation.metafunctions.insert_range.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">insert_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">insert_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="join.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,107 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>join</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="insert_range.html" title="insert_range">
<link rel="next" href="zip.html" title="zip">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert_range.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="zip.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.join"></a><a class="link" href="join.html" title="join">join</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.join.description"></a><h6>
<a name="id1008940"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.metafunctions.join.description">Description</a>
</h6>
<p>
Returns the result of joining 2 sequences, given the sequence types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.join.synopsis"></a><h6>
<a name="id1008962"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.metafunctions.join.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">LhSequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">RhSequence</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">join</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<a name="fusion.algorithm.transformation.metafunctions.join.expression_semantics"></a><h6>
<a name="id1011989"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.metafunctions.join.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="join.html" title="join"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">join</span></code></a><span class="special">&lt;</span><span class="identifier">LhSequence</span><span class="special">,</span> <span class="identifier">RhSequence</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">LhSequence</span></code>
amd <code class="computeroutput"><span class="identifier">RhSequence</span></code> implement
the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
the elements of <code class="computeroutput"><span class="identifier">LhSequence</span></code>
followed by the elements of <code class="computeroutput"><span class="identifier">RhSequence</span></code>.
The order of the elements in the 2 sequences is preserved.
</p>
<a name="fusion.algorithm.transformation.metafunctions.join.complexity"></a><h6>
<a name="id1012127"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.metafunctions.join.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.join.header"></a><h6>
<a name="id1012148"></a>
<a class="link" href="join.html#fusion.algorithm.transformation.metafunctions.join.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="insert_range.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="zip.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,150 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>pop_back</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="zip.html" title="zip">
<link rel="next" href="pop_front.html" title="pop_front">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="zip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.pop_back"></a><a class="link" href="pop_back.html" title="pop_back">pop_back</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.pop_back.description"></a><h6>
<a name="id1012780"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.metafunctions.pop_back.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/pop_back.html" title="pop_back"><code class="computeroutput"><span class="identifier">pop_back</span></code></a>, given the input sequence
type.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_back.synopsis"></a><h6>
<a name="id1012808"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.metafunctions.pop_back.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">pop_back</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1012883"></a><p class="title"><b>Table&#160;1.97.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.pop_back.expression_semantics"></a><h6>
<a name="id1012969"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.metafunctions.pop_back.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="pop_back.html" title="pop_back"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">pop_back</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with all
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
except the last element.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_back.complexity"></a><h6>
<a name="id1013082"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.metafunctions.pop_back.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_back.header"></a><h6>
<a name="id1013101"></a>
<a class="link" href="pop_back.html#fusion.algorithm.transformation.metafunctions.pop_back.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">pop_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">pop_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="zip.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,150 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>pop_front</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="pop_back.html" title="pop_back">
<link rel="next" href="push_back.html" title="push_back">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.pop_front"></a><a class="link" href="pop_front.html" title="pop_front">pop_front</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.pop_front.description"></a><h6>
<a name="id1013230"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.metafunctions.pop_front.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/pop_front.html" title="pop_front"><code class="computeroutput"><span class="identifier">pop_front</span></code></a>, given the input sequence
type.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_front.synopsis"></a><h6>
<a name="id1013256"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.metafunctions.pop_front.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">pop_front</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1013328"></a><p class="title"><b>Table&#160;1.98.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.pop_front.expression_semantics"></a><h6>
<a name="id1013414"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.metafunctions.pop_front.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="pop_front.html" title="pop_front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">pop_front</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with all
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
except the first element.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_front.complexity"></a><h6>
<a name="id1013527"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.metafunctions.pop_front.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.pop_front.header"></a><h6>
<a name="id1013546"></a>
<a class="link" href="pop_front.html#fusion.algorithm.transformation.metafunctions.pop_front.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">pop_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">pop_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,163 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>push_back</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="pop_front.html" title="pop_front">
<link rel="next" href="push_front.html" title="push_front">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_front.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.push_back"></a><a class="link" href="push_back.html" title="push_back">push_back</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.push_back.description"></a><h6>
<a name="id1013675"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.metafunctions.push_back.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">push_back</span></code></a>, given the types of
the input sequence and element to push.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_back.synopsis"></a><h6>
<a name="id1013701"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.metafunctions.push_back.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">push_back</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1013786"></a><p class="title"><b>Table&#160;1.99.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.push_back.expression_semantics"></a><h6>
<a name="id1013905"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.metafunctions.push_back.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="push_back.html" title="push_back"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">push_back</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with the
elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
and an element of type <code class="computeroutput"><span class="identifier">T</span></code>
added to the end.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_back.complexity"></a><h6>
<a name="id1014008"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.metafunctions.push_back.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_back.header"></a><h6>
<a name="id1014028"></a>
<a class="link" href="push_back.html#fusion.algorithm.transformation.metafunctions.push_back.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pop_front.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,163 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>push_front</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="push_back.html" title="push_back">
<link rel="next" href="../../../tuple.html" title="Tuple">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../tuple.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.push_front"></a><a class="link" href="push_front.html" title="push_front">push_front</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.push_front.description"></a><h6>
<a name="id1014161"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.metafunctions.push_front.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/push_front.html" title="push_front"><code class="computeroutput"><span class="identifier">push_front</span></code></a>, given the types
of the input sequence and element to push.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_front.synopsis"></a><h6>
<a name="id1014188"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.metafunctions.push_front.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">push_front</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1014273"></a><p class="title"><b>Table&#160;1.100.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.push_front.expression_semantics"></a><h6>
<a name="id1014392"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.metafunctions.push_front.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="push_front.html" title="push_front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">push_front</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li></ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence with the
elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
and an element of type <code class="computeroutput"><span class="identifier">T</span></code>
added to the beginning.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_front.complexity"></a><h6>
<a name="id1014497"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.metafunctions.push_front.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.push_front.header"></a><h6>
<a name="id1014516"></a>
<a class="link" href="push_front.html#fusion.algorithm.transformation.metafunctions.push_front.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../../tuple.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,172 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="replace_if.html" title="replace_if">
<link rel="next" href="remove_if.html" title="remove_if">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.remove"></a><a class="link" href="remove.html" title="remove">remove</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.remove.description"></a><h6>
<a name="id1002697"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.metafunctions.remove.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/remove.html" title="remove"><code class="computeroutput"><span class="identifier">remove</span></code></a>, given the sequence and
removal types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove.synopsis"></a><h6>
<a name="id1004639"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.metafunctions.remove.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">remove</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1004726"></a><p class="title"><b>Table&#160;1.89.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
Remove elements of this type
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.remove.expression_semantics"></a><h6>
<a name="id1004845"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.metafunctions.remove.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="remove.html" title="remove"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">remove</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
not of type <code class="computeroutput"><span class="identifier">T</span></code>. Equivalent
to <code class="computeroutput"><a class="link" href="replace_if.html" title="replace_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">replace_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove.complexity"></a><h6>
<a name="id1005055"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.metafunctions.remove.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove.header"></a><h6>
<a name="id1005077"></a>
<a class="link" href="remove.html#fusion.algorithm.transformation.metafunctions.remove.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,173 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Fusion 2.0">
<link rel="up" href="../metafunctions.html" title="Metafunctions">
<link rel="prev" href="remove.html" title="remove">
<link rel="next" href="reverse.html" title="reverse">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="fusion.algorithm.transformation.metafunctions.remove_if"></a><a class="link" href="remove_if.html" title="remove_if">remove_if</a>
</h5></div></div></div>
<a name="fusion.algorithm.transformation.metafunctions.remove_if.description"></a><h6>
<a name="id1005205"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.metafunctions.remove_if.description">Description</a>
</h6>
<p>
Returns the result type of <a class="link" href="../functions/remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">remove_if</span></code></a>, given the input sequence
and unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a> predicate types.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove_if.synopsis"></a><h6>
<a name="id1005236"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.metafunctions.remove_if.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">Pred</span>
<span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">remove_if</span>
<span class="special">{</span>
<span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<div class="table">
<a name="id1005321"></a><p class="title"><b>Table&#160;1.90.&#160;Parameters</b></p>
<div class="table-contents"><table class="table" summary="Parameters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Requirement
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Sequence</span></code>
</p>
</td>
<td>
<p>
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>
</p>
</td>
<td>
<p>
Operation's argument
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">Pred</span></code>
</p>
</td>
<td>
<p>
A model of unary <a href="http://www.boost.org/libs/mpl/doc/refmanual/lambda-expression.html" target="_top">MPL
Lambda Expression</a>
</p>
</td>
<td>
<p>
Remove elements which evaluate to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="fusion.algorithm.transformation.metafunctions.remove_if.expression_semantics"></a><h6>
<a name="id1005468"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.metafunctions.remove_if.expression_semantics">Expression
Semantics</a>
</h6>
<pre class="programlisting"><a class="link" href="remove_if.html" title="remove_if"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">remove_if</span></code></a><span class="special">&lt;</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">Pred</span><span class="special">&gt;::</span><span class="identifier">type</span>
</pre>
<p>
<span class="bold"><strong>Return type</strong></span>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
Sequence</a>.
</li>
<li class="listitem">
A model of <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> if <code class="computeroutput"><span class="identifier">Sequence</span></code>
implements the <a class="link" href="../../../sequence/concepts/associative_sequence.html" title="Associative Sequence">Associative
Sequence</a> model.
</li>
</ul></div>
<p>
<span class="bold"><strong>Semantics</strong></span>: Returns a sequence containing
the elements of <code class="computeroutput"><span class="identifier">Sequence</span></code>
for which <code class="computeroutput"><span class="identifier">Pred</span></code> evaluates
to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove_if.complexity"></a><h6>
<a name="id1005618"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.metafunctions.remove_if.complexity">Complexity</a>
</h6>
<p>
Constant.
</p>
<a name="fusion.algorithm.transformation.metafunctions.remove_if.header"></a><h6>
<a name="id1005637"></a>
<a class="link" href="remove_if.html#fusion.algorithm.transformation.metafunctions.remove_if.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More