From 57725cb393b5aec7f707ea21c8a52742cda2a357 Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Tue, 8 Jul 2008 02:43:21 +0000 Subject: [PATCH] merge from trunk [SVN r47205] --- doc/html/fusion/acknowledgements.html | 11 +- doc/html/fusion/adapted.html | 31 ++- doc/html/fusion/adapted/adapt_assoc.html | 75 +++--- doc/html/fusion/adapted/adapt_struct.html | 69 ++--- doc/html/fusion/adapted/boost__array.html | 63 ++--- doc/html/fusion/adapted/boost__tuple.html | 55 ++-- doc/html/fusion/adapted/mpl_sequence.html | 60 +++-- doc/html/fusion/adapted/std__pair.html | 63 ++--- doc/html/fusion/algorithm.html | 69 +++-- doc/html/fusion/algorithm/iteration.html | 19 +- .../fusion/algorithm/iteration/functions.html | 11 +- .../iteration/functions/accumulate.html | 88 +++--- .../algorithm/iteration/functions/fold.html | 88 +++--- .../iteration/functions/for_each.html | 77 +++--- .../algorithm/iteration/metafunctions.html | 11 +- .../iteration/metafunctions/accumulate.html | 74 ++--- .../iteration/metafunctions/fold.html | 74 ++--- .../iteration/metafunctions/for_each.html | 64 ++--- doc/html/fusion/algorithm/query.html | 19 +- .../fusion/algorithm/query/functions.html | 11 +- .../fusion/algorithm/query/functions/all.html | 86 +++--- .../fusion/algorithm/query/functions/any.html | 86 +++--- .../algorithm/query/functions/count.html | 76 +++--- .../algorithm/query/functions/count_if.html | 74 ++--- .../algorithm/query/functions/find.html | 72 ++--- .../algorithm/query/functions/find_if.html | 70 ++--- .../algorithm/query/functions/none.html | 86 +++--- .../fusion/algorithm/query/metafunctions.html | 11 +- .../algorithm/query/metafunctions/all.html | 68 ++--- .../algorithm/query/metafunctions/any.html | 68 ++--- .../algorithm/query/metafunctions/count.html | 58 ++-- .../query/metafunctions/count_if.html | 58 ++-- .../algorithm/query/metafunctions/find.html | 62 ++--- .../query/metafunctions/find_if.html | 64 ++--- .../algorithm/query/metafunctions/none.html | 68 ++--- doc/html/fusion/algorithm/transformation.html | 21 +- .../algorithm/transformation/functions.html | 11 +- .../transformation/functions/clear.html | 61 ++--- .../transformation/functions/erase.html | 96 +++---- .../transformation/functions/erase_key.html | 71 ++--- .../transformation/functions/filter.html | 69 ++--- .../transformation/functions/filter_if.html | 73 ++--- .../transformation/functions/insert.html | 72 ++--- .../functions/insert_range.html | 77 +++--- .../transformation/functions/join.html | 72 ++--- .../transformation/functions/pop_back.html | 63 ++--- .../transformation/functions/pop_front.html | 63 ++--- .../transformation/functions/push_back.html | 67 ++--- .../transformation/functions/push_front.html | 67 ++--- .../transformation/functions/remove.html | 69 ++--- .../transformation/functions/remove_if.html | 71 ++--- .../transformation/functions/replace.html | 79 +++--- .../transformation/functions/replace_if.html | 79 +++--- .../transformation/functions/reverse.html | 61 ++--- .../transformation/functions/transform.html | 128 ++++----- .../transformation/functions/zip.html | 77 +++--- .../transformation/metafunctions.html | 11 +- .../transformation/metafunctions/clear.html | 50 ++-- .../transformation/metafunctions/erase.html | 76 +++--- .../metafunctions/erase_key.html | 59 ++-- .../transformation/metafunctions/filter.html | 63 ++--- .../metafunctions/filter_if.html | 61 ++--- .../transformation/metafunctions/insert.html | 66 ++--- .../metafunctions/insert_range.html | 69 ++--- .../transformation/metafunctions/join.html | 42 +-- .../metafunctions/pop_back.html | 55 ++-- .../metafunctions/pop_front.html | 51 ++-- .../metafunctions/push_back.html | 55 ++-- .../metafunctions/push_front.html | 55 ++-- .../transformation/metafunctions/remove.html | 63 ++--- .../metafunctions/remove_if.html | 63 ++--- .../transformation/metafunctions/replace.html | 57 ++-- .../metafunctions/replace_if.html | 65 ++--- .../transformation/metafunctions/reverse.html | 55 ++-- .../metafunctions/transform.html | 128 ++++----- .../transformation/metafunctions/zip.html | 53 ++-- doc/html/fusion/change_log.html | 19 +- doc/html/fusion/container.html | 24 +- doc/html/fusion/container/cons.html | 184 ++++++------- doc/html/fusion/container/conversion.html | 21 +- .../container/conversion/functions.html | 11 +- .../conversion/functions/as_list.html | 47 ++-- .../conversion/functions/as_map.html | 55 ++-- .../conversion/functions/as_set.html | 49 ++-- .../conversion/functions/as_vector.html | 47 ++-- .../container/conversion/metafunctions.html | 11 +- .../conversion/metafunctions/as_list.html | 51 ++-- .../conversion/metafunctions/as_map.html | 59 ++-- .../conversion/metafunctions/as_set.html | 53 ++-- .../conversion/metafunctions/as_vector.html | 51 ++-- doc/html/fusion/container/generation.html | 21 +- .../container/generation/functions.html | 11 +- .../generation/functions/list_tie.html | 61 +++-- .../generation/functions/make_cons.html | 65 +++-- .../generation/functions/make_list.html | 67 +++-- .../generation/functions/make_map.html | 93 ++++--- .../generation/functions/make_set.html | 77 +++--- .../generation/functions/make_vector.html | 67 +++-- .../generation/functions/map_tie.html | 69 +++-- .../container/generation/functions/tiers.html | 41 ++- .../generation/functions/vector_tie.html | 61 +++-- .../container/generation/metafunctions.html | 11 +- .../generation/metafunctions/list_tie.html | 57 ++-- .../generation/metafunctions/make_cons.html | 53 ++-- .../generation/metafunctions/make_list.html | 59 ++-- .../generation/metafunctions/make_map.html | 81 +++--- .../generation/metafunctions/make_set.html | 69 +++-- .../generation/metafunctions/make_vector.html | 59 ++-- .../generation/metafunctions/map_tie.html | 65 +++-- .../generation/metafunctions/vector_tie.html | 57 ++-- doc/html/fusion/container/list.html | 164 +++++------ doc/html/fusion/container/map.html | 155 ++++++----- doc/html/fusion/container/set.html | 143 +++++----- doc/html/fusion/container/vector.html | 141 +++++----- doc/html/fusion/extension.html | 13 +- doc/html/fusion/extension/ext_full.html | 254 +++++++++--------- .../fusion/extension/iterator_facade.html | 153 ++++++----- .../fusion/extension/sequence_facade.html | 125 +++++---- doc/html/fusion/functional.html | 56 ++-- doc/html/fusion/functional/adapters.html | 16 +- .../fusion/functional/adapters/fused.html | 146 +++++----- .../adapters/fused_function_object.html | 145 +++++----- .../functional/adapters/fused_procedure.html | 148 +++++----- .../functional/adapters/unfused_generic.html | 149 +++++----- .../adapters/unfused_lvalue_args.html | 138 +++++----- .../adapters/unfused_rvalue_args.html | 140 +++++----- .../functional/adapters/unfused_typed.html | 168 ++++++------ doc/html/fusion/functional/concepts.html | 13 +- .../fusion/functional/concepts/callable.html | 43 +-- .../functional/concepts/def_callable.html | 121 +++++---- doc/html/fusion/functional/concepts/poly.html | 108 ++++---- .../functional/concepts/reg_callable.html | 89 +++--- doc/html/fusion/functional/generation.html | 11 +- .../functional/generation/functions.html | 14 +- .../generation/functions/mk_fused.html | 82 +++--- .../generation/functions/mk_fused_fobj.html | 87 +++--- .../generation/functions/mk_fused_proc.html | 82 +++--- .../functions/mk_unfused_genrc.html | 79 +++--- .../functions/mk_unfused_lvargs.html | 81 +++--- .../functions/mk_unfused_rvargs.html | 76 +++--- .../functional/generation/metafunctions.html | 17 +- .../generation/metafunctions/mk_fused.html | 42 +-- .../metafunctions/mk_fused_fobj.html | 45 ++-- .../metafunctions/mk_fused_proc.html | 45 ++-- .../metafunctions/mk_unfused_genrc.html | 45 ++-- .../metafunctions/mk_unfused_lvargs.html | 45 ++-- .../metafunctions/mk_unfused_rvargs.html | 42 +-- doc/html/fusion/functional/invocation.html | 14 +- .../functional/invocation/functions.html | 11 +- .../invocation/functions/invoke.html | 85 +++--- .../invocation/functions/invoke_fobj.html | 85 +++--- .../invocation/functions/invoke_proc.html | 87 +++--- .../functional/invocation/metafunctions.html | 14 +- .../invocation/metafunctions/invoke.html | 32 +-- .../invocation/metafunctions/invoke_fobj.html | 42 +-- .../invocation/metafunctions/invoke_proc.html | 40 +-- doc/html/fusion/introduction.html | 43 ++- doc/html/fusion/iterator.html | 21 +- doc/html/fusion/iterator/concepts.html | 29 +- .../concepts/bidirectional_iterator.html | 151 ++++++----- .../iterator/concepts/forward_iterator.html | 217 +++++++-------- .../concepts/random_access_iterator.html | 131 ++++----- doc/html/fusion/iterator/functions.html | 14 +- .../fusion/iterator/functions/advance.html | 87 +++--- .../fusion/iterator/functions/advance_c.html | 87 +++--- doc/html/fusion/iterator/functions/deref.html | 80 +++--- .../fusion/iterator/functions/distance.html | 76 +++--- doc/html/fusion/iterator/functions/next.html | 80 +++--- doc/html/fusion/iterator/functions/prior.html | 80 +++--- doc/html/fusion/iterator/metafunctions.html | 14 +- .../iterator/metafunctions/advance.html | 89 +++--- .../iterator/metafunctions/advance_c.html | 91 +++---- .../fusion/iterator/metafunctions/deref.html | 84 +++--- .../iterator/metafunctions/distance.html | 82 +++--- .../iterator/metafunctions/equal_to.html | 83 +++--- .../fusion/iterator/metafunctions/next.html | 78 +++--- .../fusion/iterator/metafunctions/prior.html | 82 +++--- .../iterator/metafunctions/value_of.html | 84 +++--- doc/html/fusion/iterator/operator.html | 14 +- .../iterator/operator/operator_equality.html | 71 ++--- .../operator/operator_inequality.html | 68 ++--- .../operator/operator_unary_star.html | 87 +++--- doc/html/fusion/notes.html | 159 +++++------ doc/html/fusion/organization.html | 49 ++-- doc/html/fusion/preface.html | 53 ++-- doc/html/fusion/quick_start.html | 149 +++++----- doc/html/fusion/references.html | 11 +- doc/html/fusion/sequence.html | 25 +- doc/html/fusion/sequence/concepts.html | 50 ++-- .../concepts/associative_sequence.html | 135 +++++----- .../concepts/bidirectional_sequence.html | 140 +++++----- .../sequence/concepts/forward_sequence.html | 182 +++++++------ .../concepts/random_access_sequence.html | 163 +++++------ doc/html/fusion/sequence/intrinsic.html | 34 +-- .../fusion/sequence/intrinsic/functions.html | 11 +- .../sequence/intrinsic/functions/at.html | 66 ++--- .../sequence/intrinsic/functions/at_c.html | 66 ++--- .../sequence/intrinsic/functions/at_key.html | 62 ++--- .../sequence/intrinsic/functions/back.html | 60 ++--- .../sequence/intrinsic/functions/begin.html | 74 ++--- .../sequence/intrinsic/functions/empty.html | 56 ++-- .../sequence/intrinsic/functions/end.html | 74 ++--- .../sequence/intrinsic/functions/front.html | 60 ++--- .../sequence/intrinsic/functions/has_key.html | 58 ++-- .../sequence/intrinsic/functions/size.html | 50 ++-- .../sequence/intrinsic/functions/swap.html | 48 ++-- .../sequence/intrinsic/metafunctions.html | 11 +- .../sequence/intrinsic/metafunctions/at.html | 66 ++--- .../intrinsic/metafunctions/at_c.html | 66 ++--- .../intrinsic/metafunctions/at_key.html | 70 ++--- .../intrinsic/metafunctions/back.html | 52 ++-- .../intrinsic/metafunctions/begin.html | 56 ++-- .../intrinsic/metafunctions/empty.html | 58 ++-- .../sequence/intrinsic/metafunctions/end.html | 56 ++-- .../intrinsic/metafunctions/front.html | 54 ++-- .../intrinsic/metafunctions/has_key.html | 60 ++--- .../intrinsic/metafunctions/size.html | 52 ++-- .../intrinsic/metafunctions/swap.html | 40 +-- .../intrinsic/metafunctions/value_at.html | 54 ++-- .../intrinsic/metafunctions/value_at_c.html | 54 ++-- .../intrinsic/metafunctions/value_at_key.html | 56 ++-- doc/html/fusion/sequence/operator.html | 13 +- .../fusion/sequence/operator/comparison.html | 27 +- .../sequence/operator/comparison/equal.html | 72 ++--- .../operator/comparison/greater_than.html | 71 ++--- .../comparison/greater_than_equal.html | 68 ++--- .../operator/comparison/less_than.html | 75 +++--- .../operator/comparison/less_than_equal.html | 71 ++--- .../operator/comparison/not_equal.html | 66 ++--- doc/html/fusion/sequence/operator/i_o.html | 71 +++-- doc/html/fusion/sequence/operator/i_o/in.html | 49 ++-- .../fusion/sequence/operator/i_o/out.html | 49 ++-- doc/html/fusion/support.html | 11 +- doc/html/fusion/support/category_of.html | 77 +++--- doc/html/fusion/support/deduce.html | 61 +++-- doc/html/fusion/support/deduce_sequence.html | 65 ++--- doc/html/fusion/support/is_sequence.html | 83 +++--- doc/html/fusion/support/is_view.html | 81 +++--- doc/html/fusion/support/pair.html | 133 +++++---- doc/html/fusion/support/tag_of.html | 79 +++--- doc/html/fusion/tuple.html | 15 +- .../fusion/tuple/class_template_tuple.html | 24 +- .../class_template_tuple/construction.html | 80 +++--- .../class_template_tuple/element_access.html | 73 ++--- .../relational_operators.html | 148 +++++----- .../tuple_creation_functions.html | 56 ++-- .../tuple_helper_classes.html | 63 ++--- doc/html/fusion/tuple/pairs.html | 68 ++--- doc/html/fusion/view.html | 19 +- doc/html/fusion/view/filter_view.html | 129 ++++----- doc/html/fusion/view/iterator_range.html | 147 +++++----- doc/html/fusion/view/joint_view.html | 137 +++++----- doc/html/fusion/view/reverse_view.html | 112 ++++---- doc/html/fusion/view/single_view.html | 107 ++++---- doc/html/fusion/view/transform_view.html | 202 +++++++------- doc/html/fusion/view/zip_view.html | 136 +++++----- doc/html/index.html | 12 +- test/functional/invoke.cpp | 2 +- test/functional/invoke_function_object.cpp | 2 +- test/functional/invoke_procedure.cpp | 2 +- 260 files changed, 9039 insertions(+), 8720 deletions(-) diff --git a/doc/html/fusion/acknowledgements.html b/doc/html/fusion/acknowledgements.html index 7f08fcdd..d10ff6f0 100644 --- a/doc/html/fusion/acknowledgements.html +++ b/doc/html/fusion/acknowledgements.html @@ -3,7 +3,7 @@ Acknowledgements - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
+Acknowledgements

Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey Gurtovoy, Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan Marsden, Eric diff --git a/doc/html/fusion/adapted.html b/doc/html/fusion/adapted.html index 340ad860..2d5c7a20 100644 --- a/doc/html/fusion/adapted.html +++ b/doc/html/fusion/adapted.html @@ -3,7 +3,7 @@ Adapted - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


@@ -24,8 +24,7 @@
+Adapted
std::pair
mpl sequence
@@ -35,32 +34,32 @@
BOOST_FUSION_ADAPT_ASSOC_STRUCT

- Fusion provides a couple of adapters for other sequences such as std::pair, + Fusion provides a couple of adapters for other sequences such as std::pair, MPL sequences, - and boost::array. These adapters are written using Fusion's - non-intrusive Extension mechanism. + and boost::array. These adapters are written using Fusion's + non-intrusive Extension 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 - [13] + [13] .

Fusion also provides various schemes to make it easy for the user to adapt various data structures, non-intrusively, as full fledged Fusion sequences.

-

- - Header -

+

+ + Header +

 #include <boost/fusion/adapted.hpp>
 #include <boost/fusion/include/adapted.hpp>
 


-

[13] +

[13] Fusion sequences may also be adapted as fully conforming MPL - sequences (see Intrinsics). + sequences (see Intrinsics). That way, we can have 2-way adaptation to and from MPL and Fusion

diff --git a/doc/html/fusion/adapted/adapt_assoc.html b/doc/html/fusion/adapted/adapt_assoc.html index 2f976dbf..d5fde8a6 100644 --- a/doc/html/fusion/adapted/adapt_assoc.html +++ b/doc/html/fusion/adapted/adapt_assoc.html @@ -1,21 +1,21 @@ -BOOST_FUSION_ADAPT_ASSOC_STRUCT + BOOST_FUSION_ADAPT_ASSOC_STRUCT - + - + - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,23 @@
+

+ + Description +

BOOST_FUSION_ADAPT_ASSOC_STRUCT is a macro that can be used to generate all - the necessary boilerplate to make an arbitrary struct into a model of Random Access Sequence - and Associative + the necessary boilerplate to make an arbitrary struct into a model of Random Access Sequence + and Associative Sequence.

-
- - Synopsis -
+

+ + Synopsis +

 BOOST_FUSION_ADAPT_ASSOC_STRUCT(
     struct_name
@@ -48,36 +49,38 @@
     ...
     )
 
-
- - Semantics -
+

+ + Semantics +

- The above macro generates the necessary code to adapt struct_name - as a model of Random - Access Sequence and Associative - Sequence. The sequence of (member_typeN, + The above macro generates the necessary code to adapt struct_name + as a model of Random + Access Sequence and Associative + Sequence. The sequence of (member_typeN, member_nameN, - key_typeN) + key_typeN) triples declare the type, name and key type of each of the struct members that will be part of the sequence.

- The macro should be used at global scope, and struct_name + The macro should be used at global scope, and struct_name should be the fully namespace qualified name of the struct to be converted.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
 #include <boost/fusion/include/adapt_assoc_struct.hpp>
 
-
- - Example -
+

+ + Example +

 namespace demo
 {
diff --git a/doc/html/fusion/adapted/adapt_struct.html b/doc/html/fusion/adapted/adapt_struct.html
index f87c9af3..640267cf 100644
--- a/doc/html/fusion/adapted/adapt_struct.html
+++ b/doc/html/fusion/adapted/adapt_struct.html
@@ -1,21 +1,21 @@
 
 
 
-BOOST_FUSION_ADAPT_STRUCT
+ BOOST_FUSION_ADAPT_STRUCT
 
-
+
 
 
 
-
+
 
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,21 +24,21 @@ +

+ + Description +

BOOST_FUSION_ADAPT_STRUCT is a macro that can be used to generate all the - necessary boilerplate to make an arbitrary struct into a Random + necessary boilerplate to make an arbitrary struct into a Random Access Sequence.

-
- - Synopsis -
+

+ + Synopsis +

 BOOST_FUSION_ADAPT_STRUCT(
     struct_name
@@ -47,34 +47,35 @@
     ...
     )
 
-
- - Semantics -
+

+ + Semantics +

- The above macro generates the necessary code to adapt struct_name - as a model of Random - Access Sequence. The sequence of (member_typeN, - member_nameN) + The above macro generates the necessary code to adapt struct_name + as a model of Random + Access Sequence. The sequence of (member_typeN, + member_nameN) pairs declare the type and names of each of the struct members that will be part of the sequence.

- The macro should be used at global scope, and struct_name + The macro should be used at global scope, and struct_name should be the fully namespace qualified name of the struct to be converted.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/struct/adapt_struct.hpp>
 #include <boost/fusion/include/adapt_struct.hpp>
 
-
- - Example -
+

+ + Example +

 namespace demo
 {
diff --git a/doc/html/fusion/adapted/boost__array.html b/doc/html/fusion/adapted/boost__array.html
index e497820e..3925b1b0 100644
--- a/doc/html/fusion/adapted/boost__array.html
+++ b/doc/html/fusion/adapted/boost__array.html
@@ -3,7 +3,7 @@
 
 boost::array
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,45 +24,46 @@

- This module provides adapters for boost::array. - Including the module header makes boost::array - a fully conforming Random + This module provides adapters for boost::array. + Including the module header makes boost::array + a fully conforming Random Access Sequence.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/array.hpp>
 #include <boost/fusion/include/array.hpp>
 
-
- - Model of -
-

- This module provides adapters for boost::tuple. - Including the module header makes boost::tuple - a fully conforming Forward + This module provides adapters for boost::tuple. + Including the module header makes boost::tuple + a fully conforming Forward Sequence.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/boost_tuple.hpp>
 #include <boost/fusion/include/boost_tuple.hpp>
 
-
- - Model of -
- -
- - Example -
+

+ + Model of +

+ +

+ + Example +

 boost::tuple<int,std::string> example_tuple(101, "hello");
 std::cout << *boost::fusion::begin(example_tuple) << '\n';
 std::cout << *boost::fusion::next(boost::fusion::begin(example_tuple)) << '\n';
 
-
- - See also -
+

+ + See also +

Boost.Tuple Library diff --git a/doc/html/fusion/adapted/mpl_sequence.html b/doc/html/fusion/adapted/mpl_sequence.html index df5b3e22..b960669c 100644 --- a/doc/html/fusion/adapted/mpl_sequence.html +++ b/doc/html/fusion/adapted/mpl_sequence.html @@ -3,7 +3,7 @@ mpl sequence - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


@@ -24,60 +24,62 @@

This module provides adapters for MPL sequences. Including the module header makes all MPL sequences fully conforming fusion sequences.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/mpl.hpp>
 #include <boost/fusion/include/mpl.hpp>
 
-
- - Model of -
+

+ + Model of +

-
- - Example -
+

+ + Example +

 mpl::vector_c<int, 123, 456> vec_c;
 fusion::vector2<int, long> v(vec_c);
-std::cout << at_c<0>(v) << std::endl;
-std::cout << at_c<1>(v) << std::endl;
+std::cout << at_c<0>(v) << std::endl;
+std::cout << at_c<1>(v) << std::endl;
 
 v = mpl::vector_c<int, 456, 789>();
-std::cout << at_c<0>(v) << std::endl;
-std::cout << at_c<1>(v) << std::endl;
+std::cout << at_c<0>(v) << std::endl;
+std::cout << at_c<1>(v) << std::endl;
 
-
- - See also -
+

+ + See also +

MPL

diff --git a/doc/html/fusion/adapted/std__pair.html b/doc/html/fusion/adapted/std__pair.html index 1fe05fa0..f3ca5a54 100644 --- a/doc/html/fusion/adapted/std__pair.html +++ b/doc/html/fusion/adapted/std__pair.html @@ -3,7 +3,7 @@ std::pair - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,46 +24,47 @@

- This module provides adapters for std::pair. - Including the module header makes std::pair - a fully conforming Random + This module provides adapters for std::pair. + Including the module header makes std::pair + a fully conforming Random Access Sequence.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/include/std_pair.hpp>
 
-
- - Model of -
-
diff --git a/doc/html/fusion/algorithm.html b/doc/html/fusion/algorithm.html index 1a160183..ea7053b2 100644 --- a/doc/html/fusion/algorithm.html +++ b/doc/html/fusion/algorithm.html @@ -3,19 +3,19 @@ Algorithm - + - +
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
Iteration
@@ -43,10 +42,10 @@
Metafunctions
-

- - Lazy Evaluation -

+

+ + Lazy Evaluation +

Unlike MPL, Fusion algorithms are lazy and non sequence-type preserving. What does that mean? @@ -58,41 +57,41 @@ 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 + 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_view + 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.

-

- - Sequence Extension -

+

+ + Sequence Extension +

- The lazy evaluation scheme where Algorithms - return Views also allows operations such - as push_back to be totally generic. In - Fusion, push_back is actually a generic algorithm - that works on all sequences. Given an input sequence s - and a value x, Fusion's push_back algorithm simply returns - a joint_view: - a view that holds a reference to the original sequence s - and the value x. Functions + The lazy evaluation scheme where Algorithms + return Views also allows operations such + as push_back to be totally generic. In + Fusion, push_back is actually a generic algorithm + that works on all sequences. Given an input sequence s + and a value x, Fusion's push_back algorithm simply returns + a joint_view: + a view that holds a reference to 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. However, an important caveat is that the - result of a sequence extending operation like push_back does not retain the properties - of the original sequence such as associativity of set(s). To regain the original sequence, - Conversion functions - are provided. You may use one of the Conversion + result of a sequence extending operation like push_back does not retain the properties + of the original sequence such as associativity of set(s). 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.

-

- - Header -

+

+ + Header +

 #include <boost/fusion/algorithm.hpp>
 #include <boost/fusion/include/algorithm.hpp>
diff --git a/doc/html/fusion/algorithm/iteration.html b/doc/html/fusion/algorithm/iteration.html
index a2c906db..1ea968a1 100644
--- a/doc/html/fusion/algorithm/iteration.html
+++ b/doc/html/fusion/algorithm/iteration.html
@@ -3,7 +3,7 @@
 
 Iteration
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
Functions
Metafunctions
@@ -34,10 +33,10 @@ The iteration algorithms provide the fundamental algorithms for traversing a sequence repeatedly applying an operation to its elements.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/algorithm/iteration.hpp>
 #include <boost/fusion/include/iteration.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/functions.html b/doc/html/fusion/algorithm/iteration/functions.html
index 376eaeed..155c47c9 100644
--- a/doc/html/fusion/algorithm/iteration/functions.html
+++ b/doc/html/fusion/algorithm/iteration/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
fold
accumulate
diff --git a/doc/html/fusion/algorithm/iteration/functions/accumulate.html b/doc/html/fusion/algorithm/iteration/functions/accumulate.html index 66771de7..1eb774cf 100644 --- a/doc/html/fusion/algorithm/iteration/functions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/functions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,21 @@
- - Description + + Description

- For a sequence Seq, initial - state, and binary function object or function pointer f, - accumulate repeatedly applies binary f - to each element of Seq + For a sequence Seq, initial + state, and binary function object or function pointer f, + accumulate repeatedly applies binary f + to each element of Seq and the previous state.

- - Synopsis + + Synopsis
 template<
@@ -47,12 +46,12 @@
     typename State,
     typename F
     >
-typename result_of::accumulate<Sequence, State, F>::type accumulate(
+typename result_of::accumulate<Sequence, State, F>::type accumulate(
     Sequence& seq, State const& initial_state, F const& f);
 
-

Table 1.34. Parameters

-
+

Table 1.34. Parameters

+
@@ -79,16 +78,17 @@ -

- seq + seq

- A model of Forward - Sequence, f(eN - ....f(e2,f(e1,initial_state))) must be a valid expression for - each element e1 - to eN in seq + A model of Forward + Sequence, f(eN + ....f(e2,f(e1,initial_state))) must be a valid expression for + each element e1 + to eN in seq

@@ -100,7 +100,7 @@

- initial_state + initial_state

@@ -117,14 +117,14 @@

- f + f

- boost::result_of<F(E,S)>::type is the return type of f(e,s) - for each element e - of type E in seq, and current state s of type S + boost::result_of<F(E,S)>::type is the return type of f(e,s) + for each element e + of type E in seq, and current state s of type S

@@ -134,41 +134,41 @@
+
-
- - Expression +
+ + Expression Semantics
 accumulate(seq, initial_state, f);
 

- Return type: Any type + Return type: Any type

- Semantics: Equivalent to f(eN ....f(e2,f(e1,initial_state))) - where e1 ...eN are the elements of seq. + Semantics: Equivalent to f(eN ....f(e2,f(e1,initial_state))) + where e1 ...eN are the elements of seq.

- - Complexity + + Complexity

- Linear, exactly result_of::size<Sequence>::value applications of f. + Linear, exactly result_of::size<Sequence>::value applications of f.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/accumulate.hpp>
 #include <boost/fusion/include/accumulate.hpp>
 
- - Example + + Example
 struct make_string
@@ -182,8 +182,8 @@
     }
 };
 ...
-const vector<int,int> vec(1,2);
-assert(accumulate(vec,std::string(""), make_string()) == "12");
+const vector<int,int> vec(1,2);
+assert(accumulate(vec,std::string(""), make_string()) == "12");
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/fold.html b/doc/html/fusion/algorithm/iteration/functions/fold.html index aa2ccc54..c1e05d1d 100644 --- a/doc/html/fusion/algorithm/iteration/functions/fold.html +++ b/doc/html/fusion/algorithm/iteration/functions/fold.html @@ -3,7 +3,7 @@ fold - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,21 @@
-fold -
+fold
- - Description + + Description

- For a sequence Seq, initial - state, and binary function object or function pointer f, - fold repeatedly applies binary f - to each element of Seq + For a sequence Seq, initial + state, and binary function object or function pointer f, + fold repeatedly applies binary f + to each element of Seq and the previous state.

- - Synopsis + + Synopsis
 template<
@@ -47,12 +46,12 @@
     typename State,
     typename F
     >
-typename result_of::fold<Sequence, State, F>::type fold(
+typename result_of::fold<Sequence, State, F>::type fold(
     Sequence& seq, State const& initial_state, F const& f);
 
-

Table 1.33. Parameters

-
+

Table 1.33. Parameters

+
@@ -79,16 +78,17 @@ -

- seq + seq

- A model of Forward - Sequence,f(e,s) must be a valid expression for - each element e - in seq, and current - state s + A model of Forward + Sequence,f(e,s) must be a valid expression for + each element e + in seq, and current + state s

@@ -100,7 +100,7 @@

- initial_state + initial_state

@@ -117,14 +117,14 @@

- f + f

- boost::result_of<F(E,S)>::type is the return type of f(e,s) - for each element e - of type E in seq, and current state s of type S + boost::result_of<F(E,S)>::type is the return type of f(e,s) + for each element e + of type E in seq, and current state s of type S

@@ -134,41 +134,41 @@
+
-
- - Expression +
+ + Expression Semantics
 fold(seq, initial_state, f);
 

- Return type: Any type + Return type: Any type

- Semantics: Equivalent to f(eN ....f(e2,f(e1,initial_state))) - where e1 ...eN are the elements of seq. + Semantics: Equivalent to f(eN ....f(e2,f(e1,initial_state))) + where e1 ...eN are the elements of seq.

- - Complexity + + Complexity

- Linear, exactly result_of::size<Sequence>::value applications of f. + Linear, exactly result_of::size<Sequence>::value applications of f.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/fold.hpp>
 #include <boost/fusion/include/fold.hpp>
 
- - Example + + Example
 struct make_string
@@ -182,8 +182,8 @@
     }
 };
 ...
-const vector<int,int> vec(1,2);
-assert(fold(vec,std::string(""), make_string()) == "12");
+const vector<int,int> vec(1,2);
+assert(fold(vec,std::string(""), make_string()) == "12");
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/for_each.html b/doc/html/fusion/algorithm/iteration/functions/for_each.html index 3f0d3052..4b6265b3 100644 --- a/doc/html/fusion/algorithm/iteration/functions/for_each.html +++ b/doc/html/fusion/algorithm/iteration/functions/for_each.html @@ -3,7 +3,7 @@ for_each - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Applies a unary function object to each element of a sequence.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F
     >
-typename result_of::for_each<Sequence, F>::type for_each(
+typename result_of::for_each<Sequence, F>::type for_each(
     Sequence& seq, F const& f);
 
-

Table 1.35. Parameters

-
+

Table 1.35. Parameters

+
@@ -74,15 +73,16 @@ @@ -110,41 +111,41 @@ -

- seq + seq

- A model of Forward - Sequence, f(e) must be a valid expression for - each element e - in seq + A model of Forward + Sequence, f(e) must be a valid expression for + each element e + in seq

@@ -94,12 +94,13 @@

- f + f

- A unary Regular + A unary Regular Callable Object

+
-
- - Expression +
+ + Expression Semantics
-for_each(seq, f);
+for_each(seq, f);
 

- Return type: void + Return type: void

- Semantics: Calls f(e) for each element e - in seq. + Semantics: Calls f(e) for each element e + in seq.

- - Complexity + + Complexity

- Linear, exactly result_of::size<Sequence>::value applications of f. + Linear, exactly result_of::size<Sequence>::value applications of f.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/for_each.hpp>
 #include <boost/fusion/include/for_each.hpp>
 
- - Example + + Example
 struct increment
@@ -156,9 +157,9 @@
     }
 };
 ...
-vector<int,int> vec(1,2);
-for_each(vec, increment());
-assert(vec == make_vector(2,3));
+vector<int,int> vec(1,2);
+for_each(vec, increment());
+assert(vec == make_vector(2,3));
 
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions.html b/doc/html/fusion/algorithm/iteration/metafunctions.html index 4236387c..198e3a48 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
fold
accumulate
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html index fd7df622..6a74d790 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Returns the result type of accumulate. + Returns the result type of accumulate.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.37. Parameters

-
+

Table 1.37. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,7 +94,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- State + State

@@ -104,21 +104,21 @@

- The initial state for the first application of F + The initial state for the first application of F

- F + F

- boost::result_of<F(E,S)>::type is the return type of f(e,s) - for each element e - of type E in seq, and current state s of type S + boost::result_of<F(E,S)>::type is the return type of f(e,s) + for each element e + of type E in seq, and current state s of type S

@@ -128,36 +128,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::accumulate<Sequence, State, F>::type
+result_of::accumulate<Sequence, State, F>::type
 

- Return type: Any type + Return type: Any type

- Semantics: Returns the result of applying - accumulate to a sequence - of type Sequence, with - an initial state of type State - and binary function object or function pointer of type F. + Semantics: Returns the result of applying + accumulate to a sequence + of type Sequence, with + an initial state of type State + and binary function object or function pointer of type F.

- - Complexity + + Complexity

- Linear, exactly result_of::size<Sequence>::value applications of F. + Linear, exactly result_of::size<Sequence>::value applications of F.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/accumulate.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
index 6d9022a7..c79e8b6d 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
@@ -3,7 +3,7 @@
 
 fold
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-fold -
+fold
- - Description + + Description

- Returns the result type of fold. + Returns the result type of fold.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.36. Parameters

-
+

Table 1.36. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,7 +94,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- State + State

@@ -104,21 +104,21 @@

- The initial state for the first application of F + The initial state for the first application of F

- F + F

- boost::result_of<F(E,S)>::type is the return type of f(e,s) - for each element e - of type E in seq, and current state s of type S + boost::result_of<F(E,S)>::type is the return type of f(e,s) + for each element e + of type E in seq, and current state s of type S

@@ -128,36 +128,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::fold<Sequence, State, F>::type
+result_of::fold<Sequence, State, F>::type
 

- Return type: Any type + Return type: Any type

- Semantics: Returns the result of applying - fold to a sequence of - type Sequence, with an - initial state of type State - and binary function object or function pointer of type F. + Semantics: Returns the result of applying + fold to a sequence of + type Sequence, with an + initial state of type State + and binary function object or function pointer of type F.

- - Complexity + + Complexity

- Linear, exactly result_of::size<Sequence>::value applications of F. + Linear, exactly result_of::size<Sequence>::value applications of F.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/fold.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
index 576fd07e..1cedc9bb 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
@@ -3,7 +3,7 @@
 
 for_each
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@

- A metafunction returning the result type of applying for_each to a sequence. The - return type of for_each is always void. + A metafunction returning the result type of applying for_each to a sequence. The + return type of for_each is always void.

- - Description + + Description
- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.38. Parameters

-
+

Table 1.38. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- F + F

@@ -110,36 +110,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::for_each<Sequence, F>::type
+result_of::for_each<Sequence, F>::type
 

- Return type: void. + Return type: void.

- Semantics: Returns the return type of - for_each for a sequence of type - Sequence and a unary - function object F. The - return type is always void. + Semantics: Returns the return type of + for_each for a sequence of type + Sequence and a unary + function object F. The + return type is always void.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/iteration/for_each.hpp>
diff --git a/doc/html/fusion/algorithm/query.html b/doc/html/fusion/algorithm/query.html
index bfd3cc29..83d1b667 100644
--- a/doc/html/fusion/algorithm/query.html
+++ b/doc/html/fusion/algorithm/query.html
@@ -3,7 +3,7 @@
 
 Query
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
Functions
Metafunctions
@@ -33,10 +32,10 @@

The query algorithms provide support for searching and analyzing sequences.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/algorithm/query.hpp>
 #include <boost/fusion/include/query.hpp>
diff --git a/doc/html/fusion/algorithm/query/functions.html b/doc/html/fusion/algorithm/query/functions.html
index 012fd520..a77963a7 100644
--- a/doc/html/fusion/algorithm/query/functions.html
+++ b/doc/html/fusion/algorithm/query/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
any
all
diff --git a/doc/html/fusion/algorithm/query/functions/all.html b/doc/html/fusion/algorithm/query/functions/all.html index c0e9f414..5370bcb3 100644 --- a/doc/html/fusion/algorithm/query/functions/all.html +++ b/doc/html/fusion/algorithm/query/functions/all.html @@ -3,7 +3,7 @@ all - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,34 +24,33 @@
-all -
+all
- - Description + + Description

- For a sequence seq and - unary function object f, - all returns true if - f returns true for every - element of seq. + For a sequence seq and + unary function object f, + all returns true if + f returns true for every + element of seq.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F
     >
-typename result_of::all<Sequence,F>::type all(
+typename result_of::all<Sequence,F>::type all(
     Sequence const& seq, F f);
 
-

Table 1.40. Parameters

-
+

Table 1.40. Parameters

+
@@ -78,15 +77,16 @@ -

- seq + seq

- A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for every - element e in seq + A model of Forward + Sequence, f(e) is a valid expression, convertible + to bool, for every + element e in seq

@@ -98,7 +98,7 @@

- f + f

@@ -113,43 +113,43 @@
+
-
- - Expression +
+ + Expression Semantics
-all(seq, f);
+all(seq, f);
 

- Return type: bool + Return type: bool

- Semantics: Returns true if and only - if f(e) - evaluates to true for every - element e in seq. + Semantics: Returns true if and only + if f(e) + evaluates to true for every + element e in seq.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/all.hpp>
 #include <boost/fusion/include/all.hpp>
 
- - Example + + Example
 struct odd
@@ -161,8 +161,8 @@
     }
 };
 ...
-assert(all(make_vector(1,3), odd()));
-assert(!all(make_vector(1,2), odd()));
+assert(all(make_vector(1,3), odd()));
+assert(!all(make_vector(1,2), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/functions/any.html b/doc/html/fusion/algorithm/query/functions/any.html index 8b39b24a..9766fb16 100644 --- a/doc/html/fusion/algorithm/query/functions/any.html +++ b/doc/html/fusion/algorithm/query/functions/any.html @@ -3,7 +3,7 @@ any - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,34 +24,33 @@
-any -
+any
- - Description + + Description

- For a sequence seq and - unary function object f, - any returns true if - f returns true for at - least one element of seq. + For a sequence seq and + unary function object f, + any returns true if + f returns true for at + least one element of seq.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F
     >
-typename result_of::any<Sequence,F>::type any(
+typename result_of::any<Sequence,F>::type any(
     Sequence const& seq, F f);
 
-

Table 1.39. Parameters

-
+

Table 1.39. Parameters

+
@@ -78,15 +77,16 @@ -

- seq + seq

- A model of Forward - Sequence, f(e) must be a valid expression, convertible - to bool, for each - element e in seq + A model of Forward + Sequence, f(e) must be a valid expression, convertible + to bool, for each + element e in seq

@@ -98,7 +98,7 @@

- f + f

@@ -113,43 +113,43 @@
+
-
- - Expression +
+ + Expression semantics
-any(seq, f);
+any(seq, f);
 

- Return type: bool + Return type: bool

- Semantics: Returns true if and only - if f(e) - evaluates to true for some - element e in seq. + Semantics: Returns true if and only + if f(e) + evaluates to true for some + element e in seq.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/any.hpp>
 #include <boost/fusion/include/any.hpp>
 
- - Example + + Example
 struct odd
@@ -161,8 +161,8 @@
     }
 };
 ...
-assert(any(make_vector(1,2), odd()));
-assert(!any(make_vector(2,4), odd()));
+assert(any(make_vector(1,2), odd()));
+assert(!any(make_vector(2,4), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/functions/count.html b/doc/html/fusion/algorithm/query/functions/count.html index 5d4dc081..2a276254 100644 --- a/doc/html/fusion/algorithm/query/functions/count.html +++ b/doc/html/fusion/algorithm/query/functions/count.html @@ -3,7 +3,7 @@ count - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Returns the number of elements of a given type within a sequence.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename T
     >
-typename result_of::count<Sequence, T>::type count(
+typename result_of::count<Sequence, T>::type count(
     Sequence const& seq, T const& t);
 
-

Table 1.44. Parameters

-
+

Table 1.44. Parameters

+
@@ -74,16 +73,17 @@ -

- seq + seq

- A model of Forward - Sequence, e == t - must be a valid expression, convertible to bool, - for each element e - in seq + A model of Forward + Sequence, e == t + must be a valid expression, convertible to bool, + for each element e + in seq

@@ -95,7 +95,7 @@

- T + T

@@ -110,46 +110,46 @@
+
-
- - Expression +
+ + Expression Semantics
-count(seq, t);
+count(seq, t);
 

- Return type: int + Return type: int

- Semantics: Returns the number of elements - of type T and equal to - t in seq. + Semantics: Returns the number of elements + of type T and equal to + t in seq.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/count.hpp>
 #include <boost/fusion/include/count.hpp>
 
- - Example + + Example
-const vector<double,int,int> vec(1.0,2,3);
-assert(count(vec,2) == 1);
+const vector<double,int,int> vec(1.0,2,3);
+assert(count(vec,2) == 1);
 
diff --git a/doc/html/fusion/algorithm/query/functions/count_if.html b/doc/html/fusion/algorithm/query/functions/count_if.html index 50cf54c4..ffa0422d 100644 --- a/doc/html/fusion/algorithm/query/functions/count_if.html +++ b/doc/html/fusion/algorithm/query/functions/count_if.html @@ -3,7 +3,7 @@ count_if - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,31 +24,30 @@
- - Description + + Description

Returns the number of elements within a sequence with a type for which - a given unary function object evaluates to true. + a given unary function object evaluates to true.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F
     >
-typename result_of::count_if<Sequence, F>::type count_if(
+typename result_of::count_if<Sequence, F>::type count_if(
     Sequence const& seq, F f);
 
-

Table 1.45. Parameters

-
+

Table 1.45. Parameters

+
@@ -75,15 +74,16 @@ -

- seq + seq

- A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for each - element e in seq + A model of Forward + Sequence, f(e) is a valid expression, convertible + to bool, for each + element e in seq

@@ -95,7 +95,7 @@

- f + f

@@ -110,45 +110,45 @@
+
-
- - Expression +
+ + Expression Semantics
-count_if(seq, f)
+count_if(seq, f)
 

- Return type: int + Return type: int

- Semantics: Returns the number of elements - in seq where f evaluates to true. + Semantics: Returns the number of elements + in seq where f evaluates to true.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/count_if.hpp>
 #include <boost/fusion/include/count_if.hpp>
 
- - Example + + Example
-const vector<int,int,int> vec(1,2,3);
-assert(count_if(vec,odd()) == 2);
+const vector<int,int,int> vec(1,2,3);
+assert(count_if(vec,odd()) == 2);
 
diff --git a/doc/html/fusion/algorithm/query/functions/find.html b/doc/html/fusion/algorithm/query/functions/find.html index 786b17c4..7c2499ca 100644 --- a/doc/html/fusion/algorithm/query/functions/find.html +++ b/doc/html/fusion/algorithm/query/functions/find.html @@ -3,7 +3,7 @@ find - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-find -
+find
- - Description + + Description

Finds the first element of a given type within a sequence.

- - Synopsis + + Synopsis
 template<
@@ -51,8 +50,8 @@
 unspecified find(Sequence& seq);
 
-

Table 1.42. Parameters

-
+

Table 1.42. Parameters

+
@@ -79,12 +78,13 @@ @@ -97,7 +97,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- T + T

@@ -112,49 +112,49 @@
+
-
- - Expression +
+ + Expression Semantics
-find<T>(seq)
+find<T>(seq)
 

- Return type: A model of the same iterator - category as the iterators of seq. + Return type: A model of the same iterator + category as the iterators of seq.

- Semantics: Returns an iterator to the - first element of seq - of type T, or end(seq) if there is no such element. Equivalent - to find_if<boost::is_same<_, T> >(seq) + Semantics: Returns an iterator to the + first element of seq + of type T, or end(seq) if there is no such element. Equivalent + to find_if<boost::is_same<_, T> >(seq)

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/find.hpp>
 #include <boost/fusion/include/find.hpp>
 
- - Example + + Example
-const vector<char,int> vec('a','0');
-assert(*find<int>(vec) == '0');
-assert(find<double>(vec) == end(vec));
+const vector<char,int> vec('a','0');
+assert(*find<int>(vec) == '0');
+assert(find<double>(vec) == end(vec));
 
diff --git a/doc/html/fusion/algorithm/query/functions/find_if.html b/doc/html/fusion/algorithm/query/functions/find_if.html index 500bf764..20b74c2b 100644 --- a/doc/html/fusion/algorithm/query/functions/find_if.html +++ b/doc/html/fusion/algorithm/query/functions/find_if.html @@ -3,7 +3,7 @@ find_if - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,20 +24,19 @@

Finds the first element within a sequence with a type for which a given MPL - Lambda Expression evaluates to boost::mpl::true_. + Lambda Expression evaluates to boost::mpl::true_.

- - Description + + Description
- - Synopsis + + Synopsis
 template<
@@ -53,8 +52,8 @@
 unspecified find_if(Sequence& seq);
 
-

Table 1.43. Parameters

-
+

Table 1.43. Parameters

+
@@ -81,12 +80,13 @@ @@ -99,7 +99,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- F + F

@@ -115,45 +115,45 @@
+
-
- - Expression +
+ + Expression Semantics
-find_if<F>(seq)
+find_if<F>(seq)
 

- Return type: An iterator of the same - iterator category as the iterators of seq. + Return type: An iterator of the same + iterator category as the iterators of seq.

- Semantics: Returns the first element - of seq for which MPL - Lambda Expression F - evaluates to boost::mpl::true_, or end(seq) + Semantics: Returns the first element + of seq for which MPL + Lambda Expression F + evaluates to boost::mpl::true_, or end(seq) if there is no such element.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

/algorithm/query/find_if.hpp>

- - Example + + Example
-const vector<double,int> vec(1.0,2);
-assert(*find_if<is_integral<mpl::_> >(vec) == 2);
-assert(find_if<is_class<mpl::_> >(vec) == end(vec));
+const vector<double,int> vec(1.0,2);
+assert(*find_if<is_integral<mpl::_> >(vec) == 2);
+assert(find_if<is_class<mpl::_> >(vec) == end(vec));
 
diff --git a/doc/html/fusion/algorithm/query/functions/none.html b/doc/html/fusion/algorithm/query/functions/none.html index ca111331..9f613a5a 100644 --- a/doc/html/fusion/algorithm/query/functions/none.html +++ b/doc/html/fusion/algorithm/query/functions/none.html @@ -3,7 +3,7 @@ none - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,34 +24,33 @@
-none -
+none
- - Description + + Description

- For a sequence seq and - unary function object f, - none returns true if - f returns false for every - element of seq. + For a sequence seq and + unary function object f, + none returns true if + f returns false for every + element of seq.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F
     >
-typename result_of::none<Sequence,F>::type none(
+typename result_of::none<Sequence,F>::type none(
     Sequence const& seq, F f);
 
-

Table 1.41. Parameters

-
+

Table 1.41. Parameters

+
@@ -78,15 +77,16 @@ -

- seq + seq

- A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for every - element e in seq + A model of Forward + Sequence, f(e) is a valid expression, convertible + to bool, for every + element e in seq

@@ -98,7 +98,7 @@

- f + f

@@ -113,43 +113,43 @@
+
-
- - Expression +
+ + Expression Semantics
-none(seq, f);
+none(seq, f);
 

- Return type: bool + Return type: bool

- Semantics: Returns true if and only - if f(e) - evaluates to false for every - element e in seq. Result equivalent to !any(seq, f). + Semantics: Returns true if and only + if f(e) + evaluates to false for every + element e in seq. Result equivalent to !any(seq, f).

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/none.hpp>
 #include <boost/fusion/include/none.hpp>
 
- - Example + + Example
 struct odd
@@ -161,8 +161,8 @@
     }
 };
 ...
-assert(none(make_vector(2,4), odd()));
-assert(!none(make_vector(1,2), odd()));
+assert(none(make_vector(2,4), odd()));
+assert(!none(make_vector(1,2), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions.html b/doc/html/fusion/algorithm/query/metafunctions.html index bf9747eb..68581c9e 100644 --- a/doc/html/fusion/algorithm/query/metafunctions.html +++ b/doc/html/fusion/algorithm/query/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
any
all
diff --git a/doc/html/fusion/algorithm/query/metafunctions/all.html b/doc/html/fusion/algorithm/query/metafunctions/all.html index 6ebfe97b..bcd98c6a 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/all.html +++ b/doc/html/fusion/algorithm/query/metafunctions/all.html @@ -3,7 +3,7 @@ all - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-all -
+all
- - Description + + Description

- A metafunction returning the result type of all. + A metafunction returning the result type of all.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.47. Parameters

-
+

Table 1.47. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,12 +94,13 @@ @@ -110,37 +111,38 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- F + F

- A model of unary Polymorphic + A model of unary Polymorphic Function Object

+
-
- - Expression +
+ + Expression Semantics
-result_of::all<Sequence, F>::type
+result_of::all<Sequence, F>::type
 

- Return type: bool. + Return type: bool.

- Semantics: Returns the return type of - all - given a sequence of type Sequence - and a unary Polymorphic - Function Object of type F. - The return type is always bool. + Semantics: Returns the return type of + all + given a sequence of type Sequence + and a unary Polymorphic + Function Object of type F. + The return type is always bool.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/query/all.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/any.html b/doc/html/fusion/algorithm/query/metafunctions/any.html
index 19b6d6df..d7eb4548 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/any.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/any.html
@@ -3,7 +3,7 @@
 
 any
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-any -
+any
- - Description + + Description

- A metafunction returning the result type of any. + A metafunction returning the result type of any.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.46. Parameters

-
+

Table 1.46. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,12 +94,13 @@ @@ -110,37 +111,38 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- F + F

- A model of unary Polymorphic + A model of unary Polymorphic Function Object

+
-
- - Expression +
+ + Expression Semantics
-result_of::any<Sequence, F>::type
+result_of::any<Sequence, F>::type
 

- Return type: bool. + Return type: bool.

- Semantics: Returns the return type of - any - given a sequence of type Sequence - and a unary Polymorphic - Function Object of type F. - The return type is always bool. + Semantics: Returns the return type of + any + given a sequence of type Sequence + and a unary Polymorphic + Function Object of type F. + The return type is always bool.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/query/any.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/count.html b/doc/html/fusion/algorithm/query/metafunctions/count.html
index 6ceb8cbe..8716f4a2 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/count.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/count.html
@@ -3,7 +3,7 @@
 
 count
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- A metafunction that returns the result type of count + A metafunction that returns the result type of count given the sequence and search types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.51. Parameters

-
+

Table 1.51. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,34 +110,34 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::count<T>::type
+result_of::count<T>::type
 

- Return type: int. + Return type: int.

- Semantics: Returns the return type of - count. The return type is always - int. + Semantics: Returns the return type of + count. The return type is always + int.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/query/count.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/count_if.html b/doc/html/fusion/algorithm/query/metafunctions/count_if.html
index 730864a4..27402618 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/count_if.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/count_if.html
@@ -3,7 +3,7 @@
 
 count_if
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- A metafunction that returns the result type of count_if + A metafunction that returns the result type of count_if given the sequence and predicate types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.52. Parameters

-
+

Table 1.52. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -110,34 +110,34 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::count_if<Sequence, Pred>::type
+result_of::count_if<Sequence, Pred>::type
 

- Return type: int. + Return type: int.

- Semantics: Returns the return type of - count_if. The return type is - always int. + Semantics: Returns the return type of + count_if. The return type is + always int.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/query/count_if.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/find.html b/doc/html/fusion/algorithm/query/metafunctions/find.html
index f76ad7c5..642f7077 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/find.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/find.html
@@ -3,7 +3,7 @@
 
 find
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
-find -
+find
- - Description + + Description

- Returns the result type of find, + Returns the result type of find, given the sequence and search types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.49. Parameters

-
+

Table 1.49. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- Model of Forward + Model of Forward Sequence

- T + T

@@ -110,36 +110,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::find<Sequence, T>::type
+result_of::find<Sequence, T>::type
 

- Return type: A model of the same iterator - category as the iterators of Sequence. + Return type: A model of the same iterator + category as the iterators of Sequence.

- Semantics: Returns an iterator to the - first element of type T - in Sequence, or result_of::end<Sequence>::type + Semantics: Returns an iterator to the + first element of type T + in Sequence, or result_of::end<Sequence>::type if there is no such element.

- - Complexity + + Complexity

- Linear, at most result_of::size<Sequence>::value comparisons. + Linear, at most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/find.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/find_if.html b/doc/html/fusion/algorithm/query/metafunctions/find_if.html
index 1ef4dbd4..0883d34c 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/find_if.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/find_if.html
@@ -3,7 +3,7 @@
 
 find_if
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of find_if + Returns the result type of find_if given the sequence and predicate types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.50. Parameters

-
+

Table 1.50. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -111,36 +111,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::find_if<Sequence, Pred>::type
+result_of::find_if<Sequence, Pred>::type
 

- Return type: A model of the same iterator - category as the iterators of Sequence. + Return type: A model of the same iterator + category as the iterators of Sequence.

- Semantics: Returns an iterator to the - first element in Sequence - for which Pred evaluates - to true. Returns result_of::end<Sequence>::type if there is no such element. + Semantics: Returns an iterator to the + first element in Sequence + for which Pred evaluates + to true. Returns result_of::end<Sequence>::type if there is no such element.

- - Complexity + + Complexity

- Linear. At most result_of::size<Sequence>::value comparisons. + Linear. At most result_of::size<Sequence>::value comparisons.

- - Header + + Header
 #include <boost/fusion/algorithm/query/find_if.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/none.html b/doc/html/fusion/algorithm/query/metafunctions/none.html
index ed153948..775bb347 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/none.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/none.html
@@ -3,7 +3,7 @@
 
 none
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-none -
+none
- - Description + + Description

- A metafunction returning the result type of none. + A metafunction returning the result type of none.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.48. Parameters

-
+

Table 1.48. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,12 +94,13 @@ @@ -110,37 +111,38 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- F + F

- A model of unary Polymorphic + A model of unary Polymorphic Function Object

+
-
- - Expression +
+ + Expression Semantics
-result_of::none<Sequence, F>::type
+result_of::none<Sequence, F>::type
 

- Return type: bool. + Return type: bool.

- Semantics: Returns the return type of - none - given a sequence of type Sequence - and a unary Polymorphic - Function Object of type F. - The return type is always bool. + Semantics: Returns the return type of + none + given a sequence of type Sequence + and a unary Polymorphic + Function Object of type F. + The return type is always bool.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/query/none.hpp>
diff --git a/doc/html/fusion/algorithm/transformation.html b/doc/html/fusion/algorithm/transformation.html
index 8cd0d3cd..3b792522 100644
--- a/doc/html/fusion/algorithm/transformation.html
+++ b/doc/html/fusion/algorithm/transformation.html
@@ -3,7 +3,7 @@
 
 Transformation
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
Functions
Metafunctions
@@ -40,16 +39,16 @@ [Note] Note -

+

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.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/algorithm/transformation.hpp>
 #include <boost/fusion/include/transformation.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/functions.html b/doc/html/fusion/algorithm/transformation/functions.html
index 8b84f2d7..10863dc6 100644
--- a/doc/html/fusion/algorithm/transformation/functions.html
+++ b/doc/html/fusion/algorithm/transformation/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
filter
filter_if
diff --git a/doc/html/fusion/algorithm/transformation/functions/clear.html b/doc/html/fusion/algorithm/transformation/functions/clear.html index 550c4d8a..6a4b5581 100644 --- a/doc/html/fusion/algorithm/transformation/functions/clear.html +++ b/doc/html/fusion/algorithm/transformation/functions/clear.html @@ -3,7 +3,7 @@ clear - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,28 +24,27 @@
- - Description + + Description

- clear returns an empty sequence. + clear returns an empty sequence.

- - Synposis + + Synposis
 template<
     typename Sequence
     >
-typename result_of::clear<Sequence const>::type clear(Sequence const& seq);
+typename result_of::clear<Sequence const>::type clear(Sequence const& seq);
 
-

Table 1.62. Parameters

-
+

Table 1.62. Parameters

+
@@ -71,12 +70,13 @@ @@ -86,45 +86,46 @@

-

- seq + seq

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-clear(seq);
+clear(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Expression Semantics: Returns a sequence + Expression Semantics: Returns a sequence with no elements.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/clear.hpp>
 #include <boost/fusion/include/clear.hpp>
 
- - Example + + Example
-assert(clear(make_vector(1,2,3)) == make_vector());
+assert(clear(make_vector(1,2,3)) == make_vector());
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/erase.html b/doc/html/fusion/algorithm/transformation/functions/erase.html index 089f28b0..cd28e649 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase.html @@ -3,7 +3,7 @@ erase - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

Returns a new sequence, containing all the elements of the original except those at a specified iterator, or between two iterators.

- - Synposis + + Synposis
 template<
     typename Sequence,
     typename First
     >
-typename result_of::erase<Sequence const, First>::type erase(
+typename result_of::erase<Sequence const, First>::type erase(
     Sequence const& seq, First const& it1);
 
 template<
@@ -51,12 +50,12 @@
     typename First,
     typename Last
     >
-typename result_of::erase<Sequence const, First, Last>::type erase(
+typename result_of::erase<Sequence const, First, Last>::type erase(
     Sequence const& seq, First const& it1, Last const& it2);
 
-

Table 1.63. Parameters

-
+

Table 1.63. Parameters

+
@@ -83,12 +82,13 @@ @@ -101,95 +101,99 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- it1 + it1

- A model of Forward + A model of Forward Iterator

- Iterator into seq + Iterator into seq

- it2 + it2

- A model of Forward + A model of Forward Iterator

- Iterator into seq - after it1 + Iterator into seq + after it1

+
-
- - Expression +
+ + Expression Semantics
-erase(seq, pos);
+erase(seq, pos);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq - except the element at pos. + Semantics: Returns a new sequence, containing + all the elements of seq + except the element at pos.

-erase(seq, first, last);
+erase(seq, first, last);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, with - all the elements of seq, - in their original order, except those in the range [first,last). + Semantics: Returns a new sequence, with + all the elements of seq, + in their original order, except those in the range [first,last).

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/erase.hpp>
 #include <boost/fusion/include/erase.hpp>
 
- - Example + + Example
-const vector<int, double, char> vec(1, 2.0, 'c');
-assert(erase(vec, next(begin(vec))) == make_vector(1, 'c'));
-assert(erase(vec, next(begin(vec)), end(vec)) == make_vector(1));
+const vector<int, double, char> vec(1, 2.0, 'c');
+assert(erase(vec, next(begin(vec))) == make_vector(1, 'c'));
+assert(erase(vec, next(begin(vec)), end(vec)) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/erase_key.html b/doc/html/fusion/algorithm/transformation/functions/erase_key.html index 1addb688..15803534 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase_key.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase_key.html @@ -3,7 +3,7 @@ erase_key - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,23 @@
- - Description + + Description

- For an Associative - Sequence seq, - returns a Forward + For an Associative + Sequence seq, + returns a Forward Sequence containing all the elements of the original except those with a given key.

- - Synposis + + Synposis
 template<
@@ -49,8 +50,8 @@
 typename result_of::erase_key<Sequence const, Key>::type erase_key(Sequence const& seq);
 
-

Table 1.64. Parameters

-
+

Table 1.64. Parameters

+
@@ -77,12 +78,13 @@ @@ -95,7 +97,7 @@ -

- seq + seq

- A model of Associative + A model of Associative Sequence

- Key + Key

@@ -110,46 +112,47 @@
+
-
- - Expression +
+ + Expression Semantics
-erase_key<Key>(seq);
+erase_key<Key>(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, - except those with key Key. + Semantics: Returns a new sequence, containing + all the elements of seq, + except those with key Key.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/erase_key.hpp>
 #include <boost/fusion/include/erase_key.hpp>
 
- - Example + + Example
-assert(erase_key<int>(make_map<int, long>('a', 'b')) == make_map<long>('b'));
+assert(erase_key<int>(make_map<int, long>('a', 'b')) == make_map<long>('b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/filter.html b/doc/html/fusion/algorithm/transformation/functions/filter.html index 93e5f651..72e7c175 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter.html @@ -3,7 +3,7 @@ filter - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

For a given sequence, filter returns a new sequences containing only the elements of a specified type.

- - Synopsis + + Synopsis
 template<
     typename T,
     typename Sequence
     >
-typename result_of::filter<Sequence const, T>::type filter(Sequence const& seq);
+typename result_of::filter<Sequence const, T>::type filter(Sequence const& seq);
 
-

Table 1.53. Parameters

-
+

Table 1.53. Parameters

+
@@ -74,12 +73,13 @@ @@ -92,7 +92,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- T + T

@@ -107,48 +107,49 @@
+
-
- - Expression +
+ + Expression Semantics
-filter<T>(seq);
+filter<T>(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - all the elements of seq - of type T. Equivalent - to filter_if<boost::same_type<_, T> >(seq). + Semantics: Returns a sequence containing + all the elements of seq + of type T. Equivalent + to filter_if<boost::same_type<_, T> >(seq).

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/filter.hpp>
 #include <boost/fusion/include/filter.hpp>
 
- - Example + + Example
-const vector<int,int,long,long> vec(1,2,3,4);
-assert(filter<int>(vec) == make_vector(1,2));
+const vector<int,int,long,long> vec(1,2,3,4);
+assert(filter<int>(vec) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/filter_if.html b/doc/html/fusion/algorithm/transformation/functions/filter_if.html index 4e31dd82..d0c7000f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter_if.html @@ -3,7 +3,7 @@ filter_if - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,31 +24,30 @@
- - Description + + Description

- For a given sequence, filter_if returns a new sequences + For a given sequence, filter_if returns a new sequences containing only the elements with types for which a given MPL - Lambda Expression evaluates to boost::mpl::true_. + Lambda Expression evaluates to boost::mpl::true_.

- - Synopsis + + Synopsis
 template<
     typename Pred,
     typename Sequence
     >
-typename result_of::filter_if<Sequence const, Pred>::type filter_if(Sequence const& seq);
+typename result_of::filter_if<Sequence const, Pred>::type filter_if(Sequence const& seq);
 
-

Table 1.54. Parameters

-
+

Table 1.54. Parameters

+
@@ -75,12 +74,13 @@ @@ -93,7 +93,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -109,49 +109,50 @@
+
-
- - Expression +
+ + Expression Semantics
-filter_if<Pred>(seq);
+filter_if<Pred>(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - all the elements of seq - with types for which Pred - evaluates to boost::mpl::true_. The order of the retained elements + Semantics: Returns a sequence containing + all the elements of seq + with types for which Pred + evaluates to boost::mpl::true_. The order of the retained elements is the same as in the original sequence.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/filter_if.hpp>
 #include <boost/fusion/include/filter_if.hpp>
 
- - Example + + Example
-const vector<int,int,double,double> vec(1,2,3.0,4.0);
-assert(filter_if<is_integral<mpl::_> >(vec) == make_vector(1,2));
+const vector<int,int,double,double> vec(1,2,3.0,4.0);
+assert(filter_if<is_integral<mpl::_> >(vec) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert.html b/doc/html/fusion/algorithm/transformation/functions/insert.html index a46dfb3c..ac20b5bc 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert.html @@ -3,7 +3,7 @@ insert - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

Returns a new sequence with all the elements of the original, an a new element inserted the position described by a given iterator.

- - Synposis + + Synposis
 template<
@@ -47,8 +46,8 @@
 unspecified insert(Sequence const& seq, Pos const& pos, T const& t);
 
-

Table 1.65. Parameters

-
+

Table 1.65. Parameters

+
@@ -75,12 +74,13 @@ @@ -93,12 +93,13 @@ @@ -111,7 +112,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- pos + pos

- A model of Forward + A model of Forward Iterator

- t + t

@@ -126,49 +127,50 @@
+
-
- - Expression +
+ + Expression Semantics
-insert(seq, p, t);
+insert(seq, p, t);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, + Semantics: Returns a new sequence, containing + all the elements of seq, in their original order, and a new element with the type and value of - t inserted at iterator - pos. + t inserted at iterator + pos.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/insert.hpp>
 #include <boost/fusion/include/insert.hpp>
 
- - Example + + Example
-const vector<int,int> vec(1,2);
-assert(insert(vec, next(begin(vec)), 3) == make_vector(1,3,2));
+const vector<int,int> vec(1,2);
+assert(insert(vec, next(begin(vec)), 3) == make_vector(1,3,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert_range.html b/doc/html/fusion/algorithm/transformation/functions/insert_range.html index 9b326e0b..ed877215 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert_range.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert_range.html @@ -3,7 +3,7 @@ insert_range - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

Returns a new sequence with another sequence inserted at a specified iterator.

- - Synposis + + Synposis
 template<
@@ -44,12 +43,12 @@
     typename Pos,
     typename Range
     >
-typename result_of::insert_range<Sequence const, Pos, Range>::type insert_range(
+typename result_of::insert_range<Sequence const, Pos, Range>::type insert_range(
     Sequence const& seq, Pos const& pos, Range const& range);
 
-

Table 1.66. Parameters

-
+

Table 1.66. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,12 +94,13 @@ @@ -112,12 +113,13 @@ @@ -128,49 +130,50 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- pos + pos

- A model of Forward + A model of Forward Iterator

- range + range

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-insert(seq, pos, range);
+insert(seq, pos, range);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, - and the elements of range - inserted at iterator pos. + Semantics: Returns a new sequence, containing + all the elements of seq, + and the elements of range + inserted at iterator pos. All elements retaining their ordering from the orignal sequences.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/insert_range.hpp>
 #include <boost/fusion/include/insert_range.hpp>
 
- - Example + + Example
-const vector<int,int> vec(1,2);
-assert(insert_range(vec, next(begin(vec)), make_vector(3,4)) == make_vector(1,3,4,2));
+const vector<int,int> vec(1,2);
+assert(insert_range(vec, next(begin(vec)), make_vector(3,4)) == make_vector(1,3,4,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/join.html b/doc/html/fusion/algorithm/transformation/functions/join.html index d769e569..52804fef 100644 --- a/doc/html/fusion/algorithm/transformation/functions/join.html +++ b/doc/html/fusion/algorithm/transformation/functions/join.html @@ -3,7 +3,7 @@ join - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,29 +24,28 @@
-join -
+join
- - Description + + Description

Takes 2 sequences and returns a sequence containing the elements of the first followed by the elements of the second.

- - Synopsis + + Synopsis
 template<
     typename LhSequence,
     typename RhSequence>
-typename result_of::join<LhSequence, RhSequence>::type join(LhSequence const& lhs, RhSequence const& rhs);
+typename result_of::join<LhSequence, RhSequence>::type join(LhSequence const& lhs, RhSequence const& rhs);
 
-

Table 1.67. Parameters

-
+

Table 1.67. Parameters

+
@@ -73,12 +72,13 @@ @@ -91,12 +91,13 @@ @@ -107,49 +108,50 @@ -

- lhs + lhs

- A model of Forward + A model of Forward Sequence

- rhs + rhs

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-join(lhs, rhs);
+join(lhs, rhs);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - all the elements of lhs - followed by all the elements of rhs. + Semantics: Returns a sequence containing + all the elements of lhs + followed by all the elements of rhs. The order of th elements is preserved.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/join.hpp>
 #include <boost/fusion/include/join.hpp>
 
- - Example + + Example
-vector<int,char> v1(1, 'a');
-vector<int,char> v2(2, 'b');
-assert(join(v1, v2) == make_vector(1,'a',2,'b'));
+vector<int,char> v1(1, 'a');
+vector<int,char> v2(2, 'b');
+assert(join(v1, v2) == make_vector(1,'a',2,'b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/pop_back.html b/doc/html/fusion/algorithm/transformation/functions/pop_back.html index 6d9d07da..f82f9ed2 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_back.html @@ -3,7 +3,7 @@ pop_back - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,28 +24,27 @@
- - Description + + Description

Returns a new sequence, with the last element of the original removed.

- - Synopsis + + Synopsis
 template<
     typename Sequence
     >
-typename result_of::pop_back<Sequence const>::type pop_back(Sequence const& seq);
+typename result_of::pop_back<Sequence const>::type pop_back(Sequence const& seq);
 
-

Table 1.69. Parameters

-
+

Table 1.69. Parameters

+
@@ -71,12 +70,13 @@ @@ -86,47 +86,48 @@

-

- seq + seq

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-pop_back(seq);
+pop_back(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence containing - all the elements of seq, + Semantics: Returns a new sequence containing + all the elements of seq, except the last element. The elements in the new sequence are in the - same order as they were in seq. + same order as they were in seq.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/pop_back.hpp>
 #include <boost/fusion/include/pop_back.hpp>
 
- - Example + + Example
-assert(___pop_back__(make_vector(1,2,3)) == make_vector(1,2));
+assert(___pop_back__(make_vector(1,2,3)) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/pop_front.html b/doc/html/fusion/algorithm/transformation/functions/pop_front.html index 5a4ff794..526e745b 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_front.html @@ -3,7 +3,7 @@ pop_front - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,28 +24,27 @@
- - Description + + Description

Returns a new sequence, with the first element of the original removed.

- - Synopsis + + Synopsis
 template<
     typename Sequence
     >
-typename result_of::pop_front<Sequence const>::type pop_front(Sequence const& seq);
+typename result_of::pop_front<Sequence const>::type pop_front(Sequence const& seq);
 
-

Table 1.70. Parameters

-
+

Table 1.70. Parameters

+
@@ -71,12 +70,13 @@ @@ -86,47 +86,48 @@

-

- seq + seq

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-pop_front(seq);
+pop_front(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence containing - all the elements of seq, + Semantics: Returns a new sequence containing + all the elements of seq, except the first element. The elements in the new sequence are in the - same order as they were in seq. + same order as they were in seq.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/pop_front.hpp>
 #include <boost/fusion/include/pop_front.hpp>
 
- - Example + + Example
-assert(pop_front(make_vector(1,2,3)) == make_vector(2,3));
+assert(pop_front(make_vector(1,2,3)) == make_vector(2,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/push_back.html b/doc/html/fusion/algorithm/transformation/functions/push_back.html index 7722b3d2..ea79a915 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_back.html @@ -3,7 +3,7 @@ push_back - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Returns a new sequence with an element added at the end.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename T
     >
-typename result_of::push_back<Sequence, T>::type push_back(
+typename result_of::push_back<Sequence, T>::type push_back(
     Sequence const& seq, T const& t);
 
-

Table 1.71. Parameters

-
+

Table 1.71. Parameters

+
@@ -74,12 +73,13 @@ @@ -92,7 +92,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- t + t

@@ -107,47 +107,48 @@
+
-
- - Expression +
+ + Expression Semantics
-push_back(seq, t);
+push_back(seq, t);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, - and new element t appended - to the end. The elements are in the same order as they were in seq. + Semantics: Returns a new sequence, containing + all the elements of seq, + and new element t appended + to the end. The elements are in the same order as they were in seq.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/push_back.hpp>
 #include <boost/fusion/include/push_back.hpp>
 
- - Example + + Example
-assert(push_back(make_vector(1,2,3),4) == make_vector(1,2,3,4));
+assert(push_back(make_vector(1,2,3),4) == make_vector(1,2,3,4));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/push_front.html b/doc/html/fusion/algorithm/transformation/functions/push_front.html index d1013f95..3528ce78 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_front.html @@ -3,7 +3,7 @@ push_front - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Returns a new sequence with an element added at the beginning.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename T
     >
-typename result_of::push_front<Sequence, T>::type push_front(
+typename result_of::push_front<Sequence, T>::type push_front(
     Sequence const& seq, T const& t);
 
-

Table 1.72. Parameters

-
+

Table 1.72. Parameters

+
@@ -74,12 +73,13 @@ @@ -92,7 +92,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- t + t

@@ -107,48 +107,49 @@
+
-
- - Expression +
+ + Expression Semantics
-push_back(seq, t);
+push_back(seq, t);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, - and new element t appended + Semantics: Returns a new sequence, containing + all the elements of seq, + and new element t appended to the beginning. The elements are in the same order as they were in - seq. + seq.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/push_front.hpp>
 #include <boost/fusion/include/push_front.hpp>
 
- - Example + + Example
-assert(push_front(make_vector(1,2,3),0) == make_vector(0,1,2,3));
+assert(push_front(make_vector(1,2,3),0) == make_vector(0,1,2,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove.html b/doc/html/fusion/algorithm/transformation/functions/remove.html index bab0a518..259c052f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove.html @@ -3,7 +3,7 @@ remove - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Returns a new sequence, with all the elements of the original sequence, except those of a given type.

- - Synopsis + + Synopsis
 template<
     typename T,
     typename Sequence
     >
-typename result_of::remove<Sequence const, T>::type replace(Sequence const& seq);
+typename result_of::remove<Sequence const, T>::type replace(Sequence const& seq);
 
-

Table 1.59. Parameters

-
+

Table 1.59. Parameters

+
@@ -74,12 +73,13 @@ @@ -92,7 +92,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- T + T

@@ -107,48 +107,49 @@
+
-
- - Expression +
+ + Expression Semantics
-remove<T>(seq);
+remove<T>(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, - in their original order, except those of type T. - Equivalent to remove_if<boost::is_same<_,T> >(seq). + Semantics: Returns a new sequence, containing + all the elements of seq, + in their original order, except those of type T. + Equivalent to remove_if<boost::is_same<_,T> >(seq).

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/remove.hpp>
 #include <boost/fusion/include/remove.hpp>
 
- - Example + + Example
-const vector<int,double> vec(1,2.0);
-assert(remove<double>(vec) == make_vector(1));
+const vector<int,double> vec(1,2.0);
+assert(remove<double>(vec) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove_if.html b/doc/html/fusion/algorithm/transformation/functions/remove_if.html index 59773b47..1d875723 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove_if.html @@ -3,7 +3,7 @@ remove_if - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,30 +24,29 @@
- - Description + + Description

Returns a new sequence, containing all the elements of the original except - those where a given unary function object evaluates to true. + those where a given unary function object evaluates to true.

- - Synopsis + + Synopsis
 template<
     typename Pred,
     typename Sequence
     >
-typename result_of::remove_if<Sequence const, Pred>::type remove_if(Sequence const& seq);
+typename result_of::remove_if<Sequence const, Pred>::type remove_if(Sequence const& seq);
 
-

Table 1.60. Parameters

-
+

Table 1.60. Parameters

+
@@ -74,12 +73,13 @@ @@ -92,7 +92,7 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -108,49 +108,50 @@
+
-
- - Expression +
+ + Expression Semantics
-remove_if<Pred>(seq);
+remove_if<Pred>(seq);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - all the elements of seq, + Semantics: Returns a new sequence, containing + all the elements of seq, in their original order, except those elements with types for which - Pred evaluates to boost::mpl::true_. Equivalent to filter<boost::mpl::not_<Pred> - >(seq). + Pred evaluates to boost::mpl::true_. Equivalent to filter<boost::mpl::not_<Pred> + >(seq).

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/remove_if.hpp>
 #include <boost/fusion/include/remove_if.hpp>
 
- - Example + + Example
-const vector<int,double> vec(1,2.0);
-assert(remove_if<is_floating_point<mpl::_> >(vec) == make_vector(1));
+const vector<int,double> vec(1,2.0);
+assert(remove_if<is_floating_point<mpl::_> >(vec) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/replace.html b/doc/html/fusion/algorithm/transformation/functions/replace.html index cf9cd37e..a7c7c7e0 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace.html @@ -3,7 +3,7 @@ replace - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,31 +24,30 @@
- - Description + + Description

Replaces each value within a sequence of a given type and value with a new value.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename T
     >
-typename result_of::replace<Sequence const, T>::type replace(
+typename result_of::replace<Sequence const, T>::type replace(
     Sequence const& seq, T const& old_value, T const& new_value);
 
-

Table 1.57. Parameters

-
+

Table 1.57. Parameters

+
@@ -75,17 +74,18 @@ -

- seq + seq

- A model of Forward - Sequence, e == old_value - is a valid expression, convertible to bool, - for each element e - in seq with type - convertible to T + A model of Forward + Sequence, e == old_value + is a valid expression, convertible to bool, + for each element e + in seq with type + convertible to T

@@ -97,7 +97,7 @@

- old_value + old_value

@@ -114,7 +114,7 @@

- new_value + new_value

@@ -129,47 +129,48 @@
+
-
- - Expression +
+ + Expression Semantics
-replace(seq, old_value, new_value);
+replace(seq, old_value, new_value);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence with - all the values of seq - with new_value assigned - to elements with the same type and equal to old_value. + Semantics: Returns a new sequence with + all the values of seq + with new_value assigned + to elements with the same type and equal to old_value.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/replace.hpp>
 #include <boost/fusion/include/replace.hpp>
 
- - Example + + Example
-assert(replace(make_vector(1,2), 2, 3) == make_vector(1,3));
+assert(replace(make_vector(1,2), 2, 3) == make_vector(1,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/replace_if.html b/doc/html/fusion/algorithm/transformation/functions/replace_if.html index 567fe11f..2345f1d5 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace_if.html @@ -3,7 +3,7 @@ replace_if - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,32 +24,31 @@
- - Description + + Description

Replaces each element of a given sequence for which an unary function - object evaluates to true + object evaluates to true replaced with a new value.

- - Synopsis + + Synopsis
 template<
     typename Sequence,
     typename F,
     typename T>
-typename result_of::replace_if<Sequence const, F, T>::type replace_if(
+typename result_of::replace_if<Sequence const, F, T>::type replace_if(
     Sequence const& seq, F f, T const& new_value);
 
-

Table 1.58. Parameters

-
+

Table 1.58. Parameters

+
@@ -76,12 +75,13 @@ @@ -94,14 +94,14 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- f + f

- A function object for which f(e) is a valid expression, convertible - to bool, for each - element e in seq + A function object for which f(e) is a valid expression, convertible + to bool, for each + element e in seq

@@ -113,7 +113,7 @@

- new_value + new_value

@@ -128,45 +128,46 @@
+
-
- - Expression +
+ + Expression Semantics
-replace_if(seq, f, new_value);
+replace_if(seq, f, new_value);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence with - all the elements of seq, - with new_value assigned - to each element for which f - evaluates to true. + Semantics: Returns a new sequence with + all the elements of seq, + with new_value assigned + to each element for which f + evaluates to true.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/replace_if.hpp>
 #include <boost/fusion/include/replace_if.hpp>
 
- - Example + + Example
 struct odd
@@ -178,7 +179,7 @@
     }
 };
 ...
-assert(replace_if(make_vector(1,2), odd(), 3) == make_vector(3,2));
+assert(replace_if(make_vector(1,2), odd(), 3) == make_vector(3,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/reverse.html b/doc/html/fusion/algorithm/transformation/functions/reverse.html index 35bac585..6360f6ae 100644 --- a/doc/html/fusion/algorithm/transformation/functions/reverse.html +++ b/doc/html/fusion/algorithm/transformation/functions/reverse.html @@ -3,7 +3,7 @@ reverse - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,28 +24,27 @@
- - Description + + Description

Returns a new sequence with the elements of the original in reverse order.

- - Synposis + + Synposis
 template<
     typename Sequence
     >
-typename result_of::reverse<Sequence const>::type reverse(Sequence const& seq);
+typename result_of::reverse<Sequence const>::type reverse(Sequence const& seq);
 
-

Table 1.61. Parameters

-
+

Table 1.61. Parameters

+
@@ -71,12 +70,13 @@ @@ -86,46 +86,47 @@

-

- seq + seq

- A model of Bidirectional + A model of Bidirectional Sequence

+
-
- - Expression +
+ + Expression Semantics
-reverse(seq);
+reverse(seq);
 

- Return type: A model of Bidirectional + Return type: A model of Bidirectional Sequence.

- Semantics: Returns a new sequence containing - all the elements of seq + Semantics: Returns a new sequence containing + all the elements of seq in reverse order.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/reverse.hpp>
 #include <boost/fusion/include/reverse.hpp>
 
- - Example + + Example
-assert(reverse(make_vector(1,2,3)) == make_vector(3,2,1));
+assert(reverse(make_vector(1,2,3)) == make_vector(3,2,1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/transform.html b/doc/html/fusion/algorithm/transformation/functions/transform.html index d7676641..72062220 100644 --- a/doc/html/fusion/algorithm/transformation/functions/transform.html +++ b/doc/html/fusion/algorithm/transformation/functions/transform.html @@ -3,7 +3,7 @@ transform - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,21 @@
- - Description + + Description

- For a sequence seq and - function object or function pointer f, - transform returns a new - sequence with elements created by applying f(e) to each element of e - of seq. + For a sequence seq and + function object or function pointer f, + transform returns a new + sequence with elements created by applying f(e) to each element of e + of seq.

- - Unary + + Unary version synopsis
@@ -47,12 +46,12 @@
     typename Sequence,
     typename F
     >
-typename result_of::transform<Sequence const, F>::type transform(
+typename result_of::transform<Sequence const, F>::type transform(
     Sequence const& seq, F f);
 
-

Table 1.55. Parameters

-
+

Table 1.55. Parameters

+
@@ -79,12 +78,13 @@ @@ -97,15 +97,15 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- f + f

- f(e) - is a valid expression for each element e - of seq. boost::result_of<F(E)>::type is the return type of f when called with a value of - each element type E. + f(e) + is a valid expression for each element e + of seq. boost::result_of<F(E)>::type is the return type of f when called with a value of + each element type E.

@@ -115,28 +115,29 @@
+
-
- - Expression +
+ + Expression Semantics
-transform(seq, f);
+transform(seq, f);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence

- Semantics: Returns a new sequence, containing - the return values of f(e) for each element e - within seq. + Semantics: Returns a new sequence, containing + the return values of f(e) for each element e + within seq.

- - Binary + + Binary version synopsis
@@ -145,12 +146,12 @@
     typename Sequence2,
     typename F
     >
-typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
+typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
     Sequence1 const& seq1, Sequence2 const& seq2, F f);
 
-

Table 1.56. Parameters

-
+

Table 1.56. Parameters

+
@@ -177,12 +178,13 @@ @@ -195,12 +197,13 @@ @@ -213,16 +216,16 @@ -

- seq1 + seq1

- A model of Forward + A model of Forward Sequence

- seq2 + seq2

- A model of Forward + A model of Forward Sequence

- f + f

- f(e1,e2) - is a valid expression for each pair of elements e1 - of seq1 and e2 of seq2. - boost::result_of<F(E1,E2)>::type is the return type of f when called with elements of - type E1 and E2 + f(e1,e2) + is a valid expression for each pair of elements e1 + of seq1 and e2 of seq2. + boost::result_of<F(E1,E2)>::type is the return type of f when called with elements of + type E1 and E2

@@ -232,35 +235,36 @@
+
-

- Return type: A model of Forward +

+ Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - the return values of f(e1, e2) for each pair of elements e1 and e2 - within seq1 and seq2 respectively. + Semantics: Returns a new sequence, containing + the return values of f(e1, e2) for each pair of elements e1 and e2 + within seq1 and seq2 respectively.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/include/transform.hpp>
 
- - Example + + Example
 struct triple
@@ -273,7 +277,7 @@
     };
 };
 ...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
+assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/zip.html b/doc/html/fusion/algorithm/transformation/functions/zip.html index ed89d8ad..ed367e99 100644 --- a/doc/html/fusion/algorithm/transformation/functions/zip.html +++ b/doc/html/fusion/algorithm/transformation/functions/zip.html @@ -3,7 +3,7 @@ zip - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
-zip -
+zip
- - Description + + Description

Zips sequences together to form a single sequence, whos members are tuples of the members of the component sequences.

- - Synopsis + + Synopsis
 template<
@@ -45,12 +44,12 @@
     ...
     typename SequenceN
     >
-typename result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
+typename result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
 zip(Sequence1 const& seq1, Sequence2 const& seq2, ... SequenceN const& seqN);
 
-

Table 1.68. Parameters

-
+

Table 1.68. Parameters

+
@@ -76,12 +75,13 @@ @@ -91,53 +91,54 @@

-

- seq1 to seqN + seq1 to seqN

- Each sequence is a model of Forward + Each sequence is a model of Forward Sequence.

+
-
- - Expression +
+ + Expression Semantics
-zip(seq1, seq2, ... seqN);
+zip(seq1, seq2, ... seqN);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - tuples of elements from sequences seq1 - to seqN. For example, - applying zip to tuples (1, 2, 3) - and ('a', 'b', - 'c') - would return ((1, 'a'),(2, 'b'),(3, - 'c')) + Semantics: Returns a sequence containing + tuples of elements from sequences seq1 + to seqN. For example, + applying zip to tuples (1, 2, 3) + and ('a', 'b', + 'c') + would return ((1, 'a'),(2, 'b'),(3, + 'c'))

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/zip.hpp>
 #include <boost/fusion/include/zip.hpp>
 
- - Example + + Example
-vector<int,char> v1(1, 'a');
-vector<int,char> v2(2, 'b');
-assert(zip(v1, v2) == make_vector(make_vector(1, 2),make_vector('a', 'b'));
+vector<int,char> v1(1, 'a');
+vector<int,char> v2(2, 'b');
+assert(zip(v1, v2) == make_vector(make_vector(1, 2),make_vector('a', 'b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions.html b/doc/html/fusion/algorithm/transformation/metafunctions.html index 89b55fd6..f6bad707 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
filter
filter_if
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html index c1ba3c21..a4487787 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html @@ -3,7 +3,7 @@ clear - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of clear, given the input sequence + Returns the result type of clear, given the input sequence type.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.82. Parameters

-
+

Table 1.82. Parameters

+
@@ -75,7 +74,7 @@ -

- Sequence + Sequence

@@ -89,33 +88,34 @@

+
-
- - Expression +
+ + Expression Semantics
-result_of::clear<Sequence>::type
+result_of::clear<Sequence>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns an empty sequence. + Semantics: Returns an empty sequence.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/clear.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
index 2a67cdc1..b09ce582 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
@@ -3,7 +3,7 @@
 
 erase
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@

- Returns the result type of erase, given the input sequence + Returns the result type of erase, given the input sequence and range delimiting iterator types.

- - Description + + Description
- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.83. Parameters

-
+

Table 1.83. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,12 +95,13 @@ @@ -113,12 +114,13 @@ @@ -129,46 +131,48 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- It1 + It1

- A model of Forward + A model of Forward Iterator

- It2 + It2

- A model of Forward + A model of Forward Iterator

+
-
- - Expression +
+ + Expression Semantics
-result_of::erase<Sequence, It1>::type
+result_of::erase<Sequence, It1>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence with - the element at It1 removed. + Semantics: Returns a new sequence with + the element at It1 removed.

-result_of::erase<Sequence, It1, It2>::type
+result_of::erase<Sequence, It1, It2>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence with - the elements between It1 - and It2 removed. + Semantics: Returns a new sequence with + the elements between It1 + and It2 removed.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/erase.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html
index fb8856f2..c063d91f 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html
@@ -3,7 +3,7 @@
 
 erase_key
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of erase_key, given the sequence + Returns the result type of erase_key, given the sequence and key types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.84. Parameters

-
+

Table 1.84. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Associative + A model of Associative Sequence

- Key + Key

@@ -110,35 +110,36 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::erase_key<Sequence, Key>::type
+result_of::erase_key<Sequence, Key>::type
 

- Return type: A model of Associative + Return type: A model of Associative Sequence.

- Semantics: Returns a sequence with the - elements of Sequence, - except those with key Key. + Semantics: Returns a sequence with the + elements of Sequence, + except those with key Key.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/erase_key.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
index 93d0e2c4..22688844 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
@@ -3,7 +3,7 @@
 
 filter
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of filter given the sequence type + Returns the result type of filter given the sequence type and type to retain.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.73. Parameter

-
+

Table 1.73. Parameter

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,37 +110,38 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::filter<Sequence, T>::type
+result_of::filter<Sequence, T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - the elements of Sequence - that are of type T. Equivalent - to result_of::filter_if<Sequence, - boost::is_same<mpl::_, T> >::type. + Semantics: Returns a sequence containing + the elements of Sequence + that are of type T. Equivalent + to result_of::filter_if<Sequence, + boost::is_same<mpl::_, T> >::type.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/filter.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html
index 47194fdc..2d696bc8 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html
@@ -3,7 +3,7 @@
 
 filter_if
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,20 +24,19 @@
- - Description + + Description

- Returns the result type of filter_if given the sequence + Returns the result type of filter_if given the sequence and unary MPL Lambda Expression predicate type.

- - Synopsis + + Synopsis
 template<
@@ -50,8 +49,8 @@
 };
 
-

Table 1.74. Parameter

-
+

Table 1.74. Parameter

+
@@ -78,12 +77,13 @@ @@ -96,7 +96,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -112,36 +112,37 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::filter_if<Sequence, Pred>::type
+result_of::filter_if<Sequence, Pred>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - the elements of Sequence - for which Pred evaluates - to boost::mpl::true_. + Semantics: Returns a sequence containing + the elements of Sequence + for which Pred evaluates + to boost::mpl::true_.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/filter_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
index feb560bc..9f1bc538 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
@@ -3,7 +3,7 @@
 
 insert
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of insert, given the sequence, + Returns the result type of insert, given the sequence, position iterator and insertion types.

- - Synopsis + + Synopsis
 template<
@@ -50,8 +49,8 @@
 };
 
-

Table 1.85. Parameters

-
+

Table 1.85. Parameters

+
@@ -78,12 +77,13 @@ @@ -96,12 +96,13 @@ @@ -114,7 +115,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Position + Position

- A model of Forward + A model of Forward Iterator

- T + T

@@ -129,36 +130,37 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::insert<Sequence, Position, T>::type
+result_of::insert<Sequence, Position, T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with an - element of type T inserted - at position Position - in Sequence. + Semantics: Returns a sequence with an + element of type T inserted + at position Position + in Sequence.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/insert.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html
index 08113676..b70d3a87 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html
@@ -3,7 +3,7 @@
 
 insert_range
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of insert_range, given the input + Returns the result type of insert_range, given the input sequence, position iterator and insertion range types.

- - Synopsis + + Synopsis
 template<
@@ -50,8 +49,8 @@
 };
 
-

Table 1.86. Parameters

-
+

Table 1.86. Parameters

+
@@ -78,12 +77,13 @@ @@ -96,12 +96,13 @@ @@ -114,12 +115,13 @@ @@ -130,36 +132,37 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Position + Position

- A model of Forward + A model of Forward Iterator

- Range + Range

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-result_of::insert_range<Sequence, Position, Range>::type
+result_of::insert_range<Sequence, Position, Range>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with the - elements of Range inserted - at position Position - into Sequence. + Semantics: Returns a sequence with the + elements of Range inserted + at position Position + into Sequence.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/insert_range.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/join.html b/doc/html/fusion/algorithm/transformation/metafunctions/join.html
index 2b0d7fb6..93f693ed 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/join.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/join.html
@@ -3,7 +3,7 @@
 
 join
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
-join -
+join
- - Description + + Description

Returns the result of joining 2 sequences, given the sequence types.

- - Synopsis + + Synopsis
 template<
@@ -48,33 +47,34 @@
 };
 
- - Expression + + Expression Semantics
-result_of::join<LhSequence, RhSequence>::type
+result_of::join<LhSequence, RhSequence>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - the elements of LhSequence - followed by the elements of RhSequence. + Semantics: Returns a sequence containing + the elements of LhSequence + followed by the elements of RhSequence. The order of the elements in the 2 sequences is preserved.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/join.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html
index 523a3812..ad364d9c 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html
@@ -3,7 +3,7 @@
 
 pop_back
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of pop_back, given the input sequence + Returns the result type of pop_back, given the input sequence type.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.87. Parameters

-
+

Table 1.87. Parameters

+
@@ -75,12 +74,13 @@ @@ -90,35 +90,36 @@

-

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-result_of::pop_back<Sequence>::type
+result_of::pop_back<Sequence>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with all - the elements of Sequence + Semantics: Returns a sequence with all + the elements of Sequence except the last element.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/tranformation/pop_back.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html
index 9cbf01ab..11a37984 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html
@@ -3,7 +3,7 @@
 
 pop_front
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of pop_front, given the input sequence + Returns the result type of pop_front, given the input sequence type.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.88. Parameters

-
+

Table 1.88. Parameters

+
@@ -75,12 +74,13 @@ @@ -90,28 +90,29 @@

-

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

+
-
- - Expression +
+ + Expression Semantics
-result_of::pop_front<Sequence>::type
+result_of::pop_front<Sequence>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with all - the elements of Sequence + Semantics: Returns a sequence with all + the elements of Sequence except the first element.

- - Complexity + + Complexity

Constant. diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html index 37389e12..8e276645 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html @@ -3,7 +3,7 @@ push_back - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of push_back, given the types of + Returns the result type of push_back, given the types of the input sequence and element to push.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.89. Parameters

-
+

Table 1.89. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,29 +110,30 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::push_back<Sequence, T>::type
+result_of::push_back<Sequence, T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with the - elements of Sequence - and an element of type T + Semantics: Returns a sequence with the + elements of Sequence + and an element of type T added to the end.

- - Complexity + + Complexity

Constant. diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html index bf20eb9d..ad67daff 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html @@ -3,7 +3,7 @@ push_front - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of push_front, given the types + Returns the result type of push_front, given the types of the input sequence and element to push.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.90. Parameters

-
+

Table 1.90. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,29 +110,30 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::push_front<Sequence, T>::type
+result_of::push_front<Sequence, T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence with the - elements of Sequence - and an element of type T + Semantics: Returns a sequence with the + elements of Sequence + and an element of type T added to the beginning.

- - Complexity + + Complexity

Constant. diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html index 0096701d..9a3acace 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html @@ -3,7 +3,7 @@ remove - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of remove, given the sequence and + Returns the result type of remove, given the sequence and removal types.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.79. Parameters

-
+

Table 1.79. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,37 +110,38 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::remove<Sequence, T>::type
+result_of::remove<Sequence, T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - the elements of Sequence - not of type T. Equivalent - to result_of::replace_if<Sequence, - boost::is_same<mpl::_, T> >::type. + Semantics: Returns a sequence containing + the elements of Sequence + not of type T. Equivalent + to result_of::replace_if<Sequence, + boost::is_same<mpl::_, T> >::type.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/remove.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html
index 44d4c51f..44468eb4 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html
@@ -3,7 +3,7 @@
 
 remove_if
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,20 +24,19 @@
- - Description + + Description

- Returns the result type of remove_if, given the input sequence + Returns the result type of remove_if, given the input sequence and unary MPL Lambda Expression predicate types.

- - Synopsis + + Synopsis
 template<
@@ -50,8 +49,8 @@
 };
 
-

Table 1.80. Parameters

-
+

Table 1.80. Parameters

+
@@ -78,12 +77,13 @@ @@ -96,7 +96,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- Pred + Pred

@@ -107,41 +107,42 @@

- Remove elements which evaluate to boost::mpl::true_ + Remove elements which evaluate to boost::mpl::true_

+
-
- - Expression +
+ + Expression Semantics
-result_of::remove_if<Sequence, Pred>::type
+result_of::remove_if<Sequence, Pred>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns a sequence containing - the elements of Sequence - for which Pred evaluates - to boost::mpl::false_. + Semantics: Returns a sequence containing + the elements of Sequence + for which Pred evaluates + to boost::mpl::false_.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/remove_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
index 99a1869c..af240b9d 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
@@ -3,7 +3,7 @@
 
 replace
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of replace, given the types of + Returns the result type of replace, given the types of the input sequence and element to replace.

- - Synopsis + + Synopsis
 template<
@@ -49,8 +48,8 @@
 };
 
-

Table 1.77. Parameters

-
+

Table 1.77. Parameters

+
@@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- T + T

@@ -110,34 +110,35 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::replace<Sequence,T>::type
+result_of::replace<Sequence,T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns the return type of - replace. + Semantics: Returns the return type of + replace.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/replace.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html
index e9b535ff..26ac64bb 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html
@@ -3,7 +3,7 @@
 
 replace_if
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,20 +24,20 @@
- - Description + + Description

- Returns the result type of replace_if, given the types - of the sequence, Polymorphic + Returns the result type of replace_if, given the types + of the sequence, Polymorphic Function Object predicate and replacement object.

- - Synopsis + + Synopsis
 template<
@@ -50,8 +50,8 @@
 };
 
-

Table 1.78. Parameters

-
+

Table 1.78. Parameters

+
@@ -78,12 +78,13 @@ @@ -96,12 +97,13 @@ @@ -114,7 +116,7 @@ -

- Sequence + Sequence

- A model of Forward + A model of Forward Sequence

- F + F

- A model of unary Polymorphic + A model of unary Polymorphic Function Object

- T + T

@@ -129,34 +131,35 @@
+
-
- - Expression +
+ + Expression Semantics
-result_of::replace_if<Sequence,F,T>::type
+result_of::replace_if<Sequence,F,T>::type
 

- Return type: A model of Forward + Return type: A model of Forward Sequence.

- Semantics: Returns the return type of - replace_if. + Semantics: Returns the return type of + replace_if.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/replace_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
index 3e69d744..84a08e9f 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
@@ -3,7 +3,7 @@
 
 reverse
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
- - Description + + Description

- Returns the result type of reverse, given the input sequence + Returns the result type of reverse, given the input sequence type.

- - Synopsis + + Synopsis
 template<
@@ -48,8 +47,8 @@
 };
 
-

Table 1.81. Parameters

-
+

Table 1.81. Parameters

+
@@ -75,12 +74,13 @@ @@ -90,34 +90,35 @@

-

- Sequence + Sequence

- A model of Bidirectional + A model of Bidirectional Sequence

+
-
- - Expression +
+ + Expression Semantics
-result_of::reverse<Sequence>::type
+result_of::reverse<Sequence>::type
 

- Return type: A model of Bidirectional + Return type: A model of Bidirectional Sequence.

- Semantics: Returns a sequence with the - elements in the reverse order to Sequence. + Semantics: Returns a sequence with the + elements in the reverse order to Sequence.

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/reverse.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
index 094a88fd..9f9c7e0f 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
@@ -3,7 +3,7 @@
 
 transform
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,22 +24,21 @@
- - Description + + Description

- For a sequence seq and - function object or function pointer f, - transform returns a new - sequence with elements created by applying f(e) to each element of e - of seq. + For a sequence seq and + function object or function pointer f, + transform returns a new + sequence with elements created by applying f(e) to each element of e + of seq.

- - Unary + + Unary version synopsis
@@ -47,12 +46,12 @@
     typename Sequence,
     typename F
     >
-typename result_of::transform<Sequence const, F>::type transform(
+typename result_of::transform<Sequence const, F>::type transform(
     Sequence const& seq, F f);
 
-

Table 1.75. Parameters

-
+

Table 1.75. Parameters

+
@@ -79,12 +78,13 @@ @@ -97,15 +97,15 @@ -

- seq + seq

- A model of Forward + A model of Forward Sequence

- f + f

- f(e) - is a valid expression for each element e - of seq. boost::result_of<F(E)>::type is the return type of f when called with a value of - each element type E. + f(e) + is a valid expression for each element e + of seq. boost::result_of<F(E)>::type is the return type of f when called with a value of + each element type E.

@@ -115,28 +115,29 @@
+
-
- - Expression +
+ + Expression Semantics
-transform(seq, f);
+transform(seq, f);
 

- Return type: A model of Forward + Return type: A model of Forward Sequence

- Semantics: Returns a new sequence, containing - the return values of f(e) for each element e - within seq. + Semantics: Returns a new sequence, containing + the return values of f(e) for each element e + within seq.

- - Binary + + Binary version synopsis
@@ -145,12 +146,12 @@
     typename Sequence2,
     typename F
     >
-typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
+typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
     Sequence1 const& seq1, Sequence2 const& seq2, F f);
 
-

Table 1.76. Parameters

-
+

Table 1.76. Parameters

+
@@ -177,12 +178,13 @@ @@ -195,12 +197,13 @@ @@ -213,16 +216,16 @@ -

- seq1 + seq1

- A model of Forward + A model of Forward Sequence

- seq2 + seq2

- A model of Forward + A model of Forward Sequence

- f + f

- f(e1,e2) - is a valid expression for each pair of elements e1 - of seq1 and e2 of seq2. - boost::result_of<F(E1,E2)>::type is the return type of f when called with elements of - type E1 and E2 + f(e1,e2) + is a valid expression for each pair of elements e1 + of seq1 and e2 of seq2. + boost::result_of<F(E1,E2)>::type is the return type of f when called with elements of + type E1 and E2

@@ -232,35 +235,36 @@
+
-

- Return type: A model of Forward +

+ Return type: A model of Forward Sequence.

- Semantics: Returns a new sequence, containing - the return values of f(e1, e2) for each pair of elements e1 and e2 - within seq1 and seq2 respectively. + Semantics: Returns a new sequence, containing + the return values of f(e1, e2) for each pair of elements e1 and e2 + within seq1 and seq2 respectively.

- - Complexity + + Complexity

Constant. Returns a view which is lazily evaluated.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/include/transform.hpp>
 
- - Example + + Example
 struct triple
@@ -273,7 +277,7 @@
     };
 };
 ...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
+assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html index 701fef69..2cb12b87 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html @@ -3,7 +3,7 @@ zip - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@
-zip -
+zip
- - Description + + Description

Zips sequences together to form a single sequence, whos members are tuples of the members of the component sequences.

- - Synopsis + + Synopsis
 template<
@@ -51,38 +50,38 @@
 };
 
- - Expression + + Expression Semantics
-result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
+result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
 

- Return type: A model of the most restrictive - traversal category of sequences Sequence1 - to SequenceN. + Return type: A model of the most restrictive + traversal category of sequences Sequence1 + to SequenceN.

- Semantics: Return a sequence containing + Semantics: Return a sequence containing tuples of elements from each sequence. For example, applying zip to tuples - (1, 2, - 3) - and ('a', 'b', - 'c') - would return ((1, 'a'),(2, 'b'),(3, - 'c')) + (1, 2, + 3) + and ('a', 'b', + 'c') + would return ((1, 'a'),(2, 'b'),(3, + 'c'))

- - Complexity + + Complexity

Constant.

- - Header + + Header
 #include <boost/fusion/algorithm/transformation/zip.hpp>
diff --git a/doc/html/fusion/change_log.html b/doc/html/fusion/change_log.html
index 1b6c2bca..8c356fee 100644
--- a/doc/html/fusion/change_log.html
+++ b/doc/html/fusion/change_log.html
@@ -3,7 +3,7 @@
 
 Change log
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@

This section summarizes significant changes to the Fusion library.

  • - Sep 27, 2006: Added boost::tuple + Sep 27, 2006: Added boost::tuple support. (Joel de Guzman)
  • - Nov 17, 2006: Added boost::variant + Nov 17, 2006: Added boost::variant support. (Joel de Guzman)
  • @@ -48,12 +47,12 @@ May 8, 2007: Added associative struct adapter. (Dan Marsden)
  • - Dec 20, 2007: Removed boost::variant + Dec 20, 2007: Removed boost::variant support. After thorough investigation, I think now that the move to make variant a fusion sequence is rather quirky. A variant will always have a size==1 regardless of the number of types it can contain and there's no way to know at compile time what it contains. Iterating over its types is simply - wrong. All these imply that the variant is not + wrong. All these imply that the variant is not a fusion sequence. (Joel de Guzman)
diff --git a/doc/html/fusion/container.html b/doc/html/fusion/container.html index 774aa517..a08ca223 100644 --- a/doc/html/fusion/container.html +++ b/doc/html/fusion/container.html @@ -3,19 +3,20 @@ Container - + - + - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +25,7 @@
vector
cons
@@ -45,13 +45,13 @@

Fusion provides a few predefined sequences out of the box. These containers - actually hold heterogenously typed data; unlike Views. + actually hold heterogenously typed data; unlike Views. These containers are more or less counterparts of those in STL.

-

- - Header -

+

+ + Header +

 #include <boost/fusion/container.hpp>
 #include <boost/fusion/include/container.hpp>
diff --git a/doc/html/fusion/container/cons.html b/doc/html/fusion/container/cons.html
index cf605a60..c98541f8 100644
--- a/doc/html/fusion/container/cons.html
+++ b/doc/html/fusion/container/cons.html
@@ -3,7 +3,7 @@
 
 cons
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,43 +24,43 @@

-cons -

-
- - Description -
+cons
+

+ + Description +

- cons is a simple Forward - Sequence. It is a lisp style recursive list structure where car is the head and - cdr is the tail: - usually another cons structure or nil: - the empty list. Fusion's list is built on top of this more - primitive data structure. It is more efficient than vector when the target sequence + cons is a simple Forward + Sequence. It is a lisp style recursive list structure where car is the head and + cdr is the tail: + usually another cons structure or nil: + the empty list. Fusion's list is built on top of this more + primitive data structure. It is more efficient than vector when the target sequence is constructed piecemeal (a data at a time). The runtime cost of access to - each element is peculiarly constant (see Recursive + each element is peculiarly constant (see Recursive Inlined Functions).

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/list/cons.hpp>
 #include <boost/fusion/include/cons.hpp>
 
-
- - Synopsis -
+

+ + Synopsis +

 template <typename Car, typename Cdr = nil>
 struct cons;
 
-
- - Template parameters -
+

+ + Template parameters +

@@ -88,7 +88,7 @@

- Car + Car

@@ -104,7 +104,7 @@

- Cdr + Cdr

@@ -114,59 +114,62 @@

- nil + nil

-
- - Model of -
- +

+ + Model of +

+

Notation

-
nil
+
nil

- An empty cons + An empty cons

-
C
+
C

- A cons type + A cons type

-
l, - l2
+
l, + l2

- Instances of cons + Instances of cons

-
car
+
car

An arbitrary data

-
cdr
+
cdr

- Another cons list + Another cons list

-
s
+
s

- A Forward Sequence + A Forward Sequence

-
N
+
N

An MPL Integral Constant

-
- - Expression Semantics -
+

+ + Expression Semantics +

Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

@@ -190,7 +193,7 @@ @@ -227,80 +230,81 @@

- nil() + nil()

@@ -202,7 +205,7 @@

- C() + C()

@@ -214,12 +217,12 @@

- C(car) + C(car)

- Creates a cons with car + Creates a cons with car head and default constructed tail.

- C(car, - cdr) + C(car, + cdr)

- Creates a cons with car - head and cdr tail. + Creates a cons with car + head and cdr tail.

- C(s) + C(s)

- Copy constructs a cons from a Forward - Sequence, s. + Copy constructs a cons from a Forward + Sequence, s.

- l = - s + l = + s

- Assigns to a cons, l, - from a Forward - Sequence, s. + Assigns to a cons, l, + from a Forward + Sequence, s.

- at<N>(l) + at<N>(l)

- The Nth element from the beginning of the sequence; see at. + The Nth element from the beginning of the sequence; see at.

- +

+ + Example +

 cons<int, cons<float> > l(12, cons<float>(5.5f));
-std::cout << at_c<0>(l) << std::endl;
-std::cout << at_c<1>(l) << std::endl;
+std::cout << at_c<0>(l) << std::endl;
+std::cout << at_c<1>(l) << std::endl;
 
diff --git a/doc/html/fusion/container/conversion.html b/doc/html/fusion/container/conversion.html index ee12e4e5..7b0a4c9d 100644 --- a/doc/html/fusion/container/conversion.html +++ b/doc/html/fusion/container/conversion.html @@ -3,7 +3,7 @@ Conversion - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,20 +24,19 @@

- All fusion sequences can be converted to one of the Container + All fusion sequences can be converted to one of the Container types using one of these conversion functions.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/include/convert.hpp>
 
diff --git a/doc/html/fusion/container/conversion/functions.html b/doc/html/fusion/container/conversion/functions.html index 58d5595e..62891875 100644 --- a/doc/html/fusion/container/conversion/functions.html +++ b/doc/html/fusion/container/conversion/functions.html @@ -3,7 +3,7 @@ Functions - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
as_list
as_vector
diff --git a/doc/html/fusion/container/conversion/functions/as_list.html b/doc/html/fusion/container/conversion/functions/as_list.html index 629247c7..1c0c7a3d 100644 --- a/doc/html/fusion/container/conversion/functions/as_list.html +++ b/doc/html/fusion/container/conversion/functions/as_list.html @@ -3,7 +3,7 @@ as_list - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Convert a fusion sequence to a list. + Convert a fusion sequence to a list.

- - Synopsis + + Synopsis
 template <typename Sequence>
@@ -47,8 +46,8 @@
 as_list(Sequence const& seq);
 
- - Parameters + + Parameters
@@ -76,7 +75,7 @@

- seq + seq

@@ -92,34 +91,34 @@
- - Expression + + Expression Semantics
 as_list(seq);
 

- Return type: result_of::as_list<Sequence>::type + Return type: result_of::as_list<Sequence>::type

- Semantics: Convert a fusion sequence, - seq, to a list. + Semantics: Convert a fusion sequence, + seq, to a list.

- - Header + + Header
 #include <boost/fusion/container/list/convert.hpp>
 #include <boost/fusion/include/as_list.hpp>
 
- - Example + + Example
-as_list(make_vector('x', 123, "hello"))
+as_list(make_vector('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_map.html b/doc/html/fusion/container/conversion/functions/as_map.html index 1337429b..19299e93 100644 --- a/doc/html/fusion/container/conversion/functions/as_map.html +++ b/doc/html/fusion/container/conversion/functions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Convert a fusion sequence to a map. + Convert a fusion sequence to a map.

- - Synopsis + + Synopsis
 template <typename Sequence>
@@ -47,8 +46,8 @@
 as_map(Sequence const& seq);
 
- - Parameters + + Parameters
@@ -76,7 +75,7 @@

- seq + seq

@@ -92,41 +91,41 @@
- - Expression + + Expression Semantics
 as_map(seq);
 

- Return type: result_of::as_map<Sequence>::type + Return type: result_of::as_map<Sequence>::type

- Semantics: Convert a fusion sequence, - seq, to a map. + Semantics: Convert a fusion sequence, + seq, to a map.

- Precondition: The elements of the sequence + Precondition: The elements of the sequence are assumed to be __fusionpair_s. - There may be no duplicate fusion::pair key types. + There may be no duplicate fusion::pair key types.

- - Header + + Header
 #include <boost/fusion/container/map/convert.hpp>
 #include <boost/fusion/include/as_map.hpp>
 
- - Example + + Example
-as_map(make_vector(
-    make_pair<int>('X')
-  , make_pair<double>("Men")))
+as_map(make_vector(
+    make_pair<int>('X')
+  , make_pair<double>("Men")))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_set.html b/doc/html/fusion/container/conversion/functions/as_set.html index c901224b..edede9ee 100644 --- a/doc/html/fusion/container/conversion/functions/as_set.html +++ b/doc/html/fusion/container/conversion/functions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Convert a fusion sequence to a set. + Convert a fusion sequence to a set.

- - Synopsis + + Synopsis
 template <typename Sequence>
@@ -47,8 +46,8 @@
 as_set(Sequence const& seq);
 
- - Parameters + + Parameters
@@ -76,7 +75,7 @@

- seq + seq

@@ -92,38 +91,38 @@
- - Expression + + Expression Semantics
 as_set(seq);
 

- Return type: result_of::as_set<Sequence>::type + Return type: result_of::as_set<Sequence>::type

- Semantics: Convert a fusion sequence, - seq, to a set. + Semantics: Convert a fusion sequence, + seq, to a set.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/set/convert.hpp>
 #include <boost/fusion/include/as_set.hpp>
 
- - Example + + Example
-as_set(make_vector('x', 123, "hello"))
+as_set(make_vector('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_vector.html b/doc/html/fusion/container/conversion/functions/as_vector.html index f3f30411..d390bd72 100644 --- a/doc/html/fusion/container/conversion/functions/as_vector.html +++ b/doc/html/fusion/container/conversion/functions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Convert a fusion sequence to a vector. + Convert a fusion sequence to a vector.

- - Synopsis + + Synopsis
 template <typename Sequence>
@@ -47,8 +46,8 @@
 as_vector(Sequence const& seq);
 
- - Parameters + + Parameters
@@ -76,7 +75,7 @@

- seq + seq

@@ -92,34 +91,34 @@
- - Expression + + Expression Semantics
 as_vector(seq);
 

- Return type: result_of::as_vector<Sequence>::type + Return type: result_of::as_vector<Sequence>::type

- Semantics: Convert a fusion sequence, - seq, to a vector. + Semantics: Convert a fusion sequence, + seq, to a vector.

- - Header + + Header
 #include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/include/as_vector.hpp>
 
- - Example + + Example
-as_vector(make_list('x', 123, "hello"))
+as_vector(make_list('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/metafunctions.html b/doc/html/fusion/container/conversion/metafunctions.html index 7ae55d1d..9e033417 100644 --- a/doc/html/fusion/container/conversion/metafunctions.html +++ b/doc/html/fusion/container/conversion/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
as_list
as_vector
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_list.html b/doc/html/fusion/container/conversion/metafunctions/as_list.html index 39085c5d..ffe16a67 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_list.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_list.html @@ -3,7 +3,7 @@ as_list - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

- Returns the result type of as_list. + Returns the result type of as_list.

- - Synopsis + + Synopsis
 template <typename Sequence>
 struct as_list;
 
- - Parameters + + Parameters
@@ -71,12 +70,12 @@

- Sequence + Sequence

- A fusion Sequence + A fusion Sequence

@@ -87,35 +86,35 @@
- - Expression + + Expression Semantics
 result_of::as_list<Sequence>::type;
 

- Return type: A list with same elements as the - input sequence, Sequence. + Return type: A list with same elements as the + input sequence, Sequence.

- Semantics: Convert a fusion sequence, - Sequence, to a list. + Semantics: Convert a fusion sequence, + Sequence, to a list.

- - Header + + Header
 #include <boost/fusion/container/list/convert.hpp>
 #include <boost/fusion/include/as_list.hpp>
 
- - Example + + Example
-result_of::as_list<vector<char, int> >::type
+result_of::as_list<vector<char, int> >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_map.html b/doc/html/fusion/container/conversion/metafunctions/as_map.html index 66c08547..674cd94a 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_map.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

- Returns the result type of as_map. + Returns the result type of as_map.

- - Synopsis + + Synopsis
 template <typename Sequence>
 struct as_map;
 
- - Parameters + + Parameters
@@ -71,12 +70,12 @@

- Sequence + Sequence

- A fusion Sequence + A fusion Sequence

@@ -87,42 +86,42 @@
- - Expression + + Expression Semantics
 result_of::as_map<Sequence>::type;
 

- Return type: A map with same elements as the - input sequence, Sequence. + Return type: A map with same elements as the + input sequence, Sequence.

- Semantics: Convert a fusion sequence, - Sequence, to a map. + Semantics: Convert a fusion sequence, + Sequence, to a map.

- Precondition: The elements of the sequence + Precondition: The elements of the sequence are assumed to be __fusionpair_s. - There may be no duplicate fusion::pair key types. + There may be no duplicate fusion::pair key types.

- - Header + + Header
 #include <boost/fusion/container/map/convert.hpp>
 #include <boost/fusion/include/as_map.hpp>
 
- - Example + + Example
-result_of::as_map<vector<
-    fusion::pair<int, char>
-  , fusion::pair<double, std::string> > >::type
+result_of::as_map<vector<
+    fusion::pair<int, char>
+  , fusion::pair<double, std::string> > >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_set.html b/doc/html/fusion/container/conversion/metafunctions/as_set.html index 4d4ab6bc..a1df58c6 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_set.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

- Returns the result type of as_set. + Returns the result type of as_set.

- - Synopsis + + Synopsis
 template <typename Sequence>
 struct as_set;
 
- - Parameters + + Parameters
@@ -71,12 +70,12 @@

- Sequence + Sequence

- A fusion Sequence + A fusion Sequence

@@ -87,39 +86,39 @@
- - Expression + + Expression Semantics
 result_of::as_set<Sequence>::type;
 

- Return type: A set with same elements as the - input sequence, Sequence. + Return type: A set with same elements as the + input sequence, Sequence.

- Semantics: Convert a fusion sequence, - Sequence, to a set. + Semantics: Convert a fusion sequence, + Sequence, to a set.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/set/convert.hpp>
 #include <boost/fusion/include/as_set.hpp>
 
- - Example + + Example
-result_of::as_set<vector<char, int> >::type
+result_of::as_set<vector<char, int> >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_vector.html b/doc/html/fusion/container/conversion/metafunctions/as_vector.html index 92085c12..785ce953 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_vector.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

- Returns the result type of as_vector. + Returns the result type of as_vector.

- - Synopsis + + Synopsis
 template <typename Sequence>
 struct as_vector;
 
- - Parameters + + Parameters
@@ -71,12 +70,12 @@

- Sequence + Sequence

- A fusion Sequence + A fusion Sequence

@@ -87,35 +86,35 @@
- - Expression + + Expression Semantics
 result_of::as_vector<Sequence>::type;
 

- Return type: A vector with same elements as - the input sequence, Sequence. + Return type: A vector with same elements as + the input sequence, Sequence.

- Semantics: Convert a fusion sequence, - Sequence, to a vector. + Semantics: Convert a fusion sequence, + Sequence, to a vector.

- - Header + + Header
 #include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/include/as_vector.hpp>
 
- - Example + + Example
-result_of::as_vector<list<char, int> >::type
+result_of::as_vector<list<char, int> >::type
 
diff --git a/doc/html/fusion/container/generation.html b/doc/html/fusion/container/generation.html index 7bfc381d..45d6a9c1 100644 --- a/doc/html/fusion/container/generation.html +++ b/doc/html/fusion/container/generation.html @@ -3,7 +3,7 @@ Generation - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,19 +24,18 @@

- These are the functions that you can use to generate various forms of Container from elemental values. + These are the functions that you can use to generate various forms of Container from elemental values.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/generation.hpp>
 #include <boost/fusion/include/generation.hpp>
diff --git a/doc/html/fusion/container/generation/functions.html b/doc/html/fusion/container/generation/functions.html
index 5a0c3494..20861a17 100644
--- a/doc/html/fusion/container/generation/functions.html
+++ b/doc/html/fusion/container/generation/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
make_list
make_cons
diff --git a/doc/html/fusion/container/generation/functions/list_tie.html b/doc/html/fusion/container/generation/functions/list_tie.html index 11b76cf8..1d9ab235 100644 --- a/doc/html/fusion/container/generation/functions/list_tie.html +++ b/doc/html/fusion/container/generation/functions/list_tie.html @@ -3,7 +3,7 @@ list_tie - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,38 +24,37 @@
- - Description + + Description

- Constructs a tie using a list sequence. + Constructs a tie using a list sequence.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
-list<T0&, T1&,... TN&>
+list<T0&, T1&,... TN&>
 list_tie(T0& x0, T1& x1... TN& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_LIST_SIZE - elements, where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_LIST_SIZE + The variadic function accepts 0 + to FUSION_MAX_LIST_SIZE + elements, where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_LIST_SIZE 20
 
- - Parameters + + Parameters
@@ -83,49 +82,49 @@

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to list_tie + The arguments to list_tie

- - Expression + + Expression Semantics
 list_tie(x0, x1,... xN);
 

- Return type: list<T0&, T1&,... + Return type: list<T0&, T1&,... TN&>

- Semantics: Create a list of references from x0, x1,... xN. + Semantics: Create a list of references from x0, x1,... xN.

- - Header + + Header
 #include <boost/fusion/container/generation/list_tie.hpp>
 #include <boost/fusion/include/list_tie.hpp>
 
- - Example + + Example
 int i = 123;
diff --git a/doc/html/fusion/container/generation/functions/make_cons.html b/doc/html/fusion/container/generation/functions/make_cons.html
index 5256366d..f010150f 100644
--- a/doc/html/fusion/container/generation/functions/make_cons.html
+++ b/doc/html/fusion/container/generation/functions/make_cons.html
@@ -3,7 +3,7 @@
 
 make_cons
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,33 +24,32 @@
- - Description + + Description

- Create a cons - from car (head) - and optional cdr (tail). + Create a cons + from car (head) + and optional cdr (tail).

- - Synopsis + + Synopsis
 template <typename Car>
-typename result_of::make_cons<Car>::type
+typename result_of::make_cons<Car>::type
 make_cons(Car const& car);
 
 template <typename Car, typename Cdr>
-typename result_of::make_cons<Car, Cdr>::type
+typename result_of::make_cons<Car, Cdr>::type
 make_cons(Car const& car, Cdr const& cdr);
 
- - Parameters + + Parameters
@@ -79,12 +78,12 @@

- car + car

- Instance of Car + Instance of Car

@@ -96,12 +95,12 @@

- cdr + cdr

- Instance of Cdr + Instance of Cdr

@@ -113,43 +112,43 @@
- - Expression + + Expression Semantics
 make_cons(car, cdr);
 

- Return type: result_of::make_cons<Car, Cdr>::type or result_of::make_cons<Car>::type + Return type: result_of::make_cons<Car, Cdr>::type or result_of::make_cons<Car>::type

- Semantics: Create a cons from car - (head) and optional cdr + Semantics: Create a cons from car + (head) and optional cdr (tail).

- - Header + + Header
 #include <boost/fusion/container/generation/make_cons.hpp>
 #include <boost/fusion/include/make_cons.hpp>
 
- - Example + + Example
 make_cons('x', make_cons(123))
 
- - See + + See also

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/make_list.html b/doc/html/fusion/container/generation/functions/make_list.html index 9b6e652e..e0746a10 100644 --- a/doc/html/fusion/container/generation/functions/make_list.html +++ b/doc/html/fusion/container/generation/functions/make_list.html @@ -3,7 +3,7 @@ make_list - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,39 +24,38 @@
- - Description + + Description

- Create a list + Create a list from one or more values.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
-typename result_of::make_list<T0, T1,... TN>::type
+typename result_of::make_list<T0, T1,... TN>::type
 make_list(T0 const& x0, T1 const& x1... TN const& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_LIST_SIZE - elements, where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_LIST_SIZE + The variadic function accepts 0 + to FUSION_MAX_LIST_SIZE + elements, where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_LIST_SIZE 20
 
- - Parameters + + Parameters
@@ -84,59 +83,59 @@

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to make_list + The arguments to make_list

- - Expression + + Expression Semantics
 make_list(x0, x1,... xN);
 

- Return type: result_of::make_list<T0, T1,... TN>::type + Return type: result_of::make_list<T0, T1,... TN>::type

- Semantics: Create a list from x0, x1,... xN. + Semantics: Create a list from x0, x1,... xN.

- - Header + + Header
 #include <boost/fusion/container/generation/make_list.hpp>
 #include <boost/fusion/include/make_list.hpp>
 
- - Example + + Example
 make_list(123, "hello", 12.5)
 
- - See + + See also

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/make_map.html b/doc/html/fusion/container/generation/functions/make_map.html index b674053c..a274b9b2 100644 --- a/doc/html/fusion/container/generation/functions/make_map.html +++ b/doc/html/fusion/container/generation/functions/make_map.html @@ -3,7 +3,7 @@ make_map - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,42 +24,41 @@
- - Description + + Description

- Create a map + Create a map from one or more key/data pairs.

- - Synopsis + + Synopsis
 template <
     typename K0, typename K1,... typename KN
   , typename T0, typename T1,... typename TN>
-typename result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type
+typename result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type
 make_map(T0 const& x0, T1 const& x1... TN const& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [9] - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + [9] + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -88,9 +87,9 @@

- K0, + K0, K1,... - KN + KN

@@ -100,83 +99,83 @@

- Keys associated with x0, x1,... xN + Keys associated with x0, x1,... xN

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to make_map + The arguments to make_map

- - Expression + + Expression Semantics
 make_map<K0, K1,... KN>(x0, x1,... xN);
 

- Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type + Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type

- Semantics: Create a map from K0, K1,... KN - keys and x0, + Semantics: Create a map from K0, K1,... KN + keys and x0, x1,... - xN data. + xN data.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/generation/make_map.hpp>
 #include <boost/fusion/include/make_map.hpp>
 
- - Example + + Example
 make_map(
-    make_pair<int>('X')
-  , make_pair<double>("Men"))
+    make_pair<int>('X')
+  , make_pair<double>("Men"))
 
- - See + + See also

- boost::ref, - fusion::pair + boost::ref, + fusion::pair



-

[9] - map is implemented - in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE +

[9] + map is implemented + in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE

diff --git a/doc/html/fusion/container/generation/functions/make_set.html b/doc/html/fusion/container/generation/functions/make_set.html index f21f9bca..a1e64608 100644 --- a/doc/html/fusion/container/generation/functions/make_set.html +++ b/doc/html/fusion/container/generation/functions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,40 +24,39 @@
- - Description + + Description

- Create a set + Create a set from one or more values.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
-typename result_of::make_set<T0, T1,... TN>::type
+typename result_of::make_set<T0, T1,... TN>::type
 make_set(T0 const& x0, T1 const& x1... TN const& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [8] - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + [8] + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -85,69 +84,69 @@

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to make_set + The arguments to make_set

- - Expression + + Expression Semantics
 make_set(x0, x1,... xN);
 

- Return type: result_of::make_set<T0, T1,... TN>::type + Return type: result_of::make_set<T0, T1,... TN>::type

- Semantics: Create a set from x0, x1,... xN. + Semantics: Create a set from x0, x1,... xN.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/generation/make_set.hpp>
 #include <boost/fusion/include/make_set.hpp>
 
- - Example + + Example
 make_set(123, "hello", 12.5)
 
- - See + + See also

- boost::ref + boost::ref



-

[8] - set is implemented - in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE +

[8] + set is implemented + in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE

diff --git a/doc/html/fusion/container/generation/functions/make_vector.html b/doc/html/fusion/container/generation/functions/make_vector.html index 876ce94d..f0999784 100644 --- a/doc/html/fusion/container/generation/functions/make_vector.html +++ b/doc/html/fusion/container/generation/functions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,39 +24,38 @@
- - Description + + Description

- Create a vector + Create a vector from one or more values.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
-typename result_of::make_vector<T0, T1,... TN>::type
+typename result_of::make_vector<T0, T1,... TN>::type
 make_vector(T0 const& x0, T1 const& x1... TN const& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -84,59 +83,59 @@

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to make_vector + The arguments to make_vector

- - Expression + + Expression Semantics
 make_vector(x0, x1,... xN);
 

- Return type: result_of::make_vector<T0, T1,... TN>::type + Return type: result_of::make_vector<T0, T1,... TN>::type

- Semantics: Create a vector from x0, x1,... xN. + Semantics: Create a vector from x0, x1,... xN.

- - Header + + Header
 #include <boost/fusion/container/generation/make_vector.hpp>
 #include <boost/fusion/include/make_vector.hpp>
 
- - Example + + Example
 make_vector(123, "hello", 12.5)
 
- - See + + See also

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/map_tie.html b/doc/html/fusion/container/generation/functions/map_tie.html index 3ca69741..02c64edd 100644 --- a/doc/html/fusion/container/generation/functions/map_tie.html +++ b/doc/html/fusion/container/generation/functions/map_tie.html @@ -3,7 +3,7 @@ map_tie - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,38 +24,37 @@
- - Description + + Description

- Constructs a tie using a map sequence. + Constructs a tie using a map sequence.

- - Synopsis + + Synopsis
 template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
-map<pair<K0, D0&>, pair<K1, D1&>,... pair<KN, DN&> >
+map<pair<K0, D0&>, pair<K1, D1&>,... pair<KN, DN&> >
 map_tie(D0& d0, D1& d1... DN& dN);
 

- The variadic function accepts 0 - to FUSION_MAX_MAP_SIZE - elements, where FUSION_MAX_MAP_SIZE - is a user definable predefined maximum that defaults to 10, and a corresponding number of key types. - You may define the preprocessor constant FUSION_MAX_MAP_SIZE + The variadic function accepts 0 + to FUSION_MAX_MAP_SIZE + elements, where FUSION_MAX_MAP_SIZE + is a user definable predefined maximum that defaults to 10, and a corresponding number of key types. + You may define the preprocessor constant FUSION_MAX_MAP_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_MAP_SIZE 20
 
- - Parameters + + Parameters
@@ -84,9 +83,9 @@ @@ -104,51 +103,51 @@

- K0, + K0, K1,... - KN + KN

@@ -96,7 +95,7 @@

- The key types associated with each of the x1,x2,...,xN + The key types associated with each of the x1,x2,...,xN values

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to map_tie + The arguments to map_tie

- - Expression + + Expression Semantics
 map_tie<K0, K1,... KN>(x0, x1,... xN);
 

- Return type: map<pair<K0, D0&>, pair<K1, - D1&>,... pair<KN, + Return type: map<pair<K0, D0&>, pair<K1, + D1&>,... pair<KN, DN&> >

- Semantics: Create a map of references from x0, x1,... xN with keys K0, K1,... KN + Semantics: Create a map of references from x0, x1,... xN with keys K0, K1,... KN

- - Header + + Header
 #include <boost/fusion/container/generation/map_tie.hpp>
 #include <boost/fusion/include/map_tie.hpp>
 
- - Example + + Example
 struct int_key;
diff --git a/doc/html/fusion/container/generation/functions/tiers.html b/doc/html/fusion/container/generation/functions/tiers.html
index 783aaa72..5f852ba9 100644
--- a/doc/html/fusion/container/generation/functions/tiers.html
+++ b/doc/html/fusion/container/generation/functions/tiers.html
@@ -3,7 +3,7 @@
 
 Tiers
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@

Tiers are sequences, where all elements are non-const reference types. They are constructed with a call to a couple of tie @@ -33,9 +32,9 @@ flavors.

Example: @@ -43,14 +42,14 @@

 int i; char c; double d;
   ...
-vector_tie(i, c, a);
+vector_tie(i, c, a);
 

- The vector_tie function creates - a vector - of type vector<int&, char&, double&>. The same result could be achieved - with the call make_vector(ref(i), ref(c), ref(a)) - [10] + The vector_tie function creates + a vector + of type vector<int&, char&, double&>. The same result could be achieved + with the call make_vector(ref(i), ref(c), ref(a)) + [10] .

@@ -59,7 +58,7 @@

 int i; char c; double d;
-vector_tie(i, c, d) = make_vector(1,'a', 5.5);
+vector_tie(i, c, d) = make_vector(1,'a', 5.5);
 std::cout << i << " " <<  c << " " << d;
 

@@ -68,8 +67,8 @@ when calling functions which return sequences.

- - Ignore + + Ignore

There is also an object called ignore which allows @@ -79,13 +78,13 @@

 char c;
-vector_tie(ignore, c) = make_vector(1, 'a');
+vector_tie(ignore, c) = make_vector(1, 'a');
 


-

[10] +

[10] see Boost.Ref - for details about ref + for details about ref

diff --git a/doc/html/fusion/container/generation/functions/vector_tie.html b/doc/html/fusion/container/generation/functions/vector_tie.html index 8e5cbcf4..0d816ce5 100644 --- a/doc/html/fusion/container/generation/functions/vector_tie.html +++ b/doc/html/fusion/container/generation/functions/vector_tie.html @@ -3,7 +3,7 @@ vector_tie - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,38 +24,37 @@
- - Description + + Description

- Constructs a tie using a vector sequence. + Constructs a tie using a vector sequence.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
-vector<T0&, T1&,... TN&>
+vector<T0&, T1&,... TN&>
 vector_tie(T0& x0, T1& x1... TN& xN);
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -83,49 +82,49 @@

- x0, + x0, x1,... - xN + xN

- Instances of T0, T1,... TN + Instances of T0, T1,... TN

- The arguments to vector_tie + The arguments to vector_tie

- - Expression + + Expression Semantics
 vector_tie(x0, x1,... xN);
 

- Return type: vector<T0&, T1&,... + Return type: vector<T0&, T1&,... TN&>

- Semantics: Create a vector of references from x0, x1,... xN. + Semantics: Create a vector of references from x0, x1,... xN.

- - Header + + Header
 #include <boost/fusion/container/generation/vector_tie.hpp>
 #include <boost/fusion/include/vector_tie.hpp>
 
- - Example + + Example
 int i = 123;
diff --git a/doc/html/fusion/container/generation/metafunctions.html b/doc/html/fusion/container/generation/metafunctions.html
index c4e93919..e03be94d 100644
--- a/doc/html/fusion/container/generation/metafunctions.html
+++ b/doc/html/fusion/container/generation/metafunctions.html
@@ -3,7 +3,7 @@
 
 MetaFunctions
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
make_list
make_cons
diff --git a/doc/html/fusion/container/generation/metafunctions/list_tie.html b/doc/html/fusion/container/generation/metafunctions/list_tie.html index 8d91da55..97396d3a 100644 --- a/doc/html/fusion/container/generation/metafunctions/list_tie.html +++ b/doc/html/fusion/container/generation/metafunctions/list_tie.html @@ -3,7 +3,7 @@ list_tie - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,37 +24,36 @@
- - Description + + Description

- Returns the result type of list_tie. + Returns the result type of list_tie.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
 struct list_tie;
 

- The variadic function accepts 0 - to FUSION_MAX_LIST_SIZE - elements, where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_LIST_SIZE + The variadic function accepts 0 + to FUSION_MAX_LIST_SIZE + elements, where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_LIST_SIZE 20
 
- - Parameters + + Parameters
@@ -82,9 +81,9 @@

- T0, + T0, T1,... - TN + TN

@@ -94,37 +93,37 @@

- The arguments to list_tie + The arguments to list_tie

- - Expression + + Expression Semantics
 result_of::list_tie<T0, T1,... TN>::type;
 

- Return type: list<T0&, T1&,... + Return type: list<T0&, T1&,... TN&>

- Semantics: Create a list of references from T0, T1,... TN. + Semantics: Create a list of references from T0, T1,... TN.

- - Header + + Header
 #include <boost/fusion/container/generation/list_tie.hpp>
 #include <boost/fusion/include/list_tie.hpp>
 
- - Example + + Example
 result_of::list_tie<int, double>::type
diff --git a/doc/html/fusion/container/generation/metafunctions/make_cons.html b/doc/html/fusion/container/generation/metafunctions/make_cons.html
index 9d0055fa..92a31faa 100644
--- a/doc/html/fusion/container/generation/metafunctions/make_cons.html
+++ b/doc/html/fusion/container/generation/metafunctions/make_cons.html
@@ -3,7 +3,7 @@
 
 make_cons
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,26 +24,25 @@
- - Description + + Description

- Returns the result type of make_cons. + Returns the result type of make_cons.

- - Synopsis + + Synopsis
 template <typename Car, typename Cdr = nil>
 struct make_cons;
 
- - Parameters + + Parameters
@@ -72,7 +71,7 @@

- Car + Car

@@ -89,12 +88,12 @@

- Cdr + Cdr

- A cons + A cons

@@ -106,34 +105,34 @@
- - Expression + + Expression Semantics
 result_of::make_cons<Car, Cdr>::type
 

- Return type: A cons with head element, Car, of type converted following the - rules for element - conversion, and tail, Cdr. + Return type: A cons with head element, Car, of type converted following the + rules for element + conversion, and tail, Cdr.

- Semantics: Create a cons from Car - (head) and optional Cdr + Semantics: Create a cons from Car + (head) and optional Cdr (tail).

- - Header + + Header
 #include <boost/fusion/container/generation/make_cons.hpp>
 #include <boost/fusion/include/make_cons.hpp>
 
- - Example + + Example
 result_of::make_cons<char, result_of::make_cons<int>::type>::type
diff --git a/doc/html/fusion/container/generation/metafunctions/make_list.html b/doc/html/fusion/container/generation/metafunctions/make_list.html
index f1acacd1..1442913b 100644
--- a/doc/html/fusion/container/generation/metafunctions/make_list.html
+++ b/doc/html/fusion/container/generation/metafunctions/make_list.html
@@ -3,7 +3,7 @@
 
 make_list
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,37 +24,36 @@
- - Description + + Description

- Returns the result type of make_list. + Returns the result type of make_list.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
 struct make_list;
 

- The variadic function accepts 0 - to FUSION_MAX_LIST_SIZE - elements, where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_LIST_SIZE + The variadic function accepts 0 + to FUSION_MAX_LIST_SIZE + elements, where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_LIST_SIZE 20
 
- - Parameters + + Parameters
@@ -82,9 +81,9 @@

- T0, + T0, T1,... - TN + TN

@@ -94,38 +93,38 @@

- Template arguments to make_list + Template arguments to make_list

- - Expression + + Expression Semantics
 result_of::make_list<T0, T1,... TN>::type
 

- Return type: A list with elements of types - converted following the rules for element + Return type: A list with elements of types + converted following the rules for element conversion.

- Semantics: Create a list from T0, T1,... TN. + Semantics: Create a list from T0, T1,... TN.

- - Header + + Header
 #include <boost/fusion/container/generation/make_list.hpp>
 #include <boost/fusion/include/make_list.hpp>
 
- - Example + + Example
 result_of::make_list<int, const char(&)[7], double>::type
diff --git a/doc/html/fusion/container/generation/metafunctions/make_map.html b/doc/html/fusion/container/generation/metafunctions/make_map.html
index 705c764a..72ba51af 100644
--- a/doc/html/fusion/container/generation/metafunctions/make_map.html
+++ b/doc/html/fusion/container/generation/metafunctions/make_map.html
@@ -3,7 +3,7 @@
 
 make_map
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,18 +24,17 @@
- - Description + + Description

- Returns the result type of make_map. + Returns the result type of make_map.

- - Synopsis + + Synopsis
 template <
@@ -44,20 +43,20 @@
 struct make_map;
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [12] - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + [12] + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -86,9 +85,9 @@

- K0, + K0, K1,... - KN + KN

@@ -98,16 +97,16 @@

- Keys associated with T0, T1,... TN + Keys associated with T0, T1,... TN

- T0, + T0, T1,... - TN + TN

@@ -117,60 +116,60 @@

- Data associated with keys K0, K1,... KN + Data associated with keys K0, K1,... KN

- - Expression + + Expression Semantics
 resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
 

- Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type + Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type

- Semantics: A map with fusion::pair elements where the second_type is converted following - the rules for element + Semantics: A map with fusion::pair elements where the second_type is converted following + the rules for element conversion.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/generation/make_map.hpp>
 #include <boost/fusion/include/make_map.hpp>
 
- - Example + + Example
 result_of::make_map<int, double, char, double>::type
 
- - See + + See also

- fusion::pair + fusion::pair



-

[12] - map is implemented - in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE +

[12] + map is implemented + in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE

diff --git a/doc/html/fusion/container/generation/metafunctions/make_set.html b/doc/html/fusion/container/generation/metafunctions/make_set.html index 5c0b56cc..284be2e8 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_set.html +++ b/doc/html/fusion/container/generation/metafunctions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,38 +24,37 @@
- - Description + + Description

- Returns the result type of make_set. + Returns the result type of make_set.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
 struct make_set;
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [11] - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + [11] + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -83,9 +82,9 @@

- T0, + T0, T1,... - TN + TN

@@ -95,51 +94,51 @@

- The arguments to make_set + The arguments to make_set

- - Expression + + Expression Semantics
 result_of::make_set<T0, T1,... TN>::type
 

- Return type: A set with elements of types converted - following the rules for element + Return type: A set with elements of types converted + following the rules for element conversion.

- Semantics: Create a set from T0, T1,... TN. + Semantics: Create a set from T0, T1,... TN.

- Precondition: There may be no duplicate + Precondition: There may be no duplicate key types.

- - Header + + Header
 #include <boost/fusion/container/generation/make_set.hpp>
 #include <boost/fusion/include/make_set.hpp>
 
- - Example + + Example
 result_of::make_set<int, char, double>::type
 


-

[11] - set is implemented - in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE +

[11] + set is implemented + in terms of the vector. That is why we reuse FUSION_MAX_VECTOR_SIZE

diff --git a/doc/html/fusion/container/generation/metafunctions/make_vector.html b/doc/html/fusion/container/generation/metafunctions/make_vector.html index 685f6184..920036ae 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_vector.html +++ b/doc/html/fusion/container/generation/metafunctions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,37 +24,36 @@
- - Description + + Description

- Returns the result type of make_vector. + Returns the result type of make_vector.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
 struct make_vector;
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -82,9 +81,9 @@

- T0, + T0, T1,... - TN + TN

@@ -94,38 +93,38 @@

- Template arguments to make_vector + Template arguments to make_vector

- - Expression + + Expression Semantics
 result_of::make_vector<T0, T1,... TN>::type
 

- Return type: A vector with elements of types - converted following the rules for element + Return type: A vector with elements of types + converted following the rules for element conversion.

- Semantics: Create a vector from T0, T1,... TN. + Semantics: Create a vector from T0, T1,... TN.

- - Header + + Header
 #include <boost/fusion/container/generation/make_list.hpp>
 #include <boost/fusion/include/make_list.hpp>
 
- - Example + + Example
 result_of::make_vector<int, const char(&)[7], double>::type
diff --git a/doc/html/fusion/container/generation/metafunctions/map_tie.html b/doc/html/fusion/container/generation/metafunctions/map_tie.html
index 30d5a780..4e8f0c13 100644
--- a/doc/html/fusion/container/generation/metafunctions/map_tie.html
+++ b/doc/html/fusion/container/generation/metafunctions/map_tie.html
@@ -3,7 +3,7 @@
 
 map_tie
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,37 +24,36 @@
- - Description + + Description

- Returns the result type of map_tie. + Returns the result type of map_tie.

- - Synopsis + + Synopsis
 template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
 struct map_tie;
 

- The variadic function accepts 0 - to FUSION_MAX_MAP_SIZE - elements, where FUSION_MAX_MAP_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_MAP_SIZE before + The variadic function accepts 0 + to FUSION_MAX_MAP_SIZE + elements, where FUSION_MAX_MAP_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_MAP_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_MAP_SIZE 20
 
- - Parameters + + Parameters
@@ -83,9 +82,9 @@

- K0, + K0, K1,... - KN + KN

@@ -95,16 +94,16 @@

- The key types for map_tie + The key types for map_tie

- D0, + D0, D1,... - DN + DN

@@ -114,39 +113,39 @@

- The arguments types for map_tie + The arguments types for map_tie

- - Expression + + Expression Semantics
 result_of::map_tie<K0, K1,... KN, D0, D1,... DN>::type;
 

- Return type: map<pair<K0, D0&>, pair<K1, - D1&>,... pair<KN, + Return type: map<pair<K0, D0&>, pair<K1, + D1&>,... pair<KN, DN&> >

- Semantics: Create a map of references from D0, D1,... DN with keys K0, K1,... KN + Semantics: Create a map of references from D0, D1,... DN with keys K0, K1,... KN

- - Header + + Header
 #include <boost/fusion/container/generation/map_tie.hpp>
 #include <boost/fusion/include/map_tie.hpp>
 
- - Example + + Example
 struct int_key;
diff --git a/doc/html/fusion/container/generation/metafunctions/vector_tie.html b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
index 823fbeea..e4a40918 100644
--- a/doc/html/fusion/container/generation/metafunctions/vector_tie.html
+++ b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
@@ -3,7 +3,7 @@
 
 vector_tie
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,37 +24,36 @@
- - Description + + Description

- Returns the result type of vector_tie. + Returns the result type of vector_tie.

- - Synopsis + + Synopsis
 template <typename T0, typename T1,... typename TN>
 struct vector_tie;
 

- The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - elements, where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant - FUSION_MAX_VECTOR_SIZE + The variadic function accepts 0 + to FUSION_MAX_VECTOR_SIZE + elements, where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant + FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
- - Parameters + + Parameters
@@ -82,9 +81,9 @@

- T0, + T0, T1,... - TN + TN

@@ -94,37 +93,37 @@

- The arguments to vector_tie + The arguments to vector_tie

- - Expression + + Expression Semantics
 result_of::vector_tie<T0, T1,... TN>::type;
 

- Return type: vector<T0&, T1&,... + Return type: vector<T0&, T1&,... TN&>

- Semantics: Create a vector of references from T0, T1,... TN. + Semantics: Create a vector of references from T0, T1,... TN.

- - Header + + Header
 #include <boost/fusion/container/generation/vector_tie.hpp>
 #include <boost/fusion/include/vector_tie.hpp>
 
- - Example + + Example
 result_of::vector_tie<int, double>::type
diff --git a/doc/html/fusion/container/list.html b/doc/html/fusion/container/list.html
index 2256df89..8cfac083 100644
--- a/doc/html/fusion/container/list.html
+++ b/doc/html/fusion/container/list.html
@@ -3,7 +3,7 @@
 
 list
 
-
+
 
 
 
@@ -12,10 +12,10 @@
 
 
-
+
-
-
+
+
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,33 +24,33 @@

-list -

-
- - Description -
+list
+

+ + Description +

- list is a Forward - Sequence of heterogenous typed data built on top of cons. It is more efficient than - vector + list is a Forward + Sequence of heterogenous typed data built on top of cons. It is more efficient than + vector when the target sequence is constructed piecemeal (a data at a time). The - runtime cost of access to each element is peculiarly constant (see Recursive Inlined Functions). + runtime cost of access to each element is peculiarly constant (see Recursive Inlined Functions).

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/list.hpp>
 #include <boost/fusion/include/list.hpp>
 #include <boost/fusion/container/list/list_fwd.hpp>
 #include <boost/fusion/include/list_fwd.hpp>
 
-
- - Synopsis -
+

+ + Synopsis +

 template <
     typename T0 = unspecified
@@ -62,26 +62,26 @@
 struct list;
 

- The variadic class interface accepts 0 - to FUSION_MAX_LIST_SIZE elements, - where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_LIST_SIZE elements, + where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. Example:

 list<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_LIST_SIZE + You may define the preprocessor constant FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_LIST_SIZE 20
 
-
- - Template parameters -
+

+ + Template parameters +

@@ -108,7 +108,7 @@

- T0...TN + T0...TN

@@ -123,44 +123,47 @@
-
- - Model of -
- +

+ + Model of +

+

Notation

-
L
+
L

- A list type + A list type

-
l
+
l

- An instance of list + An instance of list

-
e0...en
+
e0...en

Heterogeneous values

-
s
+
s

- A Forward Sequence + A Forward Sequence

-
N
+
N

An MPL Integral Constant

-
- - Expression Semantics -
+

+ + Expression Semantics +

Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

@@ -184,7 +187,7 @@

- L() + L()

@@ -196,78 +199,79 @@

- L(e0, e1,... - en) + L(e0, e1,... + en)

- Creates a list with elements e0...en. + Creates a list with elements e0...en.

- L(s) + L(s)

- Copy constructs a list from a Forward - Sequence, s. + Copy constructs a list from a Forward + Sequence, s.

- l = - s + l = + s

- Assigns to a list, l, - from a Forward - Sequence, s. + Assigns to a list, l, + from a Forward + Sequence, s.

- at<N>(l) + at<N>(l)

- The Nth element from the beginning of the sequence; see at. + The Nth element from the beginning of the sequence; see at.

- +

+ + Example +

 list<int, float> l(12, 5.5f);
-std::cout << at_c<0>(l) << std::endl;
-std::cout << at_c<1>(l) << std::endl;
+std::cout << at_c<0>(l) << std::endl;
+std::cout << at_c<1>(l) << std::endl;
 
diff --git a/doc/html/fusion/container/map.html b/doc/html/fusion/container/map.html index 37f435a4..c0f6098c 100644 --- a/doc/html/fusion/container/map.html +++ b/doc/html/fusion/container/map.html @@ -3,7 +3,7 @@ map - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,35 +24,35 @@

-map -

-
- - Description -
+map
+

+ + Description +

- map is an Associative + map is an Associative Sequence of heteregenous typed data elements. Each element is a key/data - pair (see fusion::pair) + pair (see fusion::pair) where the key has no data (type only). Type identity is used to impose an equivalence relation on keys. A map may contain at most one element for each key. Membership testing and element key lookup has constant runtime complexity - (see Overloaded Functions). + (see Overloaded Functions).

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/map.hpp>
 #include <boost/fusion/include/map.hpp>
 #include <boost/fusion/container/map_fwd.hpp>
 #include <boost/fusion/include/map_fwd.hpp>
 
-
- - Synopsis -
+

+ + Synopsis +

 template <
     typename T0 = unspecified
@@ -64,26 +64,26 @@
 struct map;
 

- The variadic class interface accepts 0 - to FUSION_MAX_MAP_SIZE elements, - where FUSION_MAX_MAP_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_MAP_SIZE elements, + where FUSION_MAX_MAP_SIZE + is a user definable predefined maximum that defaults to 10. Example:

-map<pair<int, char>, pair<char, char>, pair<double, char> >
+map<pair<int, char>, pair<char, char>, pair<double, char> >
 

- You may define the preprocessor constant FUSION_MAX_MAP_SIZE + You may define the preprocessor constant FUSION_MAX_MAP_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_MAP_SIZE 20
 
-
- - Template parameters -
+

+ + Template parameters +

@@ -110,7 +110,7 @@

- T0...TN + T0...TN

@@ -125,44 +125,49 @@
-
- - Model of -
+

+ + Model of +

Notation

-
M
+
M

- A map type + A map type

-
m
+
m

- An instance of map + An instance of map

-
e0...en
+
e0...en

- Heterogeneous key/value pairs (see fusion::pair) + Heterogeneous key/value pairs (see fusion::pair)

-
s
+
s

- A Forward Sequence + A Forward Sequence

-
- - Expression Semantics -
+

+ + Expression Semantics +

Semantics of an expression is defined only where it differs from, or is not - defined in Random - Access Sequence and Associative + defined in Random + Access Sequence and Associative Sequence.

@@ -186,7 +191,7 @@

- M() + M()

@@ -198,62 +203,64 @@

- M(e0, e1,... - en) + M(e0, e1,... + en)

- Creates a map with element pairs e0...en. + Creates a map with element pairs e0...en.

- M(s) + M(s)

- Copy constructs a map from a Forward - Sequence s. + Copy constructs a map from a Forward + Sequence s.

- m = - s + m = + s

- Assigns to a map, m, - from a Forward - Sequence s. + Assigns to a map, m, + from a Forward + Sequence s.

-
- - Example -
+

+ + Example +

 typedef map<
-    pair<int, char>
-  , pair<double, std::string> >
+    pair<int, char>
+  , pair<double, std::string> >
 map_type;
 
 map_type m(
-    make_pair<int>('X')
-  , make_pair<double>("Men"));
+    make_pair<int>('X')
+  , make_pair<double>("Men"));
 
-std::cout << at_key<int>(m) << std::endl;
-std::cout << at_key<double>(m) << std::endl;
+std::cout << at_key<int>(m) << std::endl;
+std::cout << at_key<double>(m) << std::endl;
 
diff --git a/doc/html/fusion/container/set.html b/doc/html/fusion/container/set.html index 9a4e0f81..8c062479 100644 --- a/doc/html/fusion/container/set.html +++ b/doc/html/fusion/container/set.html @@ -3,7 +3,7 @@ set - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,34 +24,34 @@

-set -

-
- - Description -
+set
+

+ + Description +

- set is an Associative + set is an Associative Sequence of heteregenous typed data elements. Type identity is used to impose an equivalence relation on keys. The element's type is its key. A set may contain at most one element for each key. Membership testing and - element key lookup has constant runtime complexity (see Overloaded + element key lookup has constant runtime complexity (see Overloaded Functions).

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/set.hpp>
 #include <boost/fusion/include/set.hpp>
 #include <boost/fusion/container/set_fwd.hpp>
 #include <boost/fusion/include/set_fwd.hpp>
 
-
- - Synopsis -
+

+ + Synopsis +

 template <
     typename T0 = unspecified
@@ -63,26 +63,26 @@
 struct set;
 

- The variadic class interface accepts 0 - to FUSION_MAX_SET_SIZE elements, - where FUSION_MAX_SET_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_SET_SIZE elements, + where FUSION_MAX_SET_SIZE + is a user definable predefined maximum that defaults to 10. Example:

 set<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_SET_SIZE + You may define the preprocessor constant FUSION_MAX_SET_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_SET_SIZE 20
 
-
- - Template parameters -
+

+ + Template parameters +

@@ -109,7 +109,7 @@

- T0...TN + T0...TN

@@ -124,44 +124,49 @@
-
- - Model of -
+

+ + Model of +

Notation

-
S
+
S

- A set type + A set type

-
s
+
s

- An instance of set + An instance of set

-
e0...en
+
e0...en

Heterogeneous values

-
fs
+
fs

- A Forward Sequence + A Forward Sequence

-
- - Expression Semantics -
+

+ + Expression Semantics +

Semantics of an expression is defined only where it differs from, or is not - defined in Random - Access Sequence and Associative + defined in Random + Access Sequence and Associative Sequence.

@@ -185,7 +190,7 @@

- S() + S()

@@ -197,56 +202,58 @@

- S(e0, e1,... - en) + S(e0, e1,... + en)

- Creates a set with elements e0...en. + Creates a set with elements e0...en.

- S(fs) + S(fs)

- Copy constructs a set from a Forward - Sequence fs. + Copy constructs a set from a Forward + Sequence fs.

- s = - fs + s = + fs

- Assigns to a set, s, - from a Forward - Sequence fs. + Assigns to a set, s, + from a Forward + Sequence fs.

-
- - Example -
+

+ + Example +

 typedef set<int, float> S;
 S s(12, 5.5f);
-std::cout << at_key<int>(s) << std::endl;
-std::cout << at_key<float>(s) << std::endl;
-std::cout << result_of::has_key<S, double>::value << std::endl;
+std::cout << at_key<int>(s) << std::endl;
+std::cout << at_key<float>(s) << std::endl;
+std::cout << result_of::has_key<S, double>::value << std::endl;
 
diff --git a/doc/html/fusion/container/vector.html b/doc/html/fusion/container/vector.html index 56496ba9..954a2592 100644 --- a/doc/html/fusion/container/vector.html +++ b/doc/html/fusion/container/vector.html @@ -3,7 +3,7 @@ vector - + @@ -12,10 +12,10 @@
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,24 +24,24 @@ +

+ + Description +

- vector is a Random + vector is a Random Access Sequence of heterogenous typed data structured as a simple - struct where each element is - held as a member variable. vector + struct where each element is + held as a member variable. vector is the simplest of the Fusion sequence container, and in many cases the most efficient.

-
- - Header -
+

+ + Header +

 #include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/include/vector.hpp>
@@ -60,12 +60,12 @@
 #include <boost/fusion/container/vector/vector50.hpp>
 #include <boost/fusion/include/vector50.hpp>
 
-
- - Synopsis -
+

+ + Synopsis +

- Numbered forms + Numbered forms

 template <>
@@ -86,7 +86,7 @@
 struct vectorN;
 

- Variadic form + Variadic form

 template <
@@ -105,26 +105,26 @@
 vector3<int, char, double>
 

- The variadic form accepts 0 to - FUSION_MAX_VECTOR_SIZE elements, - where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic form accepts 0 to + FUSION_MAX_VECTOR_SIZE elements, + where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. Example:

 vector<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_VECTOR_SIZE + You may define the preprocessor constant FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

 #define FUSION_MAX_VECTOR_SIZE 20
 
-
- - Template parameters -
+

+ + Template parameters +

@@ -151,7 +151,7 @@

- T0...TN + T0...TN

@@ -166,40 +166,43 @@
-
- - Model of -
-
diff --git a/doc/html/fusion/extension.html b/doc/html/fusion/extension.html index e6b2a5c1..b7c413cd 100644 --- a/doc/html/fusion/extension.html +++ b/doc/html/fusion/extension.html @@ -3,19 +3,19 @@ Extension - + - +
- + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,8 +24,7 @@
The Full Extension Mechanism
Sequence Facade
diff --git a/doc/html/fusion/extension/ext_full.html b/doc/html/fusion/extension/ext_full.html index cbdddd37..013c0e10 100644 --- a/doc/html/fusion/extension/ext_full.html +++ b/doc/html/fusion/extension/ext_full.html @@ -1,9 +1,9 @@ -The Full Extension Mechanism + The Full Extension Mechanism - + @@ -12,10 +12,10 @@ - + - - + +
Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

@@ -24,12 +24,11 @@

The Fusion library is designed to be extensible, new sequences types can - easily be added. In fact, the library support for std::pair, - boost::array and MPL + easily be added. In fact, the library support for std::pair, + boost::array and MPL sequences is entirely provided using the extension mechanism.

@@ -37,7 +36,7 @@

  1. - Enable the tag dispatching + Enable the tag dispatching mechanism used by Fusion for your sequence type
  2. @@ -48,10 +47,10 @@ sequence
-
- - Our example -
+

+ + Our example +

In order to illustrate enabling a new sequence type for use with Fusion, we are going to use the type: @@ -74,18 +73,19 @@

We are going to pretend that this type has been provided by a 3rd party library, and therefore cannot be modified. We shall work through all the necessary - steps to enable example_struct - to serve as an Associative - Sequence as described in the Quick + steps to enable example_struct + to serve as an Associative + Sequence as described in the Quick Start guide.

-
- - Enabling +

+ + Enabling Tag Dispatching -

+

- The Fusion extensibility mechanism uses tag + The Fusion extensibility mechanism uses tag dispatching to call the correct code for a given sequence type. In order to exploit the tag dispatching mechanism we must first declare a new tag type for the mechanism to use. For example: @@ -96,9 +96,9 @@ }

- Next we need to enable the traits::tag_of + Next we need to enable the traits::tag_of metafunction to return our newly chosen tag type for operations involving - our sequence. This is done by specializing traits::tag_of + our sequence. This is done by specializing traits::tag_of for our sequence type.

@@ -114,8 +114,8 @@
 }}}
 

- traits::tag_of also has a second template argument, - that can be used in conjuction with boost::enable_if + traits::tag_of also has a second template argument, + that can be used in conjuction with boost::enable_if to provide tag support for groups of related types. This feature is not necessary for our sequence, but for an example see the code in:

@@ -123,20 +123,20 @@ #include <boost/fusion/adapted/array/tag_of.hpp> #include <boost/fusion/include/tag_of.hpp>
-
- - Designing +

+ + Designing a suitable iterator -

+

We need an iterator to describe positions, and provide access to the data within our sequence. As it is straightforward to do, we are going to provide a random access iterator in our example.

- We will use a simple design, in which the 2 members of example_struct - are given numbered indices, 0 for name - and 1 for age respectively. + We will use a simple design, in which the 2 members of example_struct + are given numbered indices, 0 for name + and 1 for age respectively.

 template<typename Struct, int Pos>
@@ -163,37 +163,37 @@
           index of the current element.
         
 
  • - The typedefs struct_type - and index provide convenient + The typedefs struct_type + and index provide convenient access to information we will need later in the implementation.
  • - The typedef category allows - the traits::category_of + The typedef category allows + the traits::category_of metafunction to establish the traversal category of the iterator.
  • - The constructor stores a reference to the example_struct + The constructor stores a reference to the example_struct being iterated over.
  • - We also need to enable tag + We also need to enable tag dispatching for our iterator type, with another specialization - of traits::tag_of. + of traits::tag_of.

    In isolation, the iterator implementation is pretty dry. Things should become clearer as we add features to our implementation.

    -
    - - A +

    + + A first couple of instructive features -

    +

    - To start with, we will get the result_of::value_of metafunction working. To - do this, we provide a specialization of the boost::fusion::extension::value_of_impl + To start with, we will get the result_of::value_of metafunction working. To + do this, we provide a specialization of the boost::fusion::extension::value_of_impl template for our iterator's tag type.

    @@ -218,30 +218,30 @@
     

    The implementation itself is pretty simple, it just uses 2 partial specializations - to provide the type of the 2 different members of example_struct, + to provide the type of the 2 different members of example_struct, based on the index of the iterator.

    - To understand how value_of_impl - is used by the library we will look at the implementation of value_of: + To understand how value_of_impl + is used by the library we will look at the implementation of value_of:

     template <typename Iterator>
    -struct value_of
    +struct value_of
         : extension::value_of_impl<typename detail::tag_of<Iterator>::type>::
             template apply<Iterator>
     {};
     

    - So value_of - uses tag dispatching + So value_of + uses tag dispatching to select an MPL Metafunction Class to provide its functionality. You will notice this pattern throughout the implementation of Fusion.

    Ok, lets enable dereferencing of our iterator. In this case we must provide - a suitable specialization of deref_impl. + a suitable specialization of deref_impl.

     template<>
    @@ -279,17 +279,17 @@
     }
     

    - The use of deref_impl is - very similar to that of value_of_impl, - but it also provides some runtime functionality this time via the call static member function. To see how - deref_impl is used, lets - have a look at the implementation of deref: + The use of deref_impl is + very similar to that of value_of_impl, + but it also provides some runtime functionality this time via the call static member function. To see how + deref_impl is used, lets + have a look at the implementation of deref:

     namespace result_of
     {
         template <typename Iterator>
    -    struct deref
    +    struct deref
             : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
                 template apply<Iterator>
         {};
    @@ -297,24 +297,24 @@
     
     template <typename Iterator>
     typename result_of::deref<Iterator>::type
    -deref(Iterator const& i)
    +deref(Iterator const& i)
     {
         typedef result_of::deref<Iterator> deref_meta;
         return deref_meta::call(i);
     }
     

    - So again result_of::deref uses tag - dispatching in exactly the same way as the value_of implementation. The runtime - functionality used by deref is provided by the call static function of the selected MPL + So again result_of::deref uses tag + dispatching in exactly the same way as the value_of implementation. The runtime + functionality used by deref is provided by the call static function of the selected MPL Metafunction Class.

    - The actual implementation of deref_impl - is slightly more complex than that of value_of_impl. - We also need to implement the call + The actual implementation of deref_impl + is slightly more complex than that of value_of_impl. + We also need to implement the call function, which returns a reference to the appropriate member of the underlying - sequence. We also require a little bit of metaprogramming to return const references if the underlying sequence + sequence. We also require a little bit of metaprogramming to return const references if the underlying sequence is const.

    @@ -322,23 +322,23 @@ -
    [Note] Note

    +

    Although there is a fair amount of left to do to produce a fully fledged - Fusion sequence, value_of and deref illustrate all the signficant + Fusion sequence, value_of and deref illustrate all the signficant concepts required. The remainder of the process is very repetitive, simply - requiring implementation of a suitable xxxx_impl - for each feature xxxx. + requiring implementation of a suitable xxxx_impl + for each feature xxxx.

    -
    - - Implementing +

    + + Implementing the remaining iterator functionality -

    +

    - Ok, now we have seen the way value_of and deref work, everything else will + Ok, now we have seen the way value_of and deref work, everything else will work in pretty much the same way. Lets start with forward iteration, by providing - a next_impl: + a next_impl:

     template<>
    @@ -360,37 +360,40 @@
     };
     

    - This should be very familiar from our deref_impl + This should be very familiar from our deref_impl implementation, we will be using this approach again and again now. Our design - is simply to increment the index + is simply to increment the index counter to move on to the next element. The various other iterator manipulations - we need to perform will all just involve simple calculations with the index variables. + we need to perform will all just involve simple calculations with the index variables.

    - We also need to provide a suitable equal_to_impl - so that iterators can be correctly compared. A Bidirectional - Iterator will also need an implementation of prior_impl. - For a Random - Access Iterator distance_impl - and advance_impl also need + We also need to provide a suitable equal_to_impl + so that iterators can be correctly compared. A Bidirectional + Iterator will also need an implementation of prior_impl. + For a Random + Access Iterator distance_impl + and advance_impl also need to be provided in order to satisfy the necessary complexity guarantees. As - our iterator is a Random + our iterator is a Random Access Iterator we will have to implement all of these functions.

    - Full implementations of prior_impl, - advance_impl, distance_impl and equal_to_impl + Full implementations of prior_impl, + advance_impl, distance_impl and equal_to_impl are provided in the example code.

    -
    - - Implementing +

    + + Implementing the intrinsic functions of the sequence -

    +

    In order that Fusion can correctly identify our sequence as a Fusion sequence, - we need to enable is_sequence - for our sequence type. As usual we just create an impl + we need to enable is_sequence + for our sequence type. As usual we just create an impl type specialized for our sequence tag:

    @@ -402,14 +405,14 @@
     };
     

    - We've some similar formalities to complete, providing category_of_impl - so Fusion can correctly identify our sequence type, and is_view_impl - so Fusion can correctly identify our sequence as not being a View + We've some similar formalities to complete, providing category_of_impl + so Fusion can correctly identify our sequence type, and is_view_impl + so Fusion can correctly identify our sequence as not being a View type. Implementations are provide in the example code.

    Now we've completed some formalities, on to more interesting features. Lets - get begin working so that we can get + get begin working so that we can get an iterator to start accessing the data in our sequence.

    @@ -432,32 +435,33 @@
     

    The implementation uses the same ideas we have applied throughout, in this case we are just creating one of the iterators we developed earlier, pointing - to the first element in the sequence. The implementation of end is very similar, and is provided + to the first element in the sequence. The implementation of end is very similar, and is provided in the example code.

    - For our Random - Access Sequence we will also need to implement size_impl, - value_at_impl and at_impl. + For our Random + Access Sequence we will also need to implement size_impl, + value_at_impl and at_impl.

    -
    - - Enabling +

    + + Enabling our type as an associative container -

    +

    - In order for example_struct + In order for example_struct to serve as an associative container, we need to enable 3 lookup features, - at_key, value_at_key and has_key. We also need to provide - an implementation of the is_associative + at_key, value_at_key and has_key. We also need to provide + an implementation of the is_associative trait so that our sequence can be correctly identified as an associative container.

    - To implement at_key_impl - we need to associate the fields::age and - fields::age types described in the Quick - Start guide with the appropriate members of example_struct. + To implement at_key_impl + we need to associate the fields::age and + fields::age types described in the Quick + Start guide with the appropriate members of example_struct. Our implementation is as follows:

    @@ -500,18 +504,18 @@
     

    Its all very similar to the implementations we've seen previously, such as - deref_impl and value_of_impl. Instead of identifying the + deref_impl and value_of_impl. Instead of identifying the members by index or position, we are now selecting them using the types - fields::name and fields::age. - The implementations of value_at_key_impl - and has_key_impl are equally + fields::name and fields::age. + The implementations of value_at_key_impl + and has_key_impl are equally straightforward, and are provided in the example code, along with an implementation - of is_associative_impl. + of is_associative_impl.

    -
    - - Summary -
    +

    + + Summary +

    We've now worked through the entire process for adding a new random access sequence and we've also enabled our type to serve as an associative container. @@ -519,8 +523,8 @@ pattern.

    - The support for std::pair, MPL - sequences, and boost::array all use the same approach, and provide + The support for std::pair, MPL + sequences, and boost::array all use the same approach, and provide additional examples of the approach for a variety of types.

    diff --git a/doc/html/fusion/extension/iterator_facade.html b/doc/html/fusion/extension/iterator_facade.html index 0b2ccd00..3403e178 100644 --- a/doc/html/fusion/extension/iterator_facade.html +++ b/doc/html/fusion/extension/iterator_facade.html @@ -3,7 +3,7 @@ Iterator Facade - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +24,28 @@ +

    + + Description +

    - The iterator_facade + The iterator_facade template provides an intrusive mechanism for producing a conforming Fusion iterator.

    -
    - - Synopsis -
    +

    + + Synopsis +

     template<typename Derived, typename TravesalTag>
     struct iterator_facade;
     
    -
    - - Usage -
    +

    + + Usage +

    The user of iterator_facade derives his iterator type from a specialization of iterator_facade and passes the derived iterator type as the first template @@ -58,8 +57,8 @@ type.

    -

    Table 1.93. Parameters

    -
    +

    Table 1.93. Parameters

    +
    @@ -80,20 +79,20 @@ -

    - iterator, It, It1, - It2 + iterator, It, It1, + It2

    - A type derived from iterator_facade + A type derived from iterator_facade

    - N + N

    @@ -104,11 +103,11 @@
    +
    -
    -

    Table 1.94. Key Expressions

    -
    +
    +

    Table 1.94. Key Expressions

    +
    @@ -135,12 +134,12 @@ @@ -311,13 +310,13 @@ -

    - iterator::template value_of<It>::type + iterator::template value_of<It>::type

    - The element stored at iterator position It + The element stored at iterator position It

    @@ -152,12 +151,12 @@

    - iterator::template deref<It>::type + iterator::template deref<It>::type

    - The type returned when dereferencing an iterator of type It + The type returned when dereferencing an iterator of type It

    @@ -169,12 +168,12 @@

    - iterator::template deref<It>::call(it) + iterator::template deref<It>::call(it)

    - Dereferences iterator it + Dereferences iterator it

    @@ -186,12 +185,12 @@

    - iterator::template next<It>::type + iterator::template next<It>::type

    - The type of the next element from It + The type of the next element from It

    @@ -203,12 +202,12 @@

    - iterator::template next<It>::call(it) + iterator::template next<It>::call(it)

    - The next iterator after it + The next iterator after it

    @@ -220,12 +219,12 @@

    - iterator::template prior<It>::type + iterator::template prior<It>::type

    - The type of the next element from It + The type of the next element from It

    @@ -237,12 +236,12 @@

    - iterator::template prior<It>::call(it) + iterator::template prior<It>::call(it)

    - The next iterator after it + The next iterator after it

    @@ -254,51 +253,51 @@

    - iterator::template advance<It, N>::type + iterator::template advance<It, N>::type

    - The type of an iterator advanced N - elements from It + The type of an iterator advanced N + elements from It

    - Implemented in terms of next - and prior + Implemented in terms of next + and prior

    - iterator::template advance<It, N>::call(it) + iterator::template advance<It, N>::call(it)

    - An iterator advanced N - elements from it + An iterator advanced N + elements from it

    - Implemented in terms of next - and prior + Implemented in terms of next + and prior

    - iterator::template distance<It1, It2>::type + iterator::template distance<It1, It2>::type

    - The distance between iterators of type It1 - and It2 as an MPL + The distance between iterators of type It1 + and It2 as an MPL Integral Constant

    - iterator::template distance<It1, It2>::call(it1, it2) + iterator::template distance<It1, It2>::call(it1, it2)

    - The distance between iterator it1 - and it2 + The distance between iterator it1 + and it2

    @@ -329,56 +328,56 @@

    - iterator::template equal_to<It1, It2>::type + iterator::template equal_to<It1, It2>::type

    - The distance between iterators of type It1 - and It2 + The distance between iterators of type It1 + and It2

    - boost::same_type<It1, It2>::type + boost::same_type<It1, It2>::type

    - iterator::template equal_to<It1, It2>::call(it1, it2) + iterator::template equal_to<It1, It2>::call(it1, it2)

    - The distance between iterators it1 - and it2 + The distance between iterators it1 + and it2

    - boost::same_type<It1, It2>::type() + boost::same_type<It1, It2>::type()

    +
    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/iterator/iterator_facade.hpp>
     #include <boost/fusion/include/iterator_facade.hpp>
     
    -
    - - Example -
    +

    + + Example +

    - A full working example using iterator_facade is provided in triple.cpp + A full working example using iterator_facade is provided in triple.cpp in the extension examples.

    diff --git a/doc/html/fusion/extension/sequence_facade.html b/doc/html/fusion/extension/sequence_facade.html index 4ddb6fc7..38c49e7d 100644 --- a/doc/html/fusion/extension/sequence_facade.html +++ b/doc/html/fusion/extension/sequence_facade.html @@ -3,19 +3,19 @@ Sequence Facade - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,35 +24,34 @@ +

    + + Description +

    - The sequence_facade + The sequence_facade template provides an intrusive mechanism for producing a conforming Fusion iterator.

    -
    - - Synopsis -
    +

    + + Synopsis +

     template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
     struct sequence_facade;
     
    -
    - - Usage -
    +

    + + Usage +

    - The user of sequence_facade derives his sequence - type from a specialization of sequence_facade and passes the derived + The user of sequence_facade derives his sequence + type from a specialization of sequence_facade and passes the derived sequence type as the first template parameter. The second template parameter should be the traversal category of the sequence being implemented. The 3rd - parameter should be set to mpl::true_ + parameter should be set to mpl::true_ if the sequence is a view.

    @@ -60,8 +59,8 @@ type.

    -

    Table 1.91. Parameters

    -
    +

    Table 1.91. Parameters

    +
    @@ -82,19 +81,19 @@ -

    - sequence, Seq + sequence, Seq

    - A type derived from sequence_facade + A type derived from sequence_facade

    - N + N

    @@ -105,11 +104,11 @@
    +
    -
    -

    Table 1.92. Key Expressions

    -
    +
    +

    Table 1.92. Key Expressions

    +
    @@ -130,60 +129,60 @@ -

    - sequence::template begin<Seq>::type + sequence::template begin<Seq>::type

    - The type of an iterator to the beginning of a sequence of type Seq + The type of an iterator to the beginning of a sequence of type Seq

    - sequence::template begin<Seq>::call(seq) + sequence::template begin<Seq>::call(seq)

    - An iterator to the beginning of sequence seq + An iterator to the beginning of sequence seq

    - sequence::template end<Seq>::type + sequence::template end<Seq>::type

    - The type of an iterator to the end of a sequence of type Seq + The type of an iterator to the end of a sequence of type Seq

    - sequence::template end<Seq>::call(seq) + sequence::template end<Seq>::call(seq)

    - An iterator to the end of sequence seq + An iterator to the end of sequence seq

    - sequence::template size<Seq>::type + sequence::template size<Seq>::type

    - The size of a sequence of type Seq + The size of a sequence of type Seq as an MPL Integral Constant

    @@ -192,71 +191,71 @@

    - sequence::template size<Seq>::call(seq) + sequence::template size<Seq>::call(seq)

    - The size of sequence seq + The size of sequence seq

    - sequence::template at<Seq, N>::type + sequence::template at<Seq, N>::type

    - The type of element N - in a sequence of type Seq + The type of element N + in a sequence of type Seq

    - sequence::template at<Seq, N>::call(seq) + sequence::template at<Seq, N>::call(seq)

    - Element N in sequence - seq + Element N in sequence + seq

    - sequence::template value_at<Sequence, N>::type + sequence::template value_at<Sequence, N>::type

    - The type of the Nth - element in a sequence of type Seq + The type of the Nth + element in a sequence of type Seq

    +
    -
    - - Include -
    +

    + + Include +

     #include <boost/fusion/sequence/sequence_facade.hpp>
     #include <boost/fusion/include/sequence_facade.hpp>
     
    -
    - - Example -
    +

    + + Example +

    - A full working example using sequence_facade is provided in triple.cpp + A full working example using sequence_facade is provided in triple.cpp in the extension examples.

    diff --git a/doc/html/fusion/functional.html b/doc/html/fusion/functional.html index 119da0b6..c71c6ec8 100644 --- a/doc/html/fusion/functional.html +++ b/doc/html/fusion/functional.html @@ -3,7 +3,7 @@ Functional - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    Concepts
    @@ -65,11 +64,11 @@

    /functional.hpp>

    -

    - - Fused and unfused +

    + + Fused and unfused forms -

    +

    What is a function call?

    @@ -80,33 +79,33 @@ It is a name and a tuple written next to each other, left-to-right.

    - Although the C++ syntax does not allow to replace (a,b,c) - with some Fusion Sequence, introducing + Although the C++ syntax does not allow to replace (a,b,c) + with some Fusion Sequence, introducing yet another function provides a solution:

     invoke(f,my_sequence)
     

    - Alternatively it is possible to apply a simple transformation to f + Alternatively it is possible to apply a simple transformation to f in order to achieve the same effect:

     f tuple <=> f' (tuple)
     

    - Now, f' is an unary function that takes the arguments to - f as a tuple; f' - is the fused form of f. + Now, f' is an unary function that takes the arguments to + f as a tuple; f' + is the fused form of f. Reading the above equivalence right-to-left to get the inverse transformation, - f is the unfused - form of f'. + f is the unfused + form of f'.

    -

    - - Calling +

    + + Calling functions and function objects -

    +

    Having generic C++ code call back arbitrary functions provided by the client used to be a heavily repetitive task, as different functions can differ in @@ -119,8 +118,9 @@

    Transforming an unfused function into its fused counterpart allows n-ary calls - from an algorithm that invokes an unary Polymorphic - Function Object with Sequence + from an algorithm that invokes an unary Polymorphic + Function Object with Sequence arguments.

    @@ -129,11 +129,11 @@ variant has a corresponding generator function template that returns an adapter instance for the given argument.

    -

    - - Making +

    + + Making Fusion code callable through a function object interface -

    +

    Transforming a fused function into its unfused counterpart allows to create function objects to accept arbitrary calls. In other words, an unary function diff --git a/doc/html/fusion/functional/adapters.html b/doc/html/fusion/functional/adapters.html index 0839a84d..f5f0ecce 100644 --- a/doc/html/fusion/functional/adapters.html +++ b/doc/html/fusion/functional/adapters.html @@ -1,21 +1,22 @@ -Adapters + Adapters - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


    @@ -24,8 +25,7 @@
    fused
    fused_procedure
    diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html index f6b677b2..28492b6c 100644 --- a/doc/html/fusion/functional/adapters/fused.html +++ b/doc/html/fusion/functional/adapters/fused.html @@ -3,19 +3,19 @@ fused - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,51 +24,53 @@

    -fused -

    -
    - - Description -
    +fused
    +
    + + Description +

    - An unary Polymorphic Function - Object adapter template for Deferred - Callable Object target functions. It takes a Forward + An unary Polymorphic Function + Object adapter template for Deferred + Callable Object target functions. It takes a Forward Sequence that contains the arguments for the target function.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for a target function object that is const or, if the target function object is held by value, the adapter is const - these semantics have nothing to do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified + to the type of object pointed to by this which is specified with the first element in the sequence passed to the adapter).

    If the target function is a pointer to a class members, the corresponding object can be specified as a reference, pointer, or smart pointer. In case - of the latter, a freestanding get_pointer function must - be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). + of the latter, a freestanding get_pointer function must + be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr).

    /functional/adapter/fused.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <typename Function>
     class fused;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -95,12 +97,13 @@ @@ -110,44 +113,47 @@

    - Function + Function

    - A Deferred + A Deferred Callable Object

    -
    - - Model of -
    +
    + + Model of +

    Notation

    -
    R
    +
    R

    - A possibly const qualified Deferred + A possibly const qualified Deferred Callable Object type or reference type thereof

    -
    r
    +
    r

    - An object convertible to R + An object convertible to R

    -
    s
    +
    s

    - A Sequence of arguments that - are accepted by r + A Sequence of arguments that + are accepted by r

    -
    f
    +
    f

    - An instance of fused<R> + An instance of fused<R>

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -169,61 +175,61 @@

    - fused<R>(r) + fused<R>(r)

    Creates a fused function as described above, initializes the target - function with r. + function with r.

    - fused<R>() + fused<R>()

    - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

    - f(s) + f(s)

    - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

    -
    - - Example -
    +
    + + Example +
    -fused< std::plus<long> > f;
    -assert(f(make_vector(1,2l)) == 3l);
    +fused< std::plus<long> > f;
    +assert(f(make_vector(1,2l)) == 3l);
     
    -
    - - See also -
    +
    + + See also +
    diff --git a/doc/html/fusion/functional/adapters/fused_function_object.html b/doc/html/fusion/functional/adapters/fused_function_object.html index 6c35f8e5..ea01cb4e 100644 --- a/doc/html/fusion/functional/adapters/fused_function_object.html +++ b/doc/html/fusion/functional/adapters/fused_function_object.html @@ -3,19 +3,19 @@ fused_function_object - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,41 +24,43 @@ +
    + + Description +

    - An unary Polymorphic Function - Object adapter template for a Polymorphic - Function Object target function. It takes a Forward + An unary Polymorphic Function + Object adapter template for a Polymorphic + Function Object target function. It takes a Forward Sequence that contains the arguments for the target function.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for an target function object that is const or, if the target function object is held by value, the adapter is const).

    /functional/adapter/fused_function_object.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <class Function>
     class fused_function_object;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -85,12 +87,13 @@ @@ -100,45 +103,48 @@

    - Function + Function

    - Polymorphic Function + Polymorphic Function Object type

    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    R
    +
    R

    - A possibly const qualified Polymorphic + A possibly const qualified Polymorphic Function Object type or reference type thereof

    -
    r
    +
    r

    - An object convertible to R + An object convertible to R

    -
    s
    +
    s

    - A Sequence of arguments that - are accepted by r + A Sequence of arguments that + are accepted by r

    -
    f
    +
    f

    - An instance of fused<R> + An instance of fused<R>

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -160,55 +166,55 @@

    - fused_function_object<R>(r) + fused_function_object<R>(r)

    Creates a fused function as described above, initializes the target - function with r. + function with r.

    - fused_function_object<R>() + fused_function_object<R>()

    - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

    - f(s) + f(s)

    - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

    -
    - - Example -
    +
    + + Example +
     template<class SeqOfSeqs, class Func>
    -typename result_of::transform< zip_view<SeqOfSeqs> const,
    +typename result_of::transform< zip_view<SeqOfSeqs> const,
         fused_function_object<Func const &> >::type
     n_ary_transform(SeqOfSeqs const & s, Func const & f)
     {
    -    return transform(zip_view<SeqOfSeqs>(s),
    +    return transform(zip_view<SeqOfSeqs>(s),
             fused_function_object<Func const &>(f));
     }
     
    @@ -230,22 +236,23 @@
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<int,float> c(1,0.5f);
    -    assert(c == n_ary_transform(vector_tie(a,b), sub()));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<int,float> c(1,0.5f);
    +    assert(c == n_ary_transform(vector_tie(a,b), sub()));
     }
     
    -
    - - See +
    + + See also -
    + diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html index 3fb241c3..32fa9c5b 100644 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -3,19 +3,19 @@ fused_procedure - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,37 +24,38 @@ +
    + + Description +

    - An unary Polymorphic Function - Object adapter template for Callable - Object target functions. It takes a Forward + An unary Polymorphic Function + Object adapter template for Callable + Object target functions. It takes a Forward Sequence that contains the arguments for the target function.

    - The result is discared and the adapter's return type is void. + The result is discared and the adapter's return type is void.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for a target function object that is const or, if the target function object is held by value, the adapter is const - these semantics have nothing to do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified + to the type of object pointed to by this which is specified with the first element in the sequence passed to the adapter).

    If the target function is a pointer to a members function, the corresponding object can be specified as a reference, pointer, or smart pointer. In case - of the latter, a freestanding get_pointer function must - be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). + of the latter, a freestanding get_pointer function must + be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr).

    The target function must not be a pointer to a member object (dereferencing @@ -64,19 +65,19 @@

    /functional/adapter/fused_procedure.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <typename Function>
     class fused_procedure;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -103,12 +104,12 @@ @@ -118,45 +119,47 @@

    - Function + Function

    - Callable Object + Callable Object type

    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    R
    +
    R

    - A possibly const qualified Callable + A possibly const qualified Callable Object type or reference type thereof

    -
    r
    +
    r

    - An object convertible to R + An object convertible to R

    -
    s
    +
    s

    - A Sequence of arguments that - are accepted by r + A Sequence of arguments that + are accepted by r

    -
    f
    +
    f

    - An instance of fused<R> + An instance of fused<R>

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -178,74 +181,75 @@

    - fused_procedure<R>(r) + fused_procedure<R>(r)

    Creates a fused function as described above, initializes the target - function with r. + function with r.

    - fused_procedure<R>() + fused_procedure<R>()

    - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

    - f(s) + f(s)

    - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

    -
    - - Example -
    +
    + + Example +
     template<class SequenceOfSequences, class Func>
     void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
     {
    -    for_each(zip_view<SequenceOfSequences>(s),
    +    for_each(zip_view<SequenceOfSequences>(s),
             fused_procedure<Func const &>(f));
     }
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
         using namespace boost::lambda;
    -    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    -    assert(a == make_vector(1,0.5f));
    +    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    +    assert(a == make_vector(1,0.5f));
     }
     
    -
    - - See +
    + + See also -
    + diff --git a/doc/html/fusion/functional/adapters/unfused_generic.html b/doc/html/fusion/functional/adapters/unfused_generic.html index 487030d5..2466e19f 100644 --- a/doc/html/fusion/functional/adapters/unfused_generic.html +++ b/doc/html/fusion/functional/adapters/unfused_generic.html @@ -3,19 +3,19 @@ unfused_generic - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,53 +24,52 @@ +
    + + Description +

    - An n-ary Polymorphic Function - Object adapter template for an unary Polymorphic + An n-ary Polymorphic Function + Object adapter template for an unary Polymorphic Function Object target function. When called, its arguments are - bundled to a Random + bundled to a Random Access Sequence of references that is passed to the target function. Non-const LValue arguments are transported as references to non-const, otherwise references to const are used.

    -

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used if the target function object is const - or, in case the target function object is held by value, the adapter is const).

    /functional/adapter/unfused_generic.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <class Function>
     class unfused_generic;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -97,12 +96,13 @@ @@ -112,49 +112,52 @@

    - Function + Function

    - An unary Polymorphic + An unary Polymorphic Function Object

    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    F
    +
    F

    - A possibly const qualified, unary Polymorphic + A possibly const qualified, unary Polymorphic Function Object type or reference type thereof

    -
    f
    +
    f

    - An object convertible to F + An object convertible to F

    -
    UG
    +
    UG

    - The type unfused_generic<F> + The type unfused_generic<F>

    -
    ug
    +
    ug

    - An instance of UG, - initialized with f + An instance of UG, + initialized with f

    -
    a0...aN
    +
    a0...aN

    - Arguments to ug + Arguments to ug

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -176,48 +179,48 @@

    - UG(f) + UG(f)

    Creates a fused function as described above, initializes the target - function with f. + function with f.

    - UG() + UG()

    - Creates a fused function as described above, attempts to use F's default constructor. + Creates a fused function as described above, attempts to use F's default constructor.

    - ug(a0...aN) + ug(a0...aN)

    - Calls f with a - Sequence that contains references - to the arguments a0...aN. + Calls f with a + Sequence that contains references + to the arguments a0...aN.

    -
    - - Example -
    +
    + + Example +
     template <typename Function, typename T>
     class fused_bound_1st
    @@ -265,17 +268,17 @@
         assert(bind_1st(std::plus<float>(), 1)(0.5f) == 1.5f);
     }
     
    -
    - - See +
    + + See also -
    + diff --git a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html index 6ffbe6d8..6e2511b5 100644 --- a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html +++ b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html @@ -3,19 +3,19 @@ unfused_lvalue_args - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,43 +24,45 @@ +
    + + Description +

    - An n-ary Polymorphic Function - Object adapter template for an unary Polymorphic + An n-ary Polymorphic Function + Object adapter template for an unary Polymorphic Function Object target function. When called, its arguments are - bundled to a Random + bundled to a Random Access Sequence of references that is passed to the target function object. Only LValue arguments are accepted.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used if the target function object is const - or, in case the target function object is held by value, the adapter is const).

    /functional/adapter/unfused_lvalue_args.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <class Function>
     class unfused_lvalue_args;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -87,12 +89,13 @@ @@ -102,49 +105,52 @@

    - Function + Function

    - A unary Polymorphic + A unary Polymorphic Function Object

    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    F
    +
    F

    - A possibly const qualified, unary Polymorphic + A possibly const qualified, unary Polymorphic Function Object type or reference type thereof

    -
    f
    +
    f

    - An object convertible to F + An object convertible to F

    -
    UL
    +
    UL

    - The type unfused_lvalue_args<F> + The type unfused_lvalue_args<F>

    -
    ul
    +
    ul

    - An instance of UL, - initialized with f + An instance of UL, + initialized with f

    -
    a0...aN
    +
    a0...aN

    - Arguments to ul + Arguments to ul

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -166,48 +172,48 @@

    - UL(f) + UL(f)

    Creates a fused function as described above, initializes the target - function with f. + function with f.

    - UL() + UL()

    - Creates a fused function as described above, attempts to use F's default constructor. + Creates a fused function as described above, attempts to use F's default constructor.

    - ul(a0...aN) + ul(a0...aN)

    - Calls f with a - Sequence that contains references - to the arguments a0...aN. + Calls f with a + Sequence that contains references + to the arguments a0...aN.

    -
    - - Example -
    +
    + + Example +
     struct fused_incrementer
     {
    @@ -220,7 +226,7 @@
         template <class Seq>
         void operator()(Seq const & s) const
         {
    -        for_each(s,++boost::lambda::_1);
    +        for_each(s,++boost::lambda::_1);
         }
     };
     
    @@ -232,15 +238,15 @@
         assert(a == 3 && b == 'Y');
     }
     
    -
    - - See +
    + + See also -
    + diff --git a/doc/html/fusion/functional/adapters/unfused_rvalue_args.html b/doc/html/fusion/functional/adapters/unfused_rvalue_args.html index 37b9dcd9..b43863b9 100644 --- a/doc/html/fusion/functional/adapters/unfused_rvalue_args.html +++ b/doc/html/fusion/functional/adapters/unfused_rvalue_args.html @@ -3,19 +3,19 @@ unfused_rvalue_args - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,43 +24,45 @@ +
    + + Description +

    - An n-ary Polymorphic Function - Object adapter template for an unary Polymorphic + An n-ary Polymorphic Function + Object adapter template for an unary Polymorphic Function Object target function. When called, its arguments are - bundled to a Random + bundled to a Random Access Sequence of references that is passed to the target function object. All referenced objects in the sequence are const qualified.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used if the target function object is const - or, in case the target function object is held by value, the adapter is const).

    /functional/adapter/unfused_rvalue_args.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <class Function>
     class unfused_rvalue_args;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -87,12 +89,13 @@ @@ -102,49 +105,52 @@

    - Function + Function

    - A unary Polymorphic + A unary Polymorphic Function Object

    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    F
    +
    F

    - A possibly const qualified, unary Polymorphic + A possibly const qualified, unary Polymorphic Function Object type or reference type thereof

    -
    f
    +
    f

    - An object convertible to F + An object convertible to F

    -
    UR
    +
    UR

    - The type unfused_rvalue_args<F> + The type unfused_rvalue_args<F>

    -
    ur
    +
    ur

    - An instance of UR, - initialized with f + An instance of UR, + initialized with f

    -
    a0...aN
    +
    a0...aN

    - Arguments to ur + Arguments to ur

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -166,48 +172,48 @@

    - UR(f) + UR(f)

    Creates a fused function as described above, initializes the target - function with f. + function with f.

    - UR() + UR()

    - Creates a fused function as described above, attempts to use F's default constructor. + Creates a fused function as described above, attempts to use F's default constructor.

    - ur(a0...aN) + ur(a0...aN)

    - Calls f with a - Sequence that contains references - to the arguments a0...aN. + Calls f with a + Sequence that contains references + to the arguments a0...aN.

    -
    - - Example -
    +
    + + Example +
     struct sequence_printer
     {
    @@ -230,17 +236,17 @@
         print(24,"bottles of beer in",'a',"box.");
     }
     
    -
    - - See +
    + + See also -
    + diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html index 018c31fe..d7e4e349 100644 --- a/doc/html/fusion/functional/adapters/unfused_typed.html +++ b/doc/html/fusion/functional/adapters/unfused_typed.html @@ -3,19 +3,19 @@ unfused_typed - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,63 +24,59 @@ +
    + + Description +

    - An n-ary Polymorphic Function - Object adapter template for an unary Polymorphic + An n-ary Polymorphic Function + Object adapter template for an unary Polymorphic Function Object target function. When called, its arguments are - bundled to a Random + bundled to a Random Access Sequence that is passed to the target function object.

    The call operators of esulting function objects are strictly typed (in - other words, non-templatized) with the types from a Sequence. + other words, non-templatized) with the types from a Sequence.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used if the target function object is const - or, in case the target function object is held by value, the adapter is const).

    -

    /functional/adapter/unfused_typed.hpp>

    -
    - - Synopsis -
    +
    + + Synopsis +
     template <class Function, class Sequence>
     class unfused_typed;
     
    -
    - - Template +
    + + Template parameters -
    +
    @@ -108,12 +104,13 @@ @@ -125,12 +122,12 @@

    - Function + Function

    - A unary Polymorphic + A unary Polymorphic Function Object

    - Sequence + Sequence

    - A Sequence + A Sequence

    @@ -140,54 +137,57 @@
    -
    - - Model +
    + + Model of -
    +

    Notation

    -
    F
    +
    F

    - A possibly const qualified, unary Polymorphic + A possibly const qualified, unary Polymorphic Function Object type or reference type thereof

    -
    f
    +
    f

    - An object convertible to F + An object convertible to F

    -
    S
    +
    S

    - A Sequence of parameter types + A Sequence of parameter types

    -
    UT
    +
    UT

    - The type unfused_typed<F,S> + The type unfused_typed<F,S>

    -
    ut
    +
    ut

    - An instance of UT, - initialized with f + An instance of UT, + initialized with f

    -
    a0...aN
    +
    a0...aN

    - Arguments to ut, convertible - to the types in S + Arguments to ut, convertible + to the types in S

    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -209,50 +209,50 @@

    - UT(f) + UT(f)

    Creates a fused function as described above, initializes the target - function with f. + function with f.

    - UT() + UT()

    - Creates a fused function as described above, attempts to use F's default constructor. + Creates a fused function as described above, attempts to use F's default constructor.

    - ut(a0...aN) + ut(a0...aN)

    - Calls f with an - instance of S (or - a subsequence of S + Calls f with an + instance of S (or + a subsequence of S starting at the first element, if fewer arguments are given and - the overload hasn't been disabled) initialized with a0...aN. + the overload hasn't been disabled) initialized with a0...aN.

    -
    - - Example -
    +
    + + Example +
     struct add_assign // applies operator+=
     {
    @@ -318,16 +318,16 @@
         assert(a == 8 && b == 'Z');
     }
     
    -
    - - See also -
    +
    + + See also +
    diff --git a/doc/html/fusion/functional/concepts.html b/doc/html/fusion/functional/concepts.html index e15cbd36..272e5858 100644 --- a/doc/html/fusion/functional/concepts.html +++ b/doc/html/fusion/functional/concepts.html @@ -3,19 +3,19 @@ Concepts - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@ +
    + + Description +

    A pointer to a function, a pointer to member function, a pointer to member data, or a class type whose objects can appear immediately to the left of a function call operator.

    -
    - - Models -
    +
    + + Models +
    • function pointer types @@ -50,10 +50,10 @@ all kinds of function objects
    -
    - - Examples -
    +
    + + Examples +
     & a_free_function
     & a_class::a_static_member_function
    @@ -63,7 +63,8 @@
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     lambda::_1 += lambda::_2;
    -fusion::make_fused_function_object(std::less<int>())
    +fusion::make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html index d6ecf54c..0e8e17e9 100644 --- a/doc/html/fusion/functional/concepts/def_callable.html +++ b/doc/html/fusion/functional/concepts/def_callable.html @@ -1,21 +1,24 @@ -Deferred Callable Object + Deferred + Callable Object - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,66 +27,64 @@ +
    + + Description +

    - Callable Object + Callable Object types that work with Boost.ResultOf to determine the result of a call.

    -
    - - Refinement +
    + + Refinement of -
    - -

    Notation

    -
    F
    +
    F

    A possibly const qualified Deferred Callable Object type

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

    - Objects or references to objects with types A1 - ...AN + Objects or references to objects with types A1 + ...AN

    -
    T1 - ...TN
    +
    T1 + ...TN

    - Ti is Ai & - if ai is an LValue, - same as Ai, otherwise + Ti is Ai & + if ai is an LValue, + same as Ai, otherwise

    -
    - - Expression +
    + + Expression requirements -
    +
    @@ -104,36 +105,37 @@

    - boost::result_of< F(T1 - ...TN) >::type + boost::result_of< F(T1 + ...TN) >::type

    - Result of a call with A1 - ...AN-typed + Result of a call with A1 + ...AN-typed arguments

    -
    - - Models -
    +
    + + Models +
    -
    - - Examples -
    +
    + + Examples +
     & a_free_function
     & a_class::a_static_member_function
    @@ -143,7 +145,8 @@
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     // Note: Boost.Lambda expressions don't work with __boost_result_of__
    -fusion::make_fused_function_object(std::less<int>())
    +fusion::make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html index da6457dc..3f79e4e7 100644 --- a/doc/html/fusion/functional/concepts/poly.html +++ b/doc/html/fusion/functional/concepts/poly.html @@ -1,21 +1,23 @@ -Polymorphic Function Object + Polymorphic Function + Object - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,64 +26,67 @@ +
    + + Description +

    - A non-member-pointer Deferred + A non-member-pointer Deferred Callable Object type.

    -
    - - Refinement +
    + + Refinement of -
    +

    Notation

    -
    F
    +
    F

    A possibly const-qualified Polymorphic Function Object type

    -
    f
    +
    f

    An object or reference to an object of type F

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

    - Objects or references to objects with types A1 - ...AN + Objects or references to objects with types A1 + ...AN

    -
    T1 - ...TN
    +
    T1 + ...TN

    - Ti is Ai & - if ai is an LValue, - same as Ai, otherwise + Ti is Ai & + if ai is an LValue, + same as Ai, otherwise

    -
    - - Expression +
    + + Expression requirements -
    +
    @@ -108,15 +113,15 @@

    - f(a1, - ...aN) + f(a1, + ...aN)

    - result_of< + result_of< F(T1, - ...TN) >::type + ...TN) >::type

    @@ -126,10 +131,10 @@
    -
    - - Models -
    +
    + + Models +
    -
    - - Examples -
    +
    + + Examples +
     & a_free_function
     & a_class::a_static_member_function
    @@ -152,7 +157,8 @@
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     // Note: Boost.Lambda expressions don't work with __boost_result_of__
    -fusion::make_fused_function_object(std::less<int>())
    +fusion::make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/reg_callable.html b/doc/html/fusion/functional/concepts/reg_callable.html index 737d78dc..d0273cb5 100644 --- a/doc/html/fusion/functional/concepts/reg_callable.html +++ b/doc/html/fusion/functional/concepts/reg_callable.html @@ -1,21 +1,23 @@ -Regular Callable Object + Regular Callable + Object - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,53 +26,53 @@ +
    + + Description +

    - A non-member-pointer Callable + A non-member-pointer Callable Object type: A pointer to a function or a class type whose objects can appear immediately to the left of a function call operator.

    -
    - - Refinement +
    + + Refinement of -
    - + +

    Notation

    -
    F
    +
    F

    A possibly const qualified Deferred Callable Object type

    -
    f
    +
    f

    An object or reference to an object of type F

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

    - Objects or references to objects with types A1 - ...AN + Objects or references to objects with types A1 + ...AN

    -
    - - Expression +
    + + Expression requirements -
    +
    @@ -97,8 +99,8 @@

    - f(a1, - ...aN) + f(a1, + ...aN)

    @@ -113,10 +115,10 @@
    -
    - - Models -
    +
    + + Models +
    • function pointer types @@ -125,10 +127,10 @@ all kinds of function objects
    -
    - - Examples -
    +
    + + Examples +
     & a_free_function
     & a_class::a_static_member_function
    @@ -136,7 +138,8 @@
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     lambda::_1 += lambda::_2;
    -fusion::make_fused_function_object(std::less<int>())
    +fusion::make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html index 7e4d78a6..3cea4633 100644 --- a/doc/html/fusion/functional/generation.html +++ b/doc/html/fusion/functional/generation.html @@ -3,7 +3,7 @@ Generation - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    Functions
    Metafunctions
    diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html index ea13ff5c..5deecb56 100644 --- a/doc/html/fusion/functional/generation/functions.html +++ b/doc/html/fusion/functional/generation/functions.html @@ -3,19 +3,20 @@ Functions - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    make_fused
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused.html b/doc/html/fusion/functional/generation/functions/mk_fused.html index d8736b7c..899edc04 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused.html @@ -1,21 +1,23 @@ -make_fused + + make_fused - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,30 +26,32 @@
    - - Description + + Description

    - Creates a fused adapter for a given Deferred Callable Object. - The usual element + Creates a fused adapter for a given Deferred Callable Object. + The usual element conversion is applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_fused<F>::type
    +inline typename make_fused<F>::type
     make_fused(F const & f);
     
    - - Parameters + + Parameters
    @@ -75,12 +79,13 @@ @@ -92,52 +97,53 @@

    - f + f

    - Model of Deferred + Model of Deferred Callable Object

    - - Expression + + Expression Semantics
     make_fused(f);
     

    - Return type: A specialization of fused. + Return type: A specialization of fused.

    - Semantics: Returns a fused adapter for f. + Semantics: Returns a fused adapter for f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused.hpp>
     #include <boost/fusion/include/make_fused.hpp>
     
    - - Example + + Example
     float sub(float a, float b) { return a - b; }
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<float,float> c(1.0f,0.5f);
    -    assert(c == transform(zip(a,b), make_fused(& sub)));
    -    assert(c == transform(zip(a,b), make_fused(std::minus<float>())));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<float,float> c(1.0f,0.5f);
    +    assert(c == transform(zip(a,b), make_fused(& sub)));
    +    assert(c == transform(zip(a,b), make_fused(std::minus<float>())));
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html index 501c7ee4..136548c9 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html @@ -1,21 +1,24 @@ -make_fused_function_object + + make_fused_function_object - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +27,33 @@
    - - Description + + Description

    - Creates a fused_function_object adapter - for a given Deferred - Callable Object. The usual element + Creates a fused_function_object adapter + for a given Deferred + Callable Object. The usual element conversion is applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_fused_function_object<F>::type
    +inline typename make_fused_function_object<F>::type
     make_fused_function_object(F const & f);
     
    - - Parameters + + Parameters
    @@ -76,12 +81,13 @@ @@ -93,31 +99,31 @@

    - f + f

    - Model of Polymorphic + Model of Polymorphic Function Object

    - - Expression + + Expression Semantics
     make_fused_function_object(f);
     

    - Return type: A specialization of fused_function_object. + Return type: A specialization of fused_function_object.

    - Semantics: Returns a fused_function_object adapter - for f. + Semantics: Returns a fused_function_object adapter + for f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - - Example + + Example
     struct sub
    @@ -138,21 +144,22 @@
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<int,float> c(1,0.5f);
    -    assert(c == transform(zip(a,b), make_fused_function_object(sub())));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<int,float> c(1,0.5f);
    +    assert(c == transform(zip(a,b), make_fused_function_object(sub())));
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html index 18d51b37..44ae9d6c 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html @@ -1,21 +1,24 @@ -make_fused_procedure + + make_fused_procedure - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +27,33 @@
    - - Description + + Description

    - Creates a fused_procedure adapter for - a given Deferred - Callable Object. The usual element + Creates a fused_procedure adapter for + a given Deferred + Callable Object. The usual element conversion applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_fused_procedure<F>::type
    +inline typename make_fused_procedure<F>::type
     make_fused_procedure(F const & f);
     
    - - Parameters + + Parameters
    @@ -76,12 +81,12 @@ @@ -93,47 +98,48 @@

    - f + f

    - Model of Callable + Model of Callable Object

    - - Expression + + Expression Semantics
     make_fused_procedure(f);
     

    - Return type: A specialization of fused_procedure. + Return type: A specialization of fused_procedure.

    - Semantics: Returns a fused_procedure adapter for - f. + Semantics: Returns a fused_procedure adapter for + f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused_procedure.hpp>
     #include <boost/fusion/include/make_fused_procedure.hpp>
     
    - - Example + + Example
    -vector<int,int,int> v(1,2,3);
    +vector<int,int,int> v(1,2,3);
     using namespace boost::lambda;
     make_fused_procedure(_1 += _2 - _3)(v);
    -assert(front(v) == 0);
    +assert(front(v) == 0);
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html b/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html index 23ce62fe..f11a9d87 100644 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html +++ b/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html @@ -1,21 +1,24 @@ -make_unfused_generic + + make_unfused_generic - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +27,33 @@
    - - Description + + Description

    - Creates a unfused_generic adapter for - a given, unary Polymorphic - Function Object. The usual element + Creates a unfused_generic adapter for + a given, unary Polymorphic + Function Object. The usual element conversion is applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_unfused_generic<F>::type
    +inline typename make_unfused_generic<F>::type
     make_unfused_generic(F const & f);
     
    - - Parameters + + Parameters
    @@ -76,12 +81,13 @@ @@ -93,31 +99,31 @@

    - f + f

    - Model of Polymorphic + Model of Polymorphic Function Object

    - - Expression + + Expression Semantics
     make_unfused_generic(f);
     

    - Return type: A specialization of unfused_generic. + Return type: A specialization of unfused_generic.

    - Semantics: Returns a unfused_generic adapter for - f. + Semantics: Returns a unfused_generic adapter for + f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_generic.hpp>
     #include <boost/fusion/include/make_unfused_generic.hpp>
     
    - - Example + + Example
     struct bottles_song
    @@ -152,14 +158,15 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html b/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html index 928cd398..82876105 100644 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html +++ b/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html @@ -1,21 +1,24 @@ -make_unfused_lvalue_args + + make_unfused_lvalue_args - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +27,33 @@
    - - Description + + Description

    - Creates a unfused_lvalue_args adapter - for a given, unary Polymorphic - Function Object. The usual element + Creates a unfused_lvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element conversion is applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_unfused_lvalue_args<F>::type
    +inline typename make_unfused_lvalue_args<F>::type
     make_unfused_lvalue_args(F const & f);
     
    - - Parameters + + Parameters
    @@ -76,12 +81,13 @@ @@ -93,31 +99,31 @@

    - f + f

    - Model of Polymorphic + Model of Polymorphic Function Object

    - - Expression + + Expression Semantics
     make_unfused_lvalue_args(f);
     

    - Return type: A specialization of unfused_lvalue_args. + Return type: A specialization of unfused_lvalue_args.

    - Semantics: Returns a unfused_lvalue_args adapter - for f. + Semantics: Returns a unfused_lvalue_args adapter + for f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
     #include <boost/fusion/include/make_unfused_lvalue_args.hpp>
     
    - - Example + + Example
     struct fused_incrementer
    @@ -131,7 +137,7 @@
         template <class Seq>
         void operator()(Seq const & s) const
         {
    -        for_each(s,++boost::lambda::_1);
    +        for_each(s,++boost::lambda::_1);
         }
     };
     
    @@ -143,14 +149,15 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html b/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html index b84a5acd..138b6e7b 100644 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html +++ b/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html @@ -1,21 +1,23 @@ -make_unfused_rvalue_args + + make_unfused_rvalue_args - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +26,33 @@
    - - Description + + Description

    - Creates a unfused_rvalue_args adapter - for a given, unary Polymorphic - Function Object. The usual element + Creates a unfused_rvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element conversion is applied to the target function.

    - - Synopsis + + Synopsis
     template <typename F>
    -inline typename make_unfused_rvalue_args<F>::type
    +inline typename make_unfused_rvalue_args<F>::type
     make_unfused_rvalue_args(F const & f);
     
    - - Parameters + + Parameters
    @@ -76,12 +80,13 @@ @@ -93,31 +98,31 @@

    - f + f

    - Model of Polymorphic + Model of Polymorphic Function Object

    - - Expression + + Expression Semantics
     make_unfused_rvalue_args(f);
     

    - Return type: A specialization of unfused_rvalue_args. + Return type: A specialization of unfused_rvalue_args.

    - Semantics: Returns a unfused_rvalue_args adapter - for f. + Semantics: Returns a unfused_rvalue_args adapter + for f.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
     #include <boost/fusion/include/make_unfused_rvalue_args.hpp>
     
    - - Example + + Example
     struct sequence_printer
    @@ -142,14 +147,15 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/generation/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html index e3e40ce8..1dcc003f 100644 --- a/doc/html/fusion/functional/generation/metafunctions.html +++ b/doc/html/fusion/functional/generation/metafunctions.html @@ -3,19 +3,21 @@ Metafunctions - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +26,7 @@
    make_fused
    diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html index 7d7fd7e5..d31f3854 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html @@ -1,21 +1,23 @@ -make_fused + + make_fused - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +26,28 @@
    - - Description + + Description

    - Returns the result type of make_fused. + Returns the result type of make_fused.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused.hpp>
     #include <boost/fusion/include/make_fused.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +60,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html index 5ef52865..dde99913 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html @@ -1,21 +1,24 @@ -make_fused_function_object + + make_fused_function_object - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +27,28 @@
    - - Description + + Description

    - Returns the result type of make_fused_function_object. + Returns the result type of make_fused_function_object.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +61,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html index e2aad7bb..bed50f2f 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html @@ -1,21 +1,24 @@ -make_fused_procedure + + make_fused_procedure - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +27,28 @@
    - - Description + + Description

    - Returns the result type of make_fused_procedure. + Returns the result type of make_fused_procedure.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_fused_procedure.hpp>
     #include <boost/fusion/include/make_fused_procedure.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +61,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html index 94a594a4..f065e18d 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html @@ -1,21 +1,24 @@ -make_unfused_generic + + make_unfused_generic - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +27,28 @@
    - - Description + + Description

    - Returns the result type of make_unfused_generic. + Returns the result type of make_unfused_generic.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_generic.hpp>
     #include <boost/fusion/include/make_unfused_generic.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +61,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html index dc938553..77172343 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html @@ -1,21 +1,24 @@ -make_unfused_lvalue_args + + make_unfused_lvalue_args - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +27,28 @@
    - - Description + + Description

    - Returns the result type of make_unfused_lvalue_args. + Returns the result type of make_unfused_lvalue_args.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
     #include <boost/fusion/include/make_unfused_lvalue_args.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +61,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html index 55baf667..90d1841a 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html @@ -1,21 +1,23 @@ -make_unfused_rvalue_args + + make_unfused_rvalue_args - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,27 +26,28 @@
    - - Description + + Description

    - Returns the result type of make_unfused_rvalue_args. + Returns the result type of make_unfused_rvalue_args.

    - - Header + + Header
     #include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
     #include <boost/fusion/include/make_unfused_rvalue_args.hpp>
     
    - - Synopsis + + Synopsis
     namespace result_of
    @@ -57,11 +60,12 @@
     }
     
    - - See + + See also
    - + diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html index 29085191..107b46e1 100644 --- a/doc/html/fusion/functional/invocation.html +++ b/doc/html/fusion/functional/invocation.html @@ -3,19 +3,20 @@ Invocation - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    Functions
    Metafunctions
    diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html index d7a18181..f2820769 100644 --- a/doc/html/fusion/functional/invocation/functions.html +++ b/doc/html/fusion/functional/invocation/functions.html @@ -3,7 +3,7 @@ Functions - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    - - Description + + Description

    - Calls a Deferred - Callable Object with the arguments from a Sequence. + Calls a Deferred + Callable Object with the arguments from a Sequence.

    The first template parameter can be specialized explicitly to avoid copying @@ -41,32 +42,32 @@

    If the target function is a pointer to a class members, the corresponding object can be specified as a reference, pointer, or smart pointer. In - case of the latter, a freestanding get_pointer function - must be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). + case of the latter, a freestanding get_pointer function + must be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr).

    - - Synopsis + + Synopsis
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke<Function, Sequence>::type
    +typename result_of::invoke<Function, Sequence>::type
     invoke(Function f, Sequence & s);
     
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke<Function, Sequence const>::type
    +typename result_of::invoke<Function, Sequence const>::type
     invoke(Function f, Sequence const & s);
     
    - - Parameters + + Parameters
    @@ -95,12 +96,13 @@ @@ -113,12 +115,13 @@ @@ -131,43 +134,45 @@

    - f + f

    - A Deferred + A Deferred Callable Object

    - s + s

    - A Forward + A Forward Sequence

    - - Expression + + Expression Semantics
     invoke(f,s);
     

    - Return type: Return type of f when invoked with the elements in - s as its arguments. + Return type: Return type of f when invoked with the elements in + s as its arguments.

    - Semantics: Invokes f - with the elements in s + Semantics: Invokes f + with the elements in s as arguments and returns the result of the call expression.

    /functional/invocation/invoke.hpp>

    - - Example + + Example
    -std::plus<int> add;
    -assert(invoke(add,make_vector(1,1)) == 2);
    +std::plus<int> add;
    +assert(invoke(add,make_vector(1,1)) == 2);
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html index 475ed4f7..f58d50cd 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html @@ -1,21 +1,23 @@ -invoke_function_object + + invoke_function_object - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,43 +26,46 @@
    - - Description + + Description

    - Calls a Polymorphic Function - Object with the arguments from a Sequence. + Calls a Polymorphic Function + Object with the arguments from a Sequence.

    The first template parameter can be specialized explicitly to avoid copying and/or to control the const qualification of a function object.

    - - Synopsis + + Synopsis
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke_function_object<Function, Sequence>::type
    +typename result_of::invoke_function_object<Function, Sequence>::type
     invoke_function_object(Function f, Sequence & s);
     
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke_function_object<Function, Sequence const>::type
    +typename result_of::invoke_function_object<Function, Sequence const>::type
     invoke_function_object(Function f, Sequence const & s);
     
    - - Parameters + + Parameters
    @@ -89,12 +94,13 @@ @@ -107,12 +113,13 @@ @@ -125,28 +132,28 @@

    - f + f

    - Model of Polymorphic + Model of Polymorphic Function Object

    - s + s

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     invoke_function_object(f,s);
     

    - Return type: Return type of f when invoked with the elements in - s as its arguments. + Return type: Return type of f when invoked with the elements in + s as its arguments.

    - Semantics: Invokes f - with the elements in s + Semantics: Invokes f + with the elements in s as arguments and returns the result of the call expression.

    /functional/invocation/invoke_function_object.hpp>

    - - Example + + Example
     struct sub
    @@ -168,19 +175,21 @@
     void try_it()
     {
         sub f;
    -    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
    +    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_proc.html b/doc/html/fusion/functional/invocation/functions/invoke_proc.html index 8a088a94..04dd70b2 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_proc.html @@ -1,21 +1,23 @@ -invoke_procedure + + invoke_procedure - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,16 +26,16 @@
    - - Description + + Description

    - Calls a Callable - Object with the arguments from a Sequence. + Calls a Callable + Object with the arguments from a Sequence. The result of the call is ignored.

    @@ -43,8 +45,8 @@

    For pointers to class members corresponding object can be specified as a reference, pointer, or smart pointer. In case of the latter, a freestanding - get_pointer function must be defined (Boost provides - this function for std::auto_ptr and boost::shared_ptr). + get_pointer function must be defined (Boost provides + this function for std::auto_ptr and boost::shared_ptr).

    The target function must not be a pointer to a member object (dereferencing @@ -52,27 +54,29 @@ isn't implemented).

    - - Synopsis + + Synopsis
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke_procedure<Function, Sequence>::type
    +typename result_of::invoke_procedure<Function, Sequence>::type
     invoke_procedure(Function f, Sequence & s);
     
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke_procedure<Function, Sequence const>::type
    +typename result_of::invoke_procedure<Function, Sequence const>::type
     invoke_procedure(Function f, Sequence const & s);
     
    - - Parameters + + Parameters
    @@ -101,12 +105,12 @@ @@ -119,12 +123,13 @@ @@ -137,44 +142,46 @@

    - f + f

    - Model of Callable + Model of Callable Object

    - s + s

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     invoke_procedure(f,s);
     

    - Return type: void + Return type: void

    - Semantics: Invokes f - with the elements in s + Semantics: Invokes f + with the elements in s as arguments.

    /functional/invocation/invoke_procedure.hpp>

    - - Example + + Example
    -vector<int,int> v(1,2);
    +vector<int,int> v(1,2);
     using namespace boost::lambda;
     invoke_procedure(_1 += _2, v);
    -assert(front(v) == 3);
    +assert(front(v) == 3);
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/invocation/metafunctions.html b/doc/html/fusion/functional/invocation/metafunctions.html index 1493bf5f..763b05f7 100644 --- a/doc/html/fusion/functional/invocation/metafunctions.html +++ b/doc/html/fusion/functional/invocation/metafunctions.html @@ -3,19 +3,20 @@ Metafunctions - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    - - Description + + Description

    - Returns the result type of invoke. + Returns the result type of invoke.

    - - Synopsis + + Synopsis
     namespace result_of
    @@ -51,13 +51,13 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html index bfdf53a2..f63eb321 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html @@ -1,21 +1,23 @@ -invoke_function_object + + invoke_function_object - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +26,20 @@
    - - Description + + Description

    - Returns the result type of invoke_function_object. + Returns the result type of invoke_function_object.

    - - Synopsis + + Synopsis
     namespace result_of
    @@ -52,13 +55,14 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html index c087b331..54452d8d 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html @@ -1,21 +1,23 @@ -invoke_procedure + + invoke_procedure - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +26,20 @@
    - - Description + + Description

    - Returns the result type of invoke_procedure. + Returns the result type of invoke_procedure.

    - - Synopsis + + Synopsis
     namespace result_of
    @@ -52,13 +55,14 @@
     }
     
    - - See + + See also
    diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html index 3b762476..5d454021 100644 --- a/doc/html/fusion/introduction.html +++ b/doc/html/fusion/introduction.html @@ -3,7 +3,7 @@ Introduction - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +24,14 @@

    An advantage other languages such as Python and Lisp/ Scheme, ML and Haskell, etc., over C++ is the ability to have heterogeneous containers that can hold arbitrary element types. All the containers in the standard library can only - hold a specific type. A vector<int> - can only hold ints. A list<X> can - only hold elements of type X, + hold a specific type. A vector<int> + can only hold ints. A list<X> can + only hold elements of type X, and so on.

    @@ -42,8 +41,8 @@ on virtual functions to provide polymorphic behavior since the actual type is erased as soon as you store a pointer to a derived class to a pointer to its base. The held objects must be related: you cannot hold objects of unrelated - types such as char, int, class - X, float, + types such as char, int, class + X, float, etc. Oh sure you can use something like Boost.Any to hold arbitrary types, but then you pay more in terms of runtime costs and due to the fact that you practically erased all type information, you'll have @@ -52,7 +51,7 @@

    The Boost.Tuple library written by Jaakko - Jarvi provides heterogeneous containers in C++. The tuple + Jarvi provides heterogeneous containers in C++. The tuple is a basic data structure that can hold heterogeneous types. It's a good first step, but it's not complete. What's missing are the algorithms. It's nice that we can store and retrieve data to and from tuples, pass them around as arguments @@ -90,23 +89,23 @@ 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 + 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_view + 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.

    The lazy evaluation scheme where algorithms return views - allows operations such as push_back to be totally generic. In - Fusion, push_back is actually a generic algorithm - that works on all sequences. Given an input sequence s - and a value x, Fusion's push_back algorithm simply returns - a joint_view: - a view that holds a reference to the original sequence s - and the value x. Functions + allows operations such as push_back to be totally generic. In + Fusion, push_back is actually a generic algorithm + that works on all sequences. Given an input sequence s + and a value x, Fusion's push_back algorithm simply returns + a joint_view: + a view that holds a reference to 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.

    diff --git a/doc/html/fusion/iterator.html b/doc/html/fusion/iterator.html index cdcc37eb..d28a765e 100644 --- a/doc/html/fusion/iterator.html +++ b/doc/html/fusion/iterator.html @@ -3,7 +3,7 @@ Iterator - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    Concepts
    @@ -72,12 +71,12 @@ iterators are a fundamental concept in Fusion. As with MPL and STL iterators describe positions, and provide access to data within an underlying - Sequence. + Sequence.

    -

    - - Header -

    +

    + + Header +

     #include <boost/fusion/iterator.hpp>
     #include <boost/fusion/include/iterator.hpp>
    diff --git a/doc/html/fusion/iterator/concepts.html b/doc/html/fusion/iterator/concepts.html
    index 93d6eda5..33096998 100644
    --- a/doc/html/fusion/iterator/concepts.html
    +++ b/doc/html/fusion/iterator/concepts.html
    @@ -3,19 +3,20 @@
     
     Concepts
     
    -
    +
     
     
     
    -
    +
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    Forward Iterator
    @@ -35,11 +35,16 @@ Access Iterator

    - Fusion iterators are divided into different traversal categories. Forward - Iterator is the most basic concept. Bidirectional - Iterator is a refinement of Forward - Iterator. Random - Access Iterator is a refinement of Bidirectional + Fusion iterators are divided into different traversal categories. Forward + Iterator is the most basic concept. Bidirectional + Iterator is a refinement of Forward + Iterator. Random + Access Iterator is a refinement of Bidirectional Iterator.

    diff --git a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html index 661087e9..048d5c1c 100644 --- a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html +++ b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html @@ -1,21 +1,24 @@ -Bidirectional Iterator +Bidirectional + Iterator - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,54 +27,56 @@ +
    + + Description +

    - A Bidirectional Iterator traverses a Sequence + A Bidirectional Iterator traverses a Sequence allowing movement in either direction one element at a time.

    Notation

    -
    i
    +
    i

    A Bidirectional Iterator

    -
    I
    +
    I

    A Bidirectional Iterator type

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    -
    - - Refinement +
    + + Refinement of -
    +

    - Forward Iterator + Forward Iterator

    -
    - - Expression +
    + + Expression requirements -
    +

    - In addition to the requirements defined in Forward + In addition to the requirements defined in Forward Iterator, the following expressions must be valid:

    @@ -101,12 +106,13 @@ @@ -119,12 +125,13 @@ @@ -137,12 +144,13 @@ @@ -155,12 +163,13 @@ @@ -172,11 +181,11 @@

    - next(i) + next(i)

    - Bidirectional + Bidirectional Iterator

    - prior(i) + prior(i)

    - Bidirectional + Bidirectional Iterator

    - advance_c<N>(i) + advance_c<N>(i)

    - Bidirectional + Bidirectional Iterator

    - advance<M>(i) + advance<M>(i)

    - Bidirectional + Bidirectional Iterator

    -
    - - Meta +
    + + Meta Expressions -
    +
    @@ -197,7 +206,7 @@

    - result_of::prior<I>::type + result_of::prior<I>::type

    @@ -207,14 +216,15 @@
    -
    - - Expression +
    + + Expression Semantics -
    +

    The semantics of an expression are defined only where they differ from, - or are not defined in Forward + or are not defined in Forward Iterator

    @@ -237,60 +247,63 @@

    - prior(i) + prior(i)

    - An iterator to the element preceding i + An iterator to the element preceding i

    -
    - - Invariants -
    +
    + + Invariants +

    - In addition to the invariants of Forward + In addition to the invariants of Forward Iterator, the following invariants always hold:

    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/iterator/concepts/forward_iterator.html b/doc/html/fusion/iterator/concepts/forward_iterator.html index 77858e8c..d26df336 100644 --- a/doc/html/fusion/iterator/concepts/forward_iterator.html +++ b/doc/html/fusion/iterator/concepts/forward_iterator.html @@ -1,21 +1,23 @@ -Forward Iterator +Forward + Iterator - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,47 +26,47 @@ +
    + + Description +

    - A Forward Iterator traverses a Sequence + A Forward Iterator traverses a Sequence allowing movement in only one direction through it's elements, one element at a time.

    Notation

    -
    i, - j
    +
    i, + j

    Forward Iterators

    -
    I, - J
    +
    I, + J

    Forward Iterator types

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    -
    - - Expression +
    + + Expression requirements -
    +

    A type models Forward Iterator if, in addition to being CopyConstructable, the following expressions are valid: @@ -96,12 +98,13 @@

    - next(i) + next(i)

    - Forward + Forward Iterator

    @@ -114,8 +117,8 @@

    - i == - j + i == + j

    @@ -132,8 +135,8 @@

    - i != - j + i != + j

    @@ -150,12 +153,13 @@

    - advance_c<N>(i) + advance_c<N>(i)

    - Forward + Forward Iterator

    @@ -168,12 +172,13 @@

    - advance<M>(i) + advance<M>(i)

    - Forward + Forward Iterator

    @@ -186,14 +191,14 @@

    - distance(i, - j) + distance(i, + j)

    - result_of::distance<I, - J>::type + result_of::distance<I, + J>::type

    @@ -205,12 +210,12 @@

    - deref(i) + deref(i)

    - result_of::deref<I>::type + result_of::deref<I>::type

    @@ -222,12 +227,12 @@

    - *i + *i

    - result_of::deref<I>::type + result_of::deref<I>::type

    @@ -238,11 +243,11 @@ -
    - - Meta +
    + + Meta Expressions -
    +
    @@ -264,7 +269,7 @@

    - result_of::next<I>::type + result_of::next<I>::type

    @@ -276,8 +281,8 @@

    - result_of::equal_to<I, - J>::type + result_of::equal_to<I, + J>::type

    @@ -289,8 +294,8 @@

    - result_of::advance_c<I, - N>::type + result_of::advance_c<I, + N>::type

    @@ -302,7 +307,7 @@

    - result_of::advance<I ,M>::type + result_of::advance<I ,M>::type

    @@ -314,7 +319,7 @@

    - result_of::distance<I ,J>::type + result_of::distance<I ,J>::type

    @@ -326,7 +331,7 @@

    - result_of::deref<I>::type + result_of::deref<I>::type

    @@ -338,7 +343,7 @@

    - result_of::value_of<I>::type + result_of::value_of<I>::type

    @@ -349,11 +354,11 @@
    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -375,20 +380,20 @@ @@ -426,134 +431,134 @@

    - next(i) + next(i)

    - An iterator to the element following i + An iterator to the element following i

    - i == - j + i == + j

    @@ -400,8 +405,8 @@

    - i != - j + i != + j

    @@ -413,12 +418,12 @@

    - advance_c<N>(i) + advance_c<N>(i)

    - An iterator n elements after i + An iterator n elements after i in the sequence

    - advance<M>(i) + advance<M>(i)

    - Equivalent to advance_c<M::value>(i) + Equivalent to advance_c<M::value>(i)

    - distance(i, - j) + distance(i, + j)

    - The number of elements between i - and j + The number of elements between i + and j

    - deref(i) + deref(i)

    - The element at positioni + The element at positioni

    - *i + *i

    - Equivalent to deref(i) + Equivalent to deref(i)

    -
    - - Invariants -
    +
    + + Invariants +

    The following invariants always hold:

      -
    • !(i - == j) == (i != j)
    • -
    • next(i) == advance_c<1>(i)
    • -
    • distance(i, advance_c<N>(i)) == N
    • +
    • !(i + == j) == (i != j)
    • +
    • next(i) == advance_c<1>(i)
    • +
    • distance(i, advance_c<N>(i)) == N
    • - Using next to traverse the + Using next to traverse the sequence will never return to a previously seen position
    • -deref(i) is equivalent to *i +deref(i) is equivalent to *i
    • - If i == - j then *i is equivalent to *j + If i == + j then *i is equivalent to *j
    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/iterator/concepts/random_access_iterator.html b/doc/html/fusion/iterator/concepts/random_access_iterator.html index 4a7dbf79..10060527 100644 --- a/doc/html/fusion/iterator/concepts/random_access_iterator.html +++ b/doc/html/fusion/iterator/concepts/random_access_iterator.html @@ -1,21 +1,23 @@ -Random Access Iterator +Random + Access Iterator - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,58 +26,60 @@ +
    + + Description +

    - A Random Access Iterator traverses a Sequence + A Random Access Iterator traverses a Sequence moving in either direction, permitting efficient arbitrary distance movements back and forward through the sequence.

    Notation

    -
    i, - j
    +
    i, + j

    Random Access Iterators

    -
    I, - J
    +
    I, + J

    Random Access Iterator types

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    -
    - - Refinement +
    + + Refinement of -
    +

    - Bidirectional + Bidirectional Iterator

    -
    - - Expression +
    + + Expression requirements -
    +

    - In addition to the requirements defined in Bidirectional + In addition to the requirements defined in Bidirectional Iterator, the following expressions must be valid:

    @@ -105,12 +109,13 @@ @@ -123,12 +128,13 @@ @@ -141,12 +147,13 @@ @@ -159,12 +166,13 @@ @@ -176,11 +184,11 @@

    - next(i) + next(i)

    - Random + Random Access Iterator

    - prior(i) + prior(i)

    - Random + Random Access Iterator

    - advance_c<N>(i) + advance_c<N>(i)

    - Random + Random Access Iterator

    - advance<M>(i) + advance<M>(i)

    - Random + Random Access Iterator

    -
    - - Meta +
    + + Meta Expressions -
    +
    @@ -202,8 +210,8 @@

    - result_of::advance_c<I, - N>::type + result_of::advance_c<I, + N>::type

    @@ -215,8 +223,8 @@

    - result_of::advance<I, - M>::type + result_of::advance<I, + M>::type

    @@ -228,7 +236,7 @@

    - result_of::distance<I ,J>::type + result_of::distance<I ,J>::type

    @@ -239,36 +247,39 @@
    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/iterator/functions.html b/doc/html/fusion/iterator/functions.html index 08625595..71e3ab8f 100644 --- a/doc/html/fusion/iterator/functions.html +++ b/doc/html/fusion/iterator/functions.html @@ -3,19 +3,20 @@ Functions - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    deref
    next
    diff --git a/doc/html/fusion/iterator/functions/advance.html b/doc/html/fusion/iterator/functions/advance.html index dc330461..ba2cf230 100644 --- a/doc/html/fusion/iterator/functions/advance.html +++ b/doc/html/fusion/iterator/functions/advance.html @@ -3,7 +3,7 @@ advance - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +24,28 @@
    +
    + + Description +

    Moves an iterator by a specified distance.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
         typename M
         >
    -typename result_of::advance<I, M>::type advance(I const& i);
    +typename result_of::advance<I, M>::type advance(I const& i);
     
    -

    Table 1.6. Parameters

    -
    +

    Table 1.6. Parameters

    +
    @@ -73,12 +72,13 @@ @@ -91,7 +91,7 @@ -

    - i + i

    - Model of Forward + Model of Forward Iterator

    - N + N

    @@ -107,45 +107,46 @@
    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -advance<M>(i);
    +advance<M>(i);
     

    - Return type: A model of the same iterator - concept as i. + Return type: A model of the same iterator + concept as i.

    - Semantics: Returns an iterator to the - element M positions from - i. If i - is a Bidirectional - Iterator then M + Semantics: Returns an iterator to the + element M positions from + i. If i + is a Bidirectional + Iterator then M may be negative.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int,int> vec;
    +typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(deref(advance<mpl::int_<2> >(begin(v))) == 3);
    +assert(deref(advance<mpl::int_<2> >(begin(v))) == 3);
     
    diff --git a/doc/html/fusion/iterator/functions/advance_c.html b/doc/html/fusion/iterator/functions/advance_c.html index b97ce686..39b87e3d 100644 --- a/doc/html/fusion/iterator/functions/advance_c.html +++ b/doc/html/fusion/iterator/functions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +24,28 @@ +
    + + Description +

    Moves an iterator by a specified distance.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
         int N
         >
    -typename result_of::advance_c<I, N>::type advance_c(I const& i);
    +typename result_of::advance_c<I, N>::type advance_c(I const& i);
     
    -

    Table 1.7. Parameters

    -
    +

    Table 1.7. Parameters

    +
    @@ -73,12 +72,13 @@ @@ -91,7 +91,7 @@ -

    - i + i

    - Model of Forward + Model of Forward Iterator

    - N + N

    @@ -106,45 +106,46 @@
    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -advance_c<N>(i);
    +advance_c<N>(i);
     

    - Return type: A model of the same iterator - concept as i. + Return type: A model of the same iterator + concept as i.

    - Semantics: Returns an iterator to the - element N positions from - i. If i - is a Bidirectional - Iterator then N + Semantics: Returns an iterator to the + element N positions from + i. If i + is a Bidirectional + Iterator then N may be negative.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int,int> vec;
    +typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(deref(advance_c<2>(begin(v))) == 3);
    +assert(deref(advance_c<2>(begin(v))) == 3);
     
    diff --git a/doc/html/fusion/iterator/functions/deref.html b/doc/html/fusion/iterator/functions/deref.html index 291c3501..af8ff882 100644 --- a/doc/html/fusion/iterator/functions/deref.html +++ b/doc/html/fusion/iterator/functions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,28 +24,27 @@

    -deref -

    -
    - - Description -
    +deref
    +
    + + Description +

    Deferences an iterator.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
         >
    -typename result_of::deref<I>::type deref(I const& i);
    +typename result_of::deref<I>::type deref(I const& i);
     
    -

    Table 1.2. Parameters

    -
    +

    Table 1.2. Parameters

    +
    @@ -71,12 +70,13 @@ @@ -86,43 +86,43 @@

    -

    - i + i

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -deref(i);
    +deref(i);
     

    - Return type: result_of::deref<I>::type + Return type: result_of::deref<I>::type

    - Semantics: Dereferences the iterator - i. + Semantics: Dereferences the iterator + i.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int&> vec;
    +typedef vector<int,int&> vec;
     
     int i(0);
     vec v(1,i);
    -assert(deref(begin(v)) == 1);
    -assert(deref(next(begin(v))) == 0);
    -assert(&(deref(next(begin(v)))) == &i);
    +assert(deref(begin(v)) == 1);
    +assert(deref(next(begin(v))) == 0);
    +assert(&(deref(next(begin(v)))) == &i);
     
    diff --git a/doc/html/fusion/iterator/functions/distance.html b/doc/html/fusion/iterator/functions/distance.html index b593d416..65186c5c 100644 --- a/doc/html/fusion/iterator/functions/distance.html +++ b/doc/html/fusion/iterator/functions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +24,28 @@ +
    + + Description +

    Returns the distance between 2 iterators.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
         typename J
         >
    -typename result_of::distance<I, J>::type distance(I const& i, J const& j);
    +typename result_of::distance<I, J>::type distance(I const& i, J const& j);
     
    -

    Table 1.5. Parameters

    -
    +

    Table 1.5. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,40 +87,40 @@

    -

    - i, j + i, j

    - Models of Forward + Models of Forward Iterator into the same sequence

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -distance(i,j);
    +distance(i,j);
     

    - Return type: int + Return type: int

    - Semantics: Returns the distance between - iterators i and j. + Semantics: Returns the distance between + iterators i and j.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int,int> vec;
    +typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(distance(begin(v), next(next(begin(v)))) == 2);
    +assert(distance(begin(v), next(next(begin(v)))) == 2);
     
    diff --git a/doc/html/fusion/iterator/functions/next.html b/doc/html/fusion/iterator/functions/next.html index 7bd29b2d..dc248b3d 100644 --- a/doc/html/fusion/iterator/functions/next.html +++ b/doc/html/fusion/iterator/functions/next.html @@ -3,7 +3,7 @@ next - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,28 +24,27 @@

    -next -

    -
    - - Description -
    +next
    +
    + + Description +

    Moves an iterator 1 position forwards.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
         >
    -typename result_of::next<I>::type next(I const& i);
    +typename result_of::next<I>::type next(I const& i);
     
    -

    Table 1.3. Parameters

    -
    +

    Table 1.3. Parameters

    +
    @@ -71,12 +70,13 @@ @@ -86,43 +86,43 @@

    -

    - i + i

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
     next(i);
     

    - Return type: A model of the same iterator - concept as i. + Return type: A model of the same iterator + concept as i.

    - Semantics: Returns an iterator to the - next element after i. + Semantics: Returns an iterator to the + next element after i.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int,int> vec;
    +typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(deref(begin(v)) == 1);
    -assert(deref(next(begin(v))) == 2);
    -assert(deref(next(next(begin(v)))) == 3);
    +assert(deref(begin(v)) == 1);
    +assert(deref(next(begin(v))) == 2);
    +assert(deref(next(next(begin(v)))) == 3);
     
    diff --git a/doc/html/fusion/iterator/functions/prior.html b/doc/html/fusion/iterator/functions/prior.html index b247d235..707453ea 100644 --- a/doc/html/fusion/iterator/functions/prior.html +++ b/doc/html/fusion/iterator/functions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,28 +24,27 @@

    -prior -

    -
    - - Description -
    +prior
    +
    + + Description +

    Moves an iterator 1 position backwards.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
         >
    -typename result_of::prior<I>::type prior(I const& i);
    +typename result_of::prior<I>::type prior(I const& i);
     
    -

    Table 1.4. Parameters

    -
    +

    Table 1.4. Parameters

    +
    @@ -71,12 +70,13 @@ @@ -86,42 +86,42 @@

    -

    - i + i

    - Model of Bidirectional + Model of Bidirectional Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -prior(i);
    +prior(i);
     

    - Return type: A model of the same iterator - concept as i. + Return type: A model of the same iterator + concept as i.

    - Semantics: Returns an iterator to the - element prior to i. + Semantics: Returns an iterator to the + element prior to i.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int> vec;
    +typedef vector<int,int> vec;
     
     vec v(1,2);
    -assert(deref(next(begin(v))) == 2);
    -assert(deref(prior(next(begin(v)))) == 1);
    +assert(deref(next(begin(v))) == 2);
    +assert(deref(prior(next(begin(v)))) == 1);
     
    diff --git a/doc/html/fusion/iterator/metafunctions.html b/doc/html/fusion/iterator/metafunctions.html index ee5bbc49..edae7021 100644 --- a/doc/html/fusion/iterator/metafunctions.html +++ b/doc/html/fusion/iterator/metafunctions.html @@ -3,19 +3,20 @@ Metafunctions - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    value_of
    deref
    diff --git a/doc/html/fusion/iterator/metafunctions/advance.html b/doc/html/fusion/iterator/metafunctions/advance.html index 91723b52..45827c81 100644 --- a/doc/html/fusion/iterator/metafunctions/advance.html +++ b/doc/html/fusion/iterator/metafunctions/advance.html @@ -3,7 +3,7 @@ advance - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@
    +
    + + Description +

    Moves an iterator a specified distance.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -48,8 +47,8 @@
     };
     
    -

    Table 1.17. Parameters

    -
    +

    Table 1.17. Parameters

    +
    @@ -76,12 +75,13 @@ @@ -94,7 +94,7 @@ -

    - I + I

    - Model of Forward + Model of Forward Iterator

    - M + M

    @@ -110,46 +110,47 @@
    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::advance<I,M>::type
    +result_of::advance<I,M>::type
     

    - Return type: A model of the same iterator - concept as I. + Return type: A model of the same iterator + concept as I.

    - Semantics: Returns an iterator a distance - M from I. - If I is a Bidirectional - Iterator then M + Semantics: Returns an iterator a distance + M from I. + If I is a Bidirectional + Iterator then M may be negative.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));
    +BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/advance_c.html b/doc/html/fusion/iterator/metafunctions/advance_c.html index 728501a0..8132124c 100644 --- a/doc/html/fusion/iterator/metafunctions/advance_c.html +++ b/doc/html/fusion/iterator/metafunctions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@ +
    + + Description +

    Moves an iterator by a specified distance.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -48,8 +47,8 @@
     };
     
    -

    Table 1.18. Parameters

    -
    +

    Table 1.18. Parameters

    +
    @@ -76,12 +75,13 @@ @@ -94,7 +94,7 @@ -

    - I + I

    - Model of Forward + Model of Forward Iterator

    - N + N

    @@ -109,46 +109,47 @@
    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::advance_c<I, N>::type
    +result_of::advance_c<I, N>::type
     

    - Return type: A model of the same iterator - concept as I. + Return type: A model of the same iterator + concept as I.

    - Semantics: Returns an iterator a distance - N from I. - If I is a Bidirectional - Iterator then N - may be negative. Equivalent to result_of::advance<I, boost::mpl::int_<N> >::type. + Semantics: Returns an iterator a distance + N from I. + If I is a Bidirectional + Iterator then N + may be negative. Equivalent to result_of::advance<I, boost::mpl::int_<N> >::type.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance_c<first, 2>::type, third>));
    +BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance_c<first, 2>::type, third>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/deref.html b/doc/html/fusion/iterator/metafunctions/deref.html index 8ed1820e..594ad5e3 100644 --- a/doc/html/fusion/iterator/metafunctions/deref.html +++ b/doc/html/fusion/iterator/metafunctions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@

    -deref -

    -
    - - Description -
    +deref
    +
    + + Description +

    Returns the type that will be returned by dereferencing an iterator.

    -
    - - Synposis -
    +
    + + Synposis +
     template<
         typename I
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.12. Parameters

    -
    +

    Table 1.12. Parameters

    +
    @@ -74,12 +73,13 @@ @@ -89,46 +89,46 @@

    -

    - I + I

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::deref<I>::type
    +result_of::deref<I>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: Returns the result of dereferencing - an iterator of type I. + Semantics: Returns the result of dereferencing + an iterator of type I.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int&> vec;
    +typedef vector<int,int&> vec;
     typedef const vec const_vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
     
    -typedef result_of::begin<const_vec>::type const_first;
    -typedef result_of::next<const_first>::type const_second;
    +typedef result_of::begin<const_vec>::type const_first;
    +typedef result_of::next<const_first>::type const_second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/distance.html b/doc/html/fusion/iterator/metafunctions/distance.html index e337b227..4c2abeca 100644 --- a/doc/html/fusion/iterator/metafunctions/distance.html +++ b/doc/html/fusion/iterator/metafunctions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@ +
    + + Description +

    Returns the distance between two iterators.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -48,8 +47,8 @@
     };
     
    -

    Table 1.16. Parameters

    -
    +

    Table 1.16. Parameters

    +
    @@ -75,12 +74,13 @@ @@ -90,43 +90,43 @@

    -

    - I, J + I, J

    - Models of Forward + Models of Forward Iterator into the same sequence

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::distance<I, J>::type
    +result_of::distance<I, J>::type
     

    - Return type: A model of MPL + Return type: A model of MPL Integral Constant.

    - Semantics: Returns the distance between - iterators of types I and - J. + Semantics: Returns the distance between + iterators of types I and + J.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    -typedef result_of::distance<first,third>::type dist;
    +typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
    +typedef result_of::distance<first,third>::type dist;
     
     BOOST_MPL_ASSERT_RELATION(dist::value, ==, 2);
     
    diff --git a/doc/html/fusion/iterator/metafunctions/equal_to.html b/doc/html/fusion/iterator/metafunctions/equal_to.html index 5fba76e1..6c5ae850 100644 --- a/doc/html/fusion/iterator/metafunctions/equal_to.html +++ b/doc/html/fusion/iterator/metafunctions/equal_to.html @@ -3,7 +3,7 @@ equal_to - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,21 +24,20 @@ +
    + + Description +

    Returns a true-valued MPL - Integral Constant if I - and J are equal. + Integral Constant if I + and J are equal.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -50,8 +49,8 @@
     };
     
    -

    Table 1.15. Parameters

    -
    +

    Table 1.15. Parameters

    +
    @@ -77,7 +76,7 @@ -

    - I, J + I, J

    @@ -91,43 +90,43 @@

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::equal_to<I, J>::type
    +result_of::equal_to<I, J>::type
     

    - Return type: A model of MPL + Return type: A model of MPL Integral Constant.

    - Semantics: Returns boost::mpl::true_ - if I and J are iterators to the same position. - Returns boost::mpl::false_ otherwise. + Semantics: Returns boost::mpl::true_ + if I and J are iterators to the same position. + Returns boost::mpl::false_ otherwise.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::end<vec>::type last;
    -BOOST_MPL_ASSERT((result_of::equal_to<first, first>));
    -BOOST_MPL_ASSERT_NOT((result_of::equal_to<first,last>));
    +typedef vector<int,double> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::end<vec>::type last;
    +BOOST_MPL_ASSERT((result_of::equal_to<first, first>));
    +BOOST_MPL_ASSERT_NOT((result_of::equal_to<first,last>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/next.html b/doc/html/fusion/iterator/metafunctions/next.html index 46847fab..20f63e19 100644 --- a/doc/html/fusion/iterator/metafunctions/next.html +++ b/doc/html/fusion/iterator/metafunctions/next.html @@ -3,7 +3,7 @@ next - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@

    -next -

    -
    - - Description -
    +next
    +
    + + Description +

    Returns the type of the next iterator in a sequence.

    -
    - - Synposis -
    +
    + + Synposis +
     template<
         typename I
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.13. Parameters

    -
    +

    Table 1.13. Parameters

    +
    @@ -74,12 +73,13 @@ @@ -89,41 +89,41 @@

    -

    - I + I

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::next<I>::type
    +result_of::next<I>::type
     

    - Return type: A model of the same iterator - concept as I. + Return type: A model of the same iterator + concept as I.

    - Semantics: Returns an iterator to the - next element in the sequence after I. + Semantics: Returns an iterator to the + next element in the sequence after I.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double> vec;
    -typedef result_of::next<result_of::begin<vec>::type>::type second;
    +typedef vector<int,double> vec;
    +typedef result_of::next<result_of::begin<vec>::type>::type second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/prior.html b/doc/html/fusion/iterator/metafunctions/prior.html index 03c03660..e76eacb4 100644 --- a/doc/html/fusion/iterator/metafunctions/prior.html +++ b/doc/html/fusion/iterator/metafunctions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@

    -prior -

    -
    - - Description -
    +prior
    +
    + + Description +

    Returns the type of the previous iterator in a sequence.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.14. Parameters

    -
    +

    Table 1.14. Parameters

    +
    @@ -74,12 +73,13 @@ @@ -89,44 +89,44 @@

    -

    - I + I

    - Model of Bidirectional + Model of Bidirectional Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::prior<I>::type
    +result_of::prior<I>::type
     

    - Return type: A model of the same iterator - concept as I. + Return type: A model of the same iterator + concept as I.

    - Semantics: Returns an iterator to the - previous element in the sequence before I. + Semantics: Returns an iterator to the + previous element in the sequence before I.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,double> vec;
    -typedef result_of::next<result_of::begin<vec>::type>::type second;
    +typedef vector<int,double> vec;
    +typedef result_of::next<result_of::begin<vec>::type>::type second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
     
    -typedef result_of::prior<second>::type first;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    +typedef result_of::prior<second>::type first;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/value_of.html b/doc/html/fusion/iterator/metafunctions/value_of.html index eb18a0a1..91d72481 100644 --- a/doc/html/fusion/iterator/metafunctions/value_of.html +++ b/doc/html/fusion/iterator/metafunctions/value_of.html @@ -3,7 +3,7 @@ value_of - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@ +
    + + Description +

    Returns the type stored at the position of an iterator.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.11. Parameters

    -
    +

    Table 1.11. Parameters

    +
    @@ -74,12 +73,13 @@ @@ -89,44 +89,44 @@

    -

    - I + I

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
    -result_of::value_of<I>::type
    +result_of::value_of<I>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: Returns the type stored in - a sequence at iterator position I. + Semantics: Returns the type stored in + a sequence at iterator position I.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/value_of.hpp>
     #include <boost/fusion/include/value_of.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int&,const int&> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +typedef vector<int,int&,const int&> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, int&>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<third>::type, const int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<third>::type, const int&>));
     
    diff --git a/doc/html/fusion/iterator/operator.html b/doc/html/fusion/iterator/operator.html index 79289534..f2a8c05a 100644 --- a/doc/html/fusion/iterator/operator.html +++ b/doc/html/fusion/iterator/operator.html @@ -3,19 +3,20 @@ Operator - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    Operator *
    diff --git a/doc/html/fusion/iterator/operator/operator_equality.html b/doc/html/fusion/iterator/operator/operator_equality.html index 583c8eaf..8e1c7e0f 100644 --- a/doc/html/fusion/iterator/operator/operator_equality.html +++ b/doc/html/fusion/iterator/operator/operator_equality.html @@ -1,21 +1,24 @@ -Operator == + Operator + == - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,20 +27,20 @@
    +
    + + Description +

    Compares 2 iterators for equality.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -46,8 +49,8 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.9. Parameters

    -
    +

    Table 1.9. Parameters

    +
    @@ -73,7 +76,7 @@ -

    - i, j + i, j

    @@ -87,28 +90,28 @@

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
     i == j
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Equivalent to result_of::equal_to<I,J>::value - where I and J are the types of i - and j respectively. + Semantics: Equivalent to result_of::equal_to<I,J>::value + where I and J are the types of i + and j respectively.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
    diff --git a/doc/html/fusion/iterator/operator/operator_inequality.html b/doc/html/fusion/iterator/operator/operator_inequality.html
    index 2900a1a0..848af738 100644
    --- a/doc/html/fusion/iterator/operator/operator_inequality.html
    +++ b/doc/html/fusion/iterator/operator/operator_inequality.html
    @@ -1,21 +1,23 @@
     
     
     
    -Operator !=
    + Operator
    +        !=
     
    -
    +
     
     
    -
    +
     
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,20 +26,20 @@ +
    + + Description +

    Compares 2 iterators for inequality.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I,
    @@ -46,8 +48,8 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.10. Parameters

    -
    +

    Table 1.10. Parameters

    +
    @@ -73,7 +75,7 @@ -

    - i, j + i, j

    @@ -87,25 +89,25 @@

    +
    -
    - - Expression +
    + + Expression Semantics -
    +

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Equivalent to !result_of::equal_to<I,J>::value - where I and J are the types of i - and j respectively. + Semantics: Equivalent to !result_of::equal_to<I,J>::value + where I and J are the types of i + and j respectively.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
    diff --git a/doc/html/fusion/iterator/operator/operator_unary_star.html b/doc/html/fusion/iterator/operator/operator_unary_star.html
    index 59bce2f8..8aee90c3 100644
    --- a/doc/html/fusion/iterator/operator/operator_unary_star.html
    +++ b/doc/html/fusion/iterator/operator/operator_unary_star.html
    @@ -1,21 +1,23 @@
     
     
     
    -Operator *
    + Operator
    +        *
     
    -
    +
     
     
     
    -
    +
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +26,29 @@ +
    + + Description +

    Dereferences an iterator.

    -
    - - Synopsis -
    +
    + + Synopsis +
     template<
         typename I
         >
    -typename result_of::deref<I>::type operator*(unspecified<I> const& i);
    +typename result_of::deref<I>::type operator*(unspecified<I> const& i);
     
    -

    Table 1.8. Parameters

    -
    +

    Table 1.8. Parameters

    +
    @@ -72,12 +74,13 @@ @@ -87,43 +90,43 @@

    -

    - i + i

    - Model of Forward + Model of Forward Iterator

    +
    -
    - - Expression +
    + + Expression Semantics -
    +
     *i
     

    - Return type: Equivalent to the return - type of deref(i). + Return type: Equivalent to the return + type of deref(i).

    - Semantics: Equivalent to deref(i). + Semantics: Equivalent to deref(i).

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    -
    - - Example -
    +
    + + Example +
    -typedef vector<int,int&> vec;
    +typedef vector<int,int&> vec;
     
     int i(0);
     vec v(1,i);
    -assert(*begin(v) == 1);
    -assert(*next(begin(v)) == 0);
    -assert(&(*next(begin(v))) == &i);
    +assert(*begin(v) == 1);
    +assert(*next(begin(v)) == 0);
    +assert(&(*next(begin(v))) == &i);
     
    diff --git a/doc/html/fusion/notes.html b/doc/html/fusion/notes.html index a4a9e95a..6633e462 100644 --- a/doc/html/fusion/notes.html +++ b/doc/html/fusion/notes.html @@ -3,19 +3,20 @@ Notes - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,35 +25,35 @@ +

    + + Recursive Inlined Functions -

    +

    - An interesting peculiarity of functions like at when applied to a Forward - Sequence like list + An interesting peculiarity of functions like at when applied to a Forward + Sequence like list is that what could have been linear runtime complexity effectively becomes constant O(1) due to compiler optimization of C++ inlined functions, however deeply recursive (up to a certain compiler limit of course). Compile time complexity remains linear.

    -

    - - Overloaded Functions -

    +

    + + Overloaded Functions +

    Associative sequences use function overloading to implement membership testing and type associated key lookup. This amounts to constant runtime and amortized - constant compile time complexities. There is an overloaded function, f(k), for each key type k. The compiler chooses the appropriate function - given a key, k. + constant compile time complexities. There is an overloaded function, f(k), for each key type k. The compiler chooses the appropriate function + given a key, k.

    -

    - - Tag Dispatching -

    +

    + + Tag Dispatching +

    Tag dispatching is a generic programming technique for selecting template specializations. There are typically 3 components involved in the tag dispatching mechanism: @@ -69,7 +70,7 @@

    - For example, the fusion result_of::begin metafunction + For example, the fusion result_of::begin metafunction is implemented as follows:

    @@ -87,24 +88,24 @@
         

    1. -Sequence is the type for - which a suitable implementation of result_of::begin_impl +Sequence is the type for + which a suitable implementation of result_of::begin_impl is required
    2. -traits::tag_of is the metafunction that associates - Sequence with an appropriate +traits::tag_of is the metafunction that associates + Sequence with an appropriate tag
    3. -result_of::begin_impl is the template which is specialized +result_of::begin_impl is the template which is specialized to provide an implementation for each tag type
    -

    - - Extensibility -

    +

    + + Extensibility +

    Unlike MPL, there is no extensibe sequence concept in fusion. This does not mean that Fusion @@ -112,69 +113,69 @@ extensible. It is just that the manner of sequence extension in Fusion is diferent from both STL and MPL on account - of the lazy nature of fusion Algorithms. + of the lazy nature of fusion Algorithms. STL - containers extend themselves in place though member functions such as push_back and insert. MPL + containers extend themselves in place though member functions such as push_back and insert. MPL sequences, on the other hand, are extended through "intrinsic" functions that actually return whole sequences. MPL is purely functional and can not have side effects. For example, MPL's - push_back does not actually - mutate an mpl::vector. It can't do that. Instead, it returns - an extended mpl::vector. + push_back does not actually + mutate an mpl::vector. It can't do that. Instead, it returns + an extended mpl::vector.

    Like MPL, Fusion too is purely functional and can not have side effects. With runtime efficiency in mind, Fusion sequences are extended through generic functions that return - Views. Views + Views. Views are sequences that do not actually contain data, but instead impart an alternative - presentation over the data from one or more underlying sequences. Views + presentation over the data from one or more underlying sequences. Views are proxies. They provide an efficient yet purely functional way to work on - potentially expensive sequence operations. For example, given a vector, Fusion's push_back returns a joint_view, instead of an actual extended - vector. - A joint_view + potentially expensive sequence operations. For example, given a vector, Fusion's push_back returns a joint_view, instead of an actual extended + vector. + A joint_view holds a reference to the original sequence plus the appended data --making it very cheap to pass around.

    -

    - - Element Conversion -

    +

    + + Element Conversion +

    - Functions that take in elemental values to form sequences (e.g. make_list) convert their arguments + Functions that take in elemental values to form sequences (e.g. make_list) convert their arguments to something suitable to be stored as a sequence element. In general, the element types are stored as plain values. Example:

    -make_list(1, 'x')
    +make_list(1, 'x')
     

    - returns a list<int, - char>. + returns a list<int, + char>.

    There are a few exceptions, however.

    - Arrays: + Arrays:

    Array arguments are deduced to reference to const types. For example - [14] + [14] :

    -make_list("Donald", "Daisy")
    +make_list("Donald", "Daisy")
     

    - creates a list + creates a list of type

    -list<const char (&)[7], const char (&)[6]>
    +list<const char (&)[7], const char (&)[6]>
     

    - Function pointers: + Function pointers:

    Function pointers are deduced to the plain non-reference type (i.e. to plain @@ -183,38 +184,38 @@

     void f(int i);
       ...
    -make_list(&f);
    +make_list(&f);
     

    - creates a list + creates a list of type

    -list<void (*)(int)>
    +list<void (*)(int)>
     
    -

    - - boost::ref -

    +

    + + boost::ref +

    - Fusion's generation functions (e.g. make_list) by default stores the element + Fusion's generation functions (e.g. make_list) by default stores the element types as plain non-reference types. Example:

     void foo(const A& a, B& b) {
         ...
    -    make_list(a, b)
    +    make_list(a, b)
     

    - creates a list + creates a list of type

    -list<A, B>
    +list<A, B>
     

    - Sometimes the plain non-reference type is not desired. You can use boost::ref - and boost::cref to store references or const references + Sometimes the plain non-reference type is not desired. You can use boost::ref + and boost::cref to store references or const references (respectively) instead. The mechanism does not compromise const correctness since a const object wrapped with ref results in a tuple element with const reference type (see the fifth code line below). Examples: @@ -224,11 +225,11 @@

     A a; B b; const A ca = a;
    -make_list(cref(a), b);          // creates list<const A&, B>
    -make_list(ref(a), b);           // creates list<A&, B>
    -make_list(ref(a), cref(b));     // creates list<A&, const B&>
    -make_list(cref(ca));            // creates list<const A&>
    -make_list(ref(ca));             // creates list<const A&>
    +make_list(cref(a), b);          // creates list<const A&, B>
    +make_list(ref(a), b);           // creates list<A&, B>
    +make_list(ref(a), cref(b));     // creates list<A&, const B&>
    +make_list(cref(ca));            // creates list<const A&>
    +make_list(ref(ca));             // creates list<const A&>
     

    See Boost.Ref for @@ -236,11 +237,11 @@



    -

    [14] +

    [14] Note that the type of a string literal is an array of const characters, - not const char*. To get make_list to create a list with an element of a non-const - array type one must use the ref - wrapper (see boost::ref). + not const char*. To get make_list to create a list with an element of a non-const + array type one must use the ref + wrapper (see boost::ref).

    diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html index 04e38384..f8b81d23 100644 --- a/doc/html/fusion/organization.html +++ b/doc/html/fusion/organization.html @@ -3,7 +3,7 @@ Organization - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@

    The library is organized into layers of modules, with each module addressing a particular area of responsibility. A module may not depend on modules in @@ -34,10 +33,10 @@

    The library is organized in three layers:

    -

    - - Layers -

    +

    + + Layers +

    @@ -48,15 +47,15 @@

    - The entire library is found in the "boost/fusion" + The entire library is found in the "boost/fusion" directory. Modules are organized in directories. Each module has its own header file placed in the same directory with the actual module-directory. For example, - there exists "boost/fusion/support.hpp" + there exists "boost/fusion/support.hpp" in the same directory as "boost/fusion/support". Everything, except those found inside "detail" directories, is public.

    - There is also a "boost/fusion/include/" + There is also a "boost/fusion/include/" directory that contains all the headers to all the components and modules. If you are unsure where to find a specific component or module, or don't want to fuss with hierarchy and nesting, use this. @@ -65,10 +64,10 @@ The library is header-only. There is no need to build object files to link against.

    -

    - - Directory -

    +

    + + Directory +

    • tuple @@ -186,12 +185,12 @@ support
    -

    - - Example -

    +

    + + Example +

    - If, for example, you want to use list, + If, for example, you want to use list, depending on the granularity that you desire, you may do so by including one of

    @@ -202,13 +201,13 @@ #include <boost/fusion/include/list.hpp>

    - The first includes all containers The second includes only list - [3] + The first includes all containers The second includes only list + [3] .



    -

    [3] +

    [3] Modules may contain smaller components. Header file information for each component will be provided as part of the component's documentation.

    diff --git a/doc/html/fusion/preface.html b/doc/html/fusion/preface.html index cad6bad0..dd0d2c31 100644 --- a/doc/html/fusion/preface.html +++ b/doc/html/fusion/preface.html @@ -3,7 +3,7 @@ Preface - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@

    @@ -39,15 +38,15 @@

    - --Niklaus Wirth + --Niklaus Wirth

    -

    - - Description -

    +

    + + Description +

    Fusion is a library for working with heterogenous collections of data, commonly referred to as tuples. A set of containers (vector, list, set and map) is provided, @@ -62,10 +61,10 @@ It is named "fusion" because the library is a "fusion" of compile time metaprogramming with runtime programming.

    -

    - - Motivation -

    +

    + + Motivation +

    Tuples are powerful beasts. After having developed two significant projects (Spirit and Phoenix) @@ -88,17 +87,17 @@ had an adhoc collection of tuple manipulation and traversal routines. It was an instant AHA! moment.

    -

    - - How to use this manual -

    +

    + + How to use this manual +

    Some icons are used to mark certain topics indicative of their relevance. These icons precede some text to indicate:

    -

    Table 1.1. Icons

    -
    +

    Table 1.1. Icons

    +
    @@ -192,17 +191,17 @@ -
    +
    -

    +

    This documentation is automatically generated by Boost QuickBook documentation tool. QuickBook can be found in the Boost Tools.

    -

    - - Support -

    +

    + + Support +

    Please direct all questions to Spirit's mailing list. You can subscribe to the Spirit diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html index cf4c6e69..5ddda68f 100644 --- a/doc/html/fusion/quick_start.html +++ b/doc/html/fusion/quick_start.html @@ -3,7 +3,7 @@ Quick Start - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


    @@ -24,17 +24,16 @@

    I assume the reader is already familiar with tuples (Boost.Tuple) - and its ancestor std::pair. The tuple is a generalization of std::pair + and its ancestor std::pair. The tuple is a generalization of std::pair for multiple heterogeneous elements (triples, quadruples, etc.). The tuple - is more or less a synonym for fusion's vector. + is more or less a synonym for fusion's vector.

    - For starters, we shall include all of Fusion's Sequence(s) - [1] + For starters, we shall include all of Fusion's Sequence(s) + [1] :

    @@ -42,29 +41,29 @@
     #include <boost/fusion/include/sequence.hpp>
     

    - Let's begin with a vector - [2] + Let's begin with a vector + [2] :

    -vector<int, char, std::string> stuff(1, 'x', "howdy");
    -int i = at_c<0>(stuff);
    -char ch = at_c<1>(stuff);
    -std::string s = at_c<2>(stuff);
    +vector<int, char, std::string> stuff(1, 'x', "howdy");
    +int i = at_c<0>(stuff);
    +char ch = at_c<1>(stuff);
    +std::string s = at_c<2>(stuff);
     

    - Just replace tuple for vector - and get for at_c and this is exactly like + Just replace tuple for vector + and get for at_c and this is exactly like Boost.Tuple. Actually, either names can be used interchangeably. Yet, the similarity ends - there. You can do a lot more with Fusion vector or tuple. + there. You can do a lot more with Fusion vector or tuple. Let's see some examples.

    -

    - - Print the vector +

    + + Print the vector as XML -

    +

    First, let's include the algorithms:

    @@ -94,38 +93,38 @@ Now, finally:

    -for_each(stuff, print_xml());
    +for_each(stuff, print_xml());
     

    - That's it! for_each is a fusion algorithm. + That's it! for_each is a fusion algorithm. It is a generic algorithm similar to STL's. It iterates over the sequence and calls a user supplied function. In our case, - it calls print_xml's operator() for - each element in stuff. + it calls print_xml's operator() for + each element in stuff.

    -
    [Caution] Caution

    - The result of typeid(x).name() is platform specific. The code here is +

    + The result of typeid(x).name() is platform specific. The code here is just for exposition. Of course you already know that :-)

    - for_each is generic. With - print_xml, you can use it to - print just about any Fusion Sequence. + for_each is generic. With + print_xml, you can use it to + print just about any Fusion Sequence.

    -

    - - Print only pointers -

    +

    + + Print only pointers +

    Let's get a little cleverer. Say we wish to write a generic function that takes in an arbitrary sequence and XML prints only those elements - which are pointers. Ah, easy. First, let's include the is_pointer + which are pointers. Ah, easy. First, let's include the is_pointer boost type trait:

    @@ -138,37 +137,37 @@
     template <typename Sequence>
     void xml_print_pointers(Sequence const& seq)
     {
    -    for_each(filter_if<boost::is_pointer<_> >(seq), print_xml());
    +    for_each(filter_if<boost::is_pointer<_> >(seq), print_xml());
     }
     

    - filter_if is another Fusion - algorithm. It returns a filter_view, a conforming Fusion sequence. + filter_if is another Fusion + algorithm. It returns a filter_view, a conforming Fusion sequence. This view reflects only those elements that pass the given predicate. In this - case, the predicate is boost::is_pointer<_>. - This "filtered view" is then passed to the for_each algorithm, which then prints + case, the predicate is boost::is_pointer<_>. + This "filtered view" is then passed to the for_each algorithm, which then prints the "filtered view" as XML.

    Easy, right?

    -

    - - Associative tuples -

    +

    + + Associative tuples +

    Ok, moving on...

    - Apart from vector, + Apart from vector, fusion has a couple of other sequence types to choose from. Each sequence has - its own characteristics. We have list, set, map, plus a multitude of views that provide various ways to present + its own characteristics. We have list, set, map, plus a multitude of views that provide various ways to present the sequences.

    - Fusion's map + Fusion's map associate types with elements. It can be used as a cleverer replacement of - the struct. Example: + the struct. Example:

     namespace fields
    @@ -177,32 +176,32 @@
         struct age;
     }
     
    -typedef map<
    -    fusion::pair<fields::name, std::string>
    -  , fusion::pair<fields::age, int> >
    +typedef map<
    +    fusion::pair<fields::name, std::string>
    +  , fusion::pair<fields::age, int> >
     person;
     

    - map + map is an associative sequence. Its elements are Fusion pairs which differ somewhat - from std::pair. Fusion pairs only contain one member, + from std::pair. Fusion pairs only contain one member, with the type of their second template parameter. The first type parameter of the pair is used as an index to the associated element in the sequence. - For example, given a a_person - of type, person, you can do: + For example, given a a_person + of type, person, you can do:

     using namespace fields;
    -std::string person_name = at_key<name>(a_person);
    -int person_age = at_key<age>(a_person);
    +std::string person_name = at_key<name>(a_person);
    +int person_age = at_key<age>(a_person);
     

    - Why go through all this trouble, you say? Well, for one, unlike the struct, we are dealing with a generic data structure. + Why go through all this trouble, you say? Well, for one, unlike the struct, we are dealing with a generic data structure. There are a multitude of facilities available at your disposal provided out of the box with fusion or written by others. With these facilities, introspection comes for free, for example. We can write one serialization function (well, two, if you consider loading and saving) that will work for all your fusion - maps. + maps. Example:

    @@ -218,19 +217,19 @@
     template <typename Stuff>
     void save(Stuff const& stuff)
     {
    -    for_each(stuff, saver());
    +    for_each(stuff, saver());
     }
     

    - The save function is generic - and will work for all types of stuff - regardless if it is a person, - a dog or a whole alternate_universe. + The save function is generic + and will work for all types of stuff + regardless if it is a person, + a dog or a whole alternate_universe.

    -

    - - Tip of the Iceberg -

    +

    + + Tip of the Iceberg +

    And... we've barely scratched the surface! You can compose and expand the data structures, remove elements from the structures, find specific data types, @@ -239,14 +238,14 @@



    -

    [1] +

    [1] There are finer grained header files available if you wish to have more - control over which components to include (see section Orgainization + control over which components to include (see section Orgainization for details).

    -

    [2] - Unless otherwise noted, components are in namespace boost::fusion. - For the sake of simplicity, code in this quick start implies using directives for the fusion components +

    [2] + Unless otherwise noted, components are in namespace boost::fusion. + For the sake of simplicity, code in this quick start implies using directives for the fusion components we will be using.

    diff --git a/doc/html/fusion/references.html b/doc/html/fusion/references.html index 0ec48142..783cd2f8 100644 --- a/doc/html/fusion/references.html +++ b/doc/html/fusion/references.html @@ -3,7 +3,7 @@ References - + @@ -11,10 +11,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -23,8 +23,7 @@
    Concepts
    @@ -52,17 +51,17 @@

    Like MPL, the Sequence is a fundamental concept in Fusion. A Sequence may or may not actually - store or contain data. Container are - sequences that hold data. Views, on the + store or contain data. Container are + sequences that hold data. Views, on the other hand, are sequences that do not store any data. Instead, they are proxies that impart an alternative presentation over another sequence. All models of - Sequence have an associated Iterator + Sequence have an associated Iterator type that can be used to iterate through the Sequence's elements.

    -

    - - Header -

    +

    + + Header +

     #include <boost/fusion/sequence.hpp>
     #include <boost/fusion/include/sequence.hpp>
    diff --git a/doc/html/fusion/sequence/concepts.html b/doc/html/fusion/sequence/concepts.html
    index 8351e7a5..b0e6586e 100644
    --- a/doc/html/fusion/sequence/concepts.html
    +++ b/doc/html/fusion/sequence/concepts.html
    @@ -3,19 +3,20 @@
     
     Concepts
     
    -
    +
     
     
     
    -
    +
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +25,7 @@
    Forward Sequence
    @@ -39,25 +39,31 @@

    Fusion Sequences are organized into a hierarchy of concepts.

    -
    - - Traversal -
    +

    + + Traversal +

    - Fusion's sequence traversal related concepts parallel Fusion's Iterator - Concepts. Forward - Sequence is the most basic concept. Bidirectional - Sequence is a refinement of Forward - Sequence. Random - Access Sequence is a refinement of Bidirectional + Fusion's sequence traversal related concepts parallel Fusion's Iterator + Concepts. Forward + Sequence is the most basic concept. Bidirectional + Sequence is a refinement of Forward + Sequence. Random + Access Sequence is a refinement of Bidirectional Sequence. These concepts pertain to sequence traversal.

    -
    - - Associativity -
    +

    + + Associativity +

    - The Associative + The Associative Sequence concept is orthogonal to traversal. An Associative Sequence allows efficient retrieval of elements based on keys.

    diff --git a/doc/html/fusion/sequence/concepts/associative_sequence.html b/doc/html/fusion/sequence/concepts/associative_sequence.html index 772523bd..52601047 100644 --- a/doc/html/fusion/sequence/concepts/associative_sequence.html +++ b/doc/html/fusion/sequence/concepts/associative_sequence.html @@ -1,21 +1,23 @@ -Associative Sequence +Associative + Sequence - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,13 +26,13 @@
    +
    + + Description +

    An Associative Sequence allows efficient retrieval of elements based on keys. Like associative sequences in MPL, @@ -46,33 +48,33 @@

    Notation

    -
    s
    +
    s

    An Associative Sequence

    -
    S
    +
    S

    An Associative Sequence type

    -
    K
    +
    K

    An arbitrary key type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    -
    - - Valid +
    + + Valid Expressions -
    +

    For any Associative Sequence the following expressions must be valid:

    @@ -109,7 +111,7 @@

    - has_key<K>(s) + has_key<K>(s)

    @@ -131,7 +133,7 @@

    - at_key<K>(s) + at_key<K>(s)

    @@ -152,8 +154,8 @@

    - at_key<K>(s) - = o + at_key<K>(s) + = o

    @@ -163,9 +165,9 @@

    - s is mutable and - e = - o, where e is the first element in the + s is mutable and + e = + o, where e is the first element in the sequence, is a valid expression.

    @@ -177,11 +179,11 @@ -
    - - Result +
    + + Result Type Expressions -
    +
    @@ -203,8 +205,8 @@

    - result_of::has_key<S, - K>::type + result_of::has_key<S, + K>::type

    @@ -216,8 +218,8 @@

    - result_of::at_key<S, - K>::type + result_of::at_key<S, + K>::type

    @@ -229,8 +231,8 @@

    - result_of::value_at_key<S, - K>::type + result_of::value_at_key<S, + K>::type

    @@ -241,22 +243,19 @@
    - +
    + + Expression Semantics -
    +
    @@ -278,42 +277,42 @@

    - has_key<K>(s) + has_key<K>(s)

    - A boolean Integral Constant c - such that c::value == - true if and only if there - is one or more elements with the key k - in s; see has_key. + A boolean Integral Constant c + such that c::value == + true if and only if there + is one or more elements with the key k + in s; see has_key.

    - at_key<K>(s) + at_key<K>(s)

    - The element associated with the key K - in the sequence s; - see at. + The element associated with the key K + in the sequence s; + see at.

    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html index f6b6a22b..29873750 100644 --- a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html +++ b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html @@ -1,21 +1,24 @@ -Bidirectional Sequence +Bidirectional + Sequence - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,54 +27,58 @@ +
    + + Description +

    - A Bidirectional Sequence is a Forward - Sequence whose iterators model Bidirectional + A Bidirectional Sequence is a Forward + Sequence whose iterators model Bidirectional Iterator.

    -
    - - Refinement +
    + + Refinement of -
    +

    - Forward Sequence + Forward Sequence

    Notation

    -
    s
    +
    s

    A Forward Sequence

    -
    S
    +
    S

    A Forward Sequence type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    -
    - - Valid +
    + + Valid Expressions -
    +

    - In addition to the requirements defined in Forward + In addition to the requirements defined in Forward Sequence, for any Bidirectional Sequence the following must be met:

    @@ -107,12 +114,13 @@ @@ -129,12 +137,13 @@ @@ -151,7 +160,7 @@ @@ -197,11 +206,11 @@

    - begin(s) + begin(s)

    - Bidirectional + Bidirectional Iterator

    - end(s) + end(s)

    - Bidirectional + Bidirectional Iterator

    - back(s) + back(s)

    @@ -172,8 +181,8 @@

    - back(s) - = o + back(s) + = o

    @@ -183,9 +192,9 @@

    - s is mutable and - e = - o, where e is the first element in the + s is mutable and + e = + o, where e is the first element in the sequence, is a valid expression.

    -
    - - Result +
    + + Result Type Expressions -
    +
    @@ -223,7 +232,7 @@

    - result_of::begin<S>::type + result_of::begin<S>::type

    @@ -235,7 +244,7 @@

    - result_of::end<S>::type + result_of::end<S>::type

    @@ -247,7 +256,7 @@

    - result_of::back<S>::type + result_of::back<S>::type

    @@ -258,14 +267,15 @@
    -
    - - Expression +
    + + Expression Semantics -
    +

    The semantics of an expression are defined only where they differ from, - or are not defined in Forward + or are not defined in Forward Sequence.

    @@ -288,35 +298,35 @@

    - back(s) + back(s)

    - The last element in the sequence; see back. + The last element in the sequence; see back.

    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/sequence/concepts/forward_sequence.html b/doc/html/fusion/sequence/concepts/forward_sequence.html index 7c5ed91b..72234679 100644 --- a/doc/html/fusion/sequence/concepts/forward_sequence.html +++ b/doc/html/fusion/sequence/concepts/forward_sequence.html @@ -1,21 +1,23 @@ -Forward Sequence +Forward + Sequence - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,13 +26,13 @@ +
    + + Description +

    A Forward Sequence is a Sequence whose elements are arranged in a definite order. The ordering is guaranteed not to change from iteration to iteration. @@ -41,29 +43,29 @@

    Notation

    -
    s
    +
    s

    A Forward Sequence

    -
    S
    +
    S

    A Forward Sequence type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    -
    - - Valid +
    + + Valid Expressions -
    +

    For any Forward Sequence the following expressions must be valid:

    @@ -100,12 +102,13 @@

    - begin(s) + begin(s)

    - Forward + Forward Iterator

    @@ -122,12 +125,13 @@

    - end(s) + end(s)

    - Forward + Forward Iterator

    @@ -144,7 +148,7 @@

    - size(s) + size(s)

    @@ -166,7 +170,7 @@

    - empty(s) + empty(s)

    @@ -188,7 +192,7 @@

    - front(s) + front(s)

    @@ -209,8 +213,8 @@

    - front(s) - = o + front(s) + = o

    @@ -220,9 +224,9 @@

    - s is mutable and - e = - o, where e is the first element in the + s is mutable and + e = + o, where e is the first element in the sequence, is a valid expression.

    @@ -234,11 +238,11 @@ -
    - - Result +
    + + Result Type Expressions -
    +
    @@ -260,7 +264,7 @@

    - result_of::begin<S>::type + result_of::begin<S>::type

    @@ -272,7 +276,7 @@

    - result_of::end<S>::type + result_of::end<S>::type

    @@ -284,7 +288,7 @@

    - result_of::size<S>::type + result_of::size<S>::type

    @@ -296,7 +300,7 @@

    - result_of::empty<S>::type + result_of::empty<S>::type

    @@ -308,7 +312,7 @@

    - result_of::front<S>::type + result_of::front<S>::type

    @@ -319,11 +323,11 @@
    -
    - - Expression +
    + + Expression Semantics -
    +
    @@ -345,113 +349,113 @@

    - begin(s) + begin(s)

    - An iterator to the first element of the sequence; see begin. + An iterator to the first element of the sequence; see begin.

    - end(s) + end(s)

    - A past-the-end iterator to the sequence; see end. + A past-the-end iterator to the sequence; see end.

    - size(s) + size(s)

    - The size of the sequence; see size. + The size of the sequence; see size.

    - empty(s) + empty(s)

    - A boolean Integral Constant c - such that c::value == - true if and only if the - sequence is empty; see empty. + A boolean Integral Constant c + such that c::value == + true if and only if the + sequence is empty; see empty.

    - front(s) + front(s)

    - The first element in the sequence; see front. + The first element in the sequence; see front.

    -
    - - Invariants -
    +
    + + Invariants +

    For any Forward Sequence s the following invariants always hold:

    • -[begin(s), end(s)) is always a valid range. +[begin(s), end(s)) is always a valid range.
    • - An Algorithm that iterates through - the range [begin(s), end(s)) will pass through every element of - s exactly once. + An Algorithm that iterates through + the range [begin(s), end(s)) will pass through every element of + s exactly once.
    • -begin(s) - is identical to end(s)) - if and only if s is empty. +begin(s) + is identical to end(s)) + if and only if s is empty.
    • - Two different iterations through s + Two different iterations through s will access its elements in the same order.
    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/sequence/concepts/random_access_sequence.html b/doc/html/fusion/sequence/concepts/random_access_sequence.html index 5f5ae7b9..3ac377a8 100644 --- a/doc/html/fusion/sequence/concepts/random_access_sequence.html +++ b/doc/html/fusion/sequence/concepts/random_access_sequence.html @@ -1,21 +1,24 @@ -Random Access Sequence +Random + Access Sequence - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,61 +27,65 @@ +
    + + Description +

    - A Random Access Sequence is a Bidirectional - Sequence whose iterators model Random + A Random Access Sequence is a Bidirectional + Sequence whose iterators model Random Access Iterator. It guarantees constant time access to arbitrary sequence elements.

    -
    - - Refinement +
    + + Refinement of -
    +

    - Bidirectional + Bidirectional Sequence

    Notation

    -
    s
    +
    s

    A Random Access Sequence

    -
    S
    +
    S

    A Random Access Sequence type

    -
    N
    +
    N

    An MPL Integral Constant

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    -
    - - Valid +
    + + Valid Expressions -
    +

    - In addition to the requirements defined in Bidirectional + In addition to the requirements defined in Bidirectional Sequence, for any Random Access Sequence the following must be met:

    @@ -114,12 +121,13 @@ @@ -136,12 +144,13 @@ @@ -158,7 +167,7 @@ @@ -204,11 +213,11 @@

    - begin(s) + begin(s)

    - Random + Random Access Iterator

    - end(s) + end(s)

    - Random + Random Access Iterator

    - at<N>(s) + at<N>(s)

    @@ -179,8 +188,8 @@

    - at<N>(s) - = o + at<N>(s) + = o

    @@ -190,9 +199,9 @@

    - s is mutable and - e = - o, where e is the first element in the + s is mutable and + e = + o, where e is the first element in the sequence, is a valid expression.

    -
    - - Result +
    + + Result Type Expressions -
    +
    @@ -230,7 +239,7 @@

    - result_of::begin<S>::type + result_of::begin<S>::type

    @@ -242,7 +251,7 @@

    - result_of::end<S>::type + result_of::end<S>::type

    @@ -254,8 +263,8 @@

    - result_of::at<S, - N>::type + result_of::at<S, + N>::type

    @@ -267,8 +276,8 @@

    - result_of::value_at<S, - N>::type + result_of::value_at<S, + N>::type

    @@ -279,25 +288,23 @@
    - +
    + + Expression Semantics -
    +

    The semantics of an expression are defined only where they differ from, - or are not defined in Bidirectional + or are not defined in Bidirectional Sequence.

    @@ -320,35 +327,35 @@

    - at<N>(s) + at<N>(s)

    - The Nth element from the beginning of the sequence; see at. + The Nth element from the beginning of the sequence; see at.

    -
    - - Models -
    +
    + + Models +
    diff --git a/doc/html/fusion/sequence/intrinsic.html b/doc/html/fusion/sequence/intrinsic.html index 7582a4ae..c52186f1 100644 --- a/doc/html/fusion/sequence/intrinsic.html +++ b/doc/html/fusion/sequence/intrinsic.html @@ -3,19 +3,20 @@ Intrinsic - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,33 +25,32 @@

    - Intrinsic form the essential interface of every Fusion Sequence. + Intrinsic form the essential interface of every Fusion Sequence. STL counterparts of these functions are usually implemented as member functions. - Intrinsic functions, unlike Algorithms, - are not generic across the full Sequence - repertoire. They need to be implemented for each Fusion Sequence - [4] + Intrinsic functions, unlike Algorithms, + are not generic across the full Sequence + repertoire. They need to be implemented for each Fusion Sequence + [4] .

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/sequence/intrinsic.hpp>
     #include <boost/fusion/include/intrinsic.hpp>
     


    -

    [4] +

    [4] In practice, many of intrinsic functions have default implementations that will work in majority of cases

    diff --git a/doc/html/fusion/sequence/intrinsic/functions.html b/doc/html/fusion/sequence/intrinsic/functions.html index 95be11a2..850a95b6 100644 --- a/doc/html/fusion/sequence/intrinsic/functions.html +++ b/doc/html/fusion/sequence/intrinsic/functions.html @@ -3,7 +3,7 @@ Functions - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    begin
    end
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at.html b/doc/html/fusion/sequence/intrinsic/functions/at.html index 00fd97c1..0da653e0 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at.html @@ -3,7 +3,7 @@ at - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    -at -
    +at
    - - Description + + Description

    Returns the N-th element from the beginning of the sequence.

    - - Synopsis + + Synopsis
     template <typename N, typename Sequence>
    -typename result_of::at<Sequence, N>::type
    +typename result_of::at<Sequence, N>::type
     at(Sequence& seq);
     
     template <typename N, typename Sequence>
    -typename result_of::at<Sequence const, N>::type
    +typename result_of::at<Sequence const, N>::type
     at(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@

    - seq + seq

    - Model of Random + Model of Random Access Sequence

    - N + N

    @@ -113,47 +113,47 @@
    - - Expression + + Expression Semantics
     at<N>(seq);
     

    - Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the N-th element from the beginning of the sequence seq + if seq is mutable and + e = + o, where e is the N-th element from the beginning of the sequence, is a valid expression. Else, returns a type convertable to the N-th element from the beginning of the sequence.

    - Precondition: 0 - <= N::value < size(s) + Precondition: 0 + <= N::value < size(s)

    - Semantics: Equivalent to + Semantics: Equivalent to

    -deref(advance<N>(begin(s)))
    +deref(advance<N>(begin(s)))
     
    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/at.hpp>
     #include <boost/fusion/include/at.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(at<mpl::int_<1> >(v) == 2);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_c.html b/doc/html/fusion/sequence/intrinsic/functions/at_c.html index 82b82f62..2a3fa109 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    -at_c -
    +at_c
    - - Description + + Description

    Returns the N-th element from the beginning of the sequence.

    - - Synopsis + + Synopsis
     template <int N, typename Sequence>
    -typename result_of::at_c<Sequence, N>::type
    +typename result_of::at_c<Sequence, N>::type
     at_c(Sequence& seq);
     
     template <int N, typename Sequence>
    -typename result_of::at_c<Sequence const, N>::type
    +typename result_of::at_c<Sequence const, N>::type
     at_c(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@

    - seq + seq

    - Model of Random + Model of Random Access Sequence

    - N + N

    @@ -112,48 +112,48 @@
    - - Expression + + Expression Semantics
     at_c<N>(seq);
     

    - Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the N-th element from the beginning of the sequence seq + if seq is mutable and + e = + o, where e is the N-th element from the beginning of the sequence, is a valid expression. Else, returns a type convertable to the N-th element from the beginning of the sequence.

    - Precondition: 0 + Precondition: 0 <= N - < size(s) + < size(s)

    - Semantics: Equivalent to + Semantics: Equivalent to

    -deref(advance<N>(begin(s)))
    +deref(advance<N>(begin(s)))
     
    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/at_c.hpp>
     #include <boost/fusion/include/at_c.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(at_c<1>(v) == 2);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_key.html b/doc/html/fusion/sequence/intrinsic/functions/at_key.html index 0d8c6543..7bb0c710 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    - - Description + + Description

    Returns the element associated with a Key from the sequence.

    - - Synopsis + + Synopsis
     template <typename Key, typename Sequence>
    -typename result_of::at_key<Sequence, Key>::type
    +typename result_of::at_key<Sequence, Key>::type
     at_key(Sequence& seq);
     
     template <typename Key, typename Sequence>
    -typename result_of::at_key<Sequence const, Key>::type
    +typename result_of::at_key<Sequence const, Key>::type
     at_key(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@

    - seq + seq

    - Model of Associative + Model of Associative Sequence

    - Key + Key

    @@ -112,43 +112,43 @@
    - - Expression + + Expression Semantics
     at_key<Key>(seq);
     

    - Return type: Returns a reference to - the element associated with Key from the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the element associated with Key from the sequence seq + if seq is mutable and + e = + o, where e is the element associated with Key, is a valid expression. Else, returns a type convertable to the element associated with Key.

    - Precondition: has_key<Key>(seq) == true + Precondition: has_key<Key>(seq) == true

    - Semantics: Returns the element associated + Semantics: Returns the element associated with Key.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     #include <boost/fusion/include/at_key.hpp>
     
    - - Example + + Example
    -set<int, char, bool> s(1, 'x', true);
    +set<int, char, bool> s(1, 'x', true);
     assert(at_key<char>(s) == 'x');
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/back.html b/doc/html/fusion/sequence/intrinsic/functions/back.html index dc88a8e5..6628b362 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/back.html +++ b/doc/html/fusion/sequence/intrinsic/functions/back.html @@ -3,7 +3,7 @@ back - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    -back -
    +back
    - - Description + + Description

    Returns the last element in the sequence.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::back<Sequence>::type
    +typename result_of::back<Sequence>::type
     back(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::back<Sequence const>::type
    +typename result_of::back<Sequence const>::type
     back(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -76,12 +75,13 @@ @@ -93,43 +93,43 @@

    - seq + seq

    - Model of Bidirectional + Model of Bidirectional Sequence

    - - Expression + + Expression Semantics
     back(seq);
     

    - Return type: Returns a reference to - the last element in the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the last element in the sequence seq + if seq is mutable and + e = + o, where e is the last element in the sequence, is a valid expression. Else, returns a type convertable to the last element in the sequence.

    - Precondition: empty(seq) == false + Precondition: empty(seq) == false

    - Semantics: Returns the last element + Semantics: Returns the last element in the sequence.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/back.hpp>
     #include <boost/fusion/include/back.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(back(v) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/begin.html b/doc/html/fusion/sequence/intrinsic/functions/begin.html index d5e56321..65f3d483 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/functions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    - - Description + + Description

    Returns an iterator pointing to the first element in the sequence.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::begin<Sequence>::type
    +typename result_of::begin<Sequence>::type
     begin(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::begin<Sequence const>::type
    +typename result_of::begin<Sequence const>::type
     begin(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -76,12 +75,13 @@ @@ -93,44 +93,50 @@

    - seq + seq

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     begin(seq);
     

    - Return type: Forward - Iterator if seq - is a Forward - Sequence else, Bidirectional - Iterator if seq - is a Bidirectional - Sequence else, Random - Access Iterator if seq - is a Random + Return type: Forward + Iterator if seq + is a Forward + Sequence else, Bidirectional + Iterator if seq + is a Bidirectional + Sequence else, Random + Access Iterator if seq + is a Random Access Sequence.

    - Semantics: Returns an iterator pointing + Semantics: Returns an iterator pointing to the first element in the sequence.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/begin.hpp>
     #include <boost/fusion/include/begin.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    -assert(deref(begin(v)) == 1);
    +vector<int, int, int> v(1, 2, 3);
    +assert(deref(begin(v)) == 1);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/empty.html b/doc/html/fusion/sequence/intrinsic/functions/empty.html index 0cb5935a..6123710a 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/functions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,29 +24,28 @@
    - - Description + + Description

    - Returns a type convertible to bool - that evaluates to true if - the sequence is empty, else, evaluates to false. + Returns a type convertible to bool + that evaluates to true if + the sequence is empty, else, evaluates to false.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::empty<Sequence>::type
    +typename result_of::empty<Sequence>::type
     empty(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -74,12 +73,13 @@ @@ -91,34 +91,34 @@

    - seq + seq

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     empty(seq);
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Evaluates to true if the sequence is empty, else, evaluates - to false. + Semantics: Evaluates to true if the sequence is empty, else, evaluates + to false.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/empty.hpp>
     #include <boost/fusion/include/empty.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(empty(v) == false);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/end.html b/doc/html/fusion/sequence/intrinsic/functions/end.html index de42b363..7b203fdf 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/end.html +++ b/doc/html/fusion/sequence/intrinsic/functions/end.html @@ -3,7 +3,7 @@ end - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    -end -
    +end
    - - Description + + Description

    Returns an iterator pointing to one element past the end of the sequence.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::end<Sequence>::type
    +typename result_of::end<Sequence>::type
     end(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::end<Sequence const>::type
    +typename result_of::end<Sequence const>::type
     end(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -76,12 +75,13 @@ @@ -93,44 +93,50 @@

    - seq + seq

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     end(seq);
     

    - Return type: Forward - Iterator if seq - is a Forward - Sequence else, Bidirectional - Iterator if seq - is a Bidirectional - Sequence else, Random - Access Iterator if seq - is a Random + Return type: Forward + Iterator if seq + is a Forward + Sequence else, Bidirectional + Iterator if seq + is a Bidirectional + Sequence else, Random + Access Iterator if seq + is a Random Access Sequence.

    - Semantics: Returns an iterator pointing + Semantics: Returns an iterator pointing to one element past the end of the sequence.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/end.hpp>
     #include <boost/fusion/include/end.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    -assert(deref(prior(end(v))) == 3);
    +vector<int, int, int> v(1, 2, 3);
    +assert(deref(prior(end(v))) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/front.html b/doc/html/fusion/sequence/intrinsic/functions/front.html index 944e5098..a65fecac 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/front.html +++ b/doc/html/fusion/sequence/intrinsic/functions/front.html @@ -3,7 +3,7 @@ front - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,30 @@
    - - Description + + Description

    Returns the first element in the sequence.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::front<Sequence>::type
    +typename result_of::front<Sequence>::type
     front(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::front<Sequence const>::type
    +typename result_of::front<Sequence const>::type
     front(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -76,12 +75,13 @@ @@ -93,43 +93,43 @@

    - seq + seq

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     front(seq);
     

    - Return type: Returns a reference to - the first element in the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the first element in the sequence seq + if seq is mutable and + e = + o, where e is the first element in the sequence, is a valid expression. Else, returns a type convertable to the first element in the sequence.

    - Precondition: empty(seq) == false + Precondition: empty(seq) == false

    - Semantics: Returns the first element + Semantics: Returns the first element in the sequence.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/front.hpp>
     #include <boost/fusion/include/front.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(front(v) == 1);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/has_key.html b/doc/html/fusion/sequence/intrinsic/functions/has_key.html index 17f0e6eb..28343c9f 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,30 +24,29 @@
    - - Description + + Description

    - Returns a type convertible to bool - that evaluates to true if + Returns a type convertible to bool + that evaluates to true if the sequence contains an element associated with a Key, else, evaluates - to false. + to false.

    - - Synopsis + + Synopsis
     template <typename Key, typename Sequence>
    -typename result_of::has_key<Sequence, Key>::type
    +typename result_of::has_key<Sequence, Key>::type
     has_key(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -76,12 +75,13 @@ @@ -94,7 +94,7 @@

    - seq + seq

    - Model of Associative + Model of Associative Sequence

    - Key + Key

    @@ -111,34 +111,34 @@
    - - Expression + + Expression Semantics
     has_key<Key>(seq);
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Evaluates to true if the sequence contains an element - associated with Key, else, evaluates to false. + Semantics: Evaluates to true if the sequence contains an element + associated with Key, else, evaluates to false.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     #include <boost/fusion/include/has_key.hpp>
     
    - - Example + + Example
    -set<int, char, bool> s(1, 'x', true);
    +set<int, char, bool> s(1, 'x', true);
     assert(has_key<char>(s) == true);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/size.html b/doc/html/fusion/sequence/intrinsic/functions/size.html index d635353f..5e14fe96 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/size.html +++ b/doc/html/fusion/sequence/intrinsic/functions/size.html @@ -3,7 +3,7 @@ size - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,28 +24,27 @@
    -size -
    +size
    - - Description + + Description

    - Returns a type convertible to int + Returns a type convertible to int that evaluates the number of elements in the sequence.

    - - Synopsis + + Synopsis
     template <typename Sequence>
    -typename result_of::size<Sequence>::type
    +typename result_of::size<Sequence>::type
     size(Sequence const& seq);
     
    - - Parameters + + Parameters
    @@ -73,12 +72,13 @@ @@ -90,34 +90,34 @@

    - seq + seq

    - Model of Forward + Model of Forward Sequence

    - - Expression + + Expression Semantics
     size(seq);
     

    - Return type: Convertible to int. + Return type: Convertible to int.

    - Semantics: Returns the number of elements + Semantics: Returns the number of elements in the sequence.

    - - Header + + Header
     #include <boost/fusion/sequence/intrinsic/size.hpp>
     #include <boost/fusion/include/size.hpp>
     
    - - Example + + Example
    -vector<int, int, int> v(1, 2, 3);
    +vector<int, int, int> v(1, 2, 3);
     assert(size(v) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/swap.html b/doc/html/fusion/sequence/intrinsic/functions/swap.html index 4ddc594b..fdc17831 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/functions/swap.html @@ -3,7 +3,7 @@ swap - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,26 +24,25 @@
    -swap -
    +swap
    - - Description + + Description

    Performs an element by element swap of the elements in 2 sequences.

    - - Synopsis + + Synopsis
     template<typename Seq1, typename Seq2>
     void swap(Seq1& seq1, Seq2& seq2);
     
    - - Parameters + + Parameters
    @@ -71,12 +70,13 @@ @@ -88,34 +88,34 @@

    - seq1, seq2 + seq1, seq2

    - Models of Forward + Models of Forward Sequence

    - - Expression + + Expression Semantics
     swap(seq1, seq2);
     

    - Return type: void + Return type: void

    - Precondition: size(seq1) == size(seq2) + Precondition: size(seq1) == size(seq2)

    - Semantics: Calls swap(a1, b1) for corresponding elements in seq1 and seq2. + Semantics: Calls swap(a1, b1) for corresponding elements in seq1 and seq2.

    /sequence/intrinsic/swap.hpp>

    - - Example + + Example
    -vector<int, std::string> v1(1, "hello"), v2(2, "world");
    +vector<int, std::string> v1(1, "hello"), v2(2, "world");
     swap(v1, v2);
    -assert(v1 == make_vector(2, "world"));
    -assert(v2 == make_vector(1, "hello"));
    +assert(v1 == make_vector(2, "world"));
    +assert(v2 == make_vector(1, "hello"));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions.html b/doc/html/fusion/sequence/intrinsic/metafunctions.html index 201a5af3..39bfd37b 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    begin
    end
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html index 950b6715..f64d3635 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html @@ -3,7 +3,7 @@ at - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,20 +24,19 @@
    -at -
    +at
    - - Description + + Description

    - Returns the result type of at - [5] + Returns the result type of at + [5] .

    - - Synopsis + + Synopsis
     template<
    @@ -49,8 +48,8 @@
     };
     
    -

    Table 1.25. Parameters

    -
    +

    Table 1.25. Parameters

    +
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - N + N

    @@ -111,41 +111,41 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::at<Seq, N>::type
     

    - Return type: Any type. + Return type: Any type.

    - Semantics: Returns the result type of - using at to access the Nth element of Seq. + Semantics: Returns the result type of + using at to access the Nth element of Seq.

    /sequence/intrinsic/at.hpp>

    - - Example + + Example
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));
    +typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));
     


    -

    [5] - result_of::at reflects the actual return - type of the function at. Sequence(s) - typically return references to its elements via the at function. If you want - to get the actual element type, use result_of::value_at +

    [5] + result_of::at reflects the actual return + type of the function at. Sequence(s) + typically return references to its elements via the at function. If you want + to get the actual element type, use result_of::value_at

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html index 5c542c52..9a1467cf 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,20 +24,19 @@
    -at_c -
    +at_c
    - - Description + + Description

    - Returns the result type of at_c - [6] + Returns the result type of at_c + [6] .

    - - Synopsis + + Synopsis
     template<
    @@ -49,8 +48,8 @@
     };
     
    -

    Table 1.26. Parameters

    -
    +

    Table 1.26. Parameters

    +
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - M + M

    @@ -110,41 +110,41 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::at_c<Seq, M>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: Returns the result type of - using at_c to access the Mth element of Seq. + Semantics: Returns the result type of + using at_c to access the Mth element of Seq.

    /sequence/intrinsic/at.hpp>

    - - Example + + Example
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_c<vec, 1>::type, float&>));
    +typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_c<vec, 1>::type, float&>));
     


    -

    [6] - result_of::at_c reflects the actual - return type of the function at_c. Sequence(s) - typically return references to its elements via the at_c function. If you want - to get the actual element type, use result_of::value_at_c +

    [6] + result_of::at_c reflects the actual + return type of the function at_c. Sequence(s) + typically return references to its elements via the at_c function. If you want + to get the actual element type, use result_of::value_at_c

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html index 7a9363f4..616c7e69 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,20 +24,19 @@
    - - Description + + Description

    - Returns the result type of at_key - [7] + Returns the result type of at_key + [7] .

    - - Synopsis + + Synopsis
     template<
    @@ -49,8 +48,8 @@
     };
     
    -

    Table 1.30. Parameters

    -
    +

    Table 1.30. Parameters

    +
    @@ -77,12 +76,13 @@ @@ -95,7 +95,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - Key + Key

    @@ -110,43 +110,43 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::at_key<Seq, Key>::type
     

    - Return type: Any type. + Return type: Any type.

    - Semantics: Returns the result of using - at_key to access the element - with key type Key in - Seq. + Semantics: Returns the result of using + at_key to access the element + with key type Key in + Seq.

    /sequence/intrinsic/at_key.hpp>

    - - Example + + Example
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char&>));
    +typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char&>));
     


    -

    [7] - result_of::at_key reflects the actual - return type of the function at_key. _sequence_s - typically return references to its elements via the at_key function. If you - want to get the actual element type, use result_of::value_at_key +

    [7] + result_of::at_key reflects the actual + return type of the function at_key. _sequence_s + typically return references to its elements via the at_key function. If you + want to get the actual element type, use result_of::value_at_key

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html index 765ab178..0c036000 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html @@ -3,7 +3,7 @@ back - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    -back -
    +back
    - - Description + + Description

    - Returns the result type of back. + Returns the result type of back.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.23. Parameters

    -
    +

    Table 1.23. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,33 +87,33 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::back<Seq>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: The type returned by dereferencing - an iterator to the last element in the sequence. Equivalent to result_of::deref<result_of::prior<result_of::end<Seq>::type>::type>::type. + Semantics: The type returned by dereferencing + an iterator to the last element in the sequence. Equivalent to result_of::deref<result_of::prior<result_of::end<Seq>::type>::type>::type.

    /sequence/intrinsic/back.hpp>

    - - Example + + Example
    -typedef vector<int,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::back<vec>::type, char&>));
    +typedef vector<int,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::back<vec>::type, char&>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html index 55e04aec..01959372 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the result type of begin. + Returns the result type of begin.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.19. Parameters

    -
    +

    Table 1.19. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,35 +87,35 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::begin<Seq>::type
     

    - Return type: An iterator modelling the - same traversal concept as Seq. + Return type: An iterator modelling the + same traversal concept as Seq.

    - Semantics: Returns the type of an iterator - to the first element of Seq. + Semantics: Returns the type of an iterator + to the first element of Seq.

    /sequence/intrinsic/begin.hpp>

    - - Example + + Example
    -typedef vector<int> vec;
    -typedef result_of::begin<vec>::type it;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<it>::type, int&>))
    +typedef vector<int> vec;
    +typedef result_of::begin<vec>::type it;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<it>::type, int&>))
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html index 362f1504..46b6ecd6 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the result type of empty. + Returns the result type of empty.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.21. Parameters

    -
    +

    Table 1.21. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,38 +87,38 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::empty<Seq>::type
     

    - Return type: An MPL + Return type: An MPL Integral Constant

    - Semantics: Returns mpl::true_ - if Seq has zero elements, - mpl::false_ otherwise. + Semantics: Returns mpl::true_ + if Seq has zero elements, + mpl::false_ otherwise.

    /sequence/intrinsic/empty.hpp>

    - - Example + + Example
    -typedef vector<> empty_vec;
    -typedef vector<int,float,char> vec;
    +typedef vector<> empty_vec;
    +typedef vector<int,float,char> vec;
     
    -BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
    -BOOST_MPL_ASSERT_NOT((result_of::empty<vec>));
    +BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
    +BOOST_MPL_ASSERT_NOT((result_of::empty<vec>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html index 08add2ba..9996629f 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html @@ -3,7 +3,7 @@ end - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    -end -
    +end
    - - Description + + Description

    - Returns the result type of end. + Returns the result type of end.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.20. Parameters

    -
    +

    Table 1.20. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,35 +87,35 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::end<Seq>::type
     

    - Return type: A model of the same traversal - concept as Seq. + Return type: A model of the same traversal + concept as Seq.

    - Semantics: Returns the type of an iterator - one past the end of Seq. + Semantics: Returns the type of an iterator + one past the end of Seq.

    /sequence/intrinsic/end.hpp>

    - - Example + + Example
    -typedef vector<int> vec;
    -typedef result_of::prior<result_of::end<vec>::type>::type first;
    -BOOST_MPL_ASSERT((result_of::equal_to<first, result_of::begin<vec>::type>))
    +typedef vector<int> vec;
    +typedef result_of::prior<result_of::end<vec>::type>::type first;
    +BOOST_MPL_ASSERT((result_of::equal_to<first, result_of::begin<vec>::type>))
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html index 77ef826d..e7ac5200 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html @@ -3,7 +3,7 @@ front - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the result type of front. + Returns the result type of front.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.22. Parameters

    -
    +

    Table 1.22. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,34 +87,34 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::front<Seq>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: The type returned by dereferencing - an iterator to the first element in Seq. - Equivalent to result_of::deref<result_of::begin<Seq>::type>::type. + Semantics: The type returned by dereferencing + an iterator to the first element in Seq. + Equivalent to result_of::deref<result_of::begin<Seq>::type>::type.

    /sequence/intrinsic/front.hpp>

    - - Example + + Example
    -typedef vector<int,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::front<vec>::type, int&>));
    +typedef vector<int,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::front<vec>::type, int&>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html index ff2230fb..ec2f92cc 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the result type of has_key. + Returns the result type of has_key.

    - - Synopsis + + Synopsis
     template<
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.29. Parameters

    -
    +

    Table 1.29. Parameters

    +
    @@ -75,12 +74,13 @@ @@ -93,7 +93,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - Key + Key

    @@ -108,37 +108,37 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::has_key<Seq, Key>::type
     

    - Return type: An MPL + Return type: An MPL Integral Constant.

    - Semantics: Returns mpl::true_ - if Seq contains an element - with key type Key, returns - mpl::false_ otherwise. + Semantics: Returns mpl::true_ + if Seq contains an element + with key type Key, returns + mpl::false_ otherwise.

    /sequence/intrinsic/has_key.hpp>

    - - Example + + Example
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((result_of::has_key<mymap, int>));
    -BOOST_MPL_ASSERT_NOT((result_of::has_key<mymap, void*>));
    +typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((result_of::has_key<mymap, int>));
    +BOOST_MPL_ASSERT_NOT((result_of::has_key<mymap, void*>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html index 83d28869..d1406503 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html @@ -3,7 +3,7 @@ size - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    -size -
    +size
    - - Description + + Description

    - Returns the result type of size. + Returns the result type of size.

    - - Synopsis + + Synopsis
     template<typename Seq>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.24. Parameters

    -
    +

    Table 1.24. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,34 +87,34 @@

    -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::size<Seq>::type
     

    - Return type: An MPL + Return type: An MPL Integral Constant.

    - Semantics: Returns the number of elements - in Seq. + Semantics: Returns the number of elements + in Seq.

    /sequence/intrinsic/size.hpp>

    - - Example + + Example
    -typedef vector<int,float,char> vec;
    -typedef result_of::size<vec>::type size_mpl_integral_constant;
    +typedef vector<int,float,char> vec;
    +typedef result_of::size<vec>::type size_mpl_integral_constant;
     BOOST_MPL_ASSERT_RELATION(size_mpl_integral_constant::value, ==, 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html index 8f00c0f2..0311007f 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html @@ -3,7 +3,7 @@ swap - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    -swap -
    +swap
    - - Description + + Description

    Returns the return type of swap.

    - - Synopsis + + Synopsis
     template<typename Seq1, typename Seq2>
    @@ -45,8 +44,8 @@
     };
     
    -

    Table 1.32. Parameters

    -
    +

    Table 1.32. Parameters

    +
    @@ -72,12 +71,13 @@ @@ -87,21 +87,21 @@

    -

    - Seq1, Seq2 + Seq1, Seq2

    - Models of Forward + Models of Forward Sequence

    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::swap<Seq1, Seq2>::type
     

    - Return type: void. + Return type: void.

    - Semantics: Always returns void. + Semantics: Always returns void.

    /sequence/intrinsic/swap.hpp> diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html index bc06c629..2c526a2e 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html @@ -3,7 +3,7 @@ value_at - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More


    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the actual type at a given index from the Sequence. + Returns the actual type at a given index from the Sequence.

    - - Synopsis + + Synopsis
     template<
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.27. Parameters

    -
    +

    Table 1.27. Parameters

    +
    @@ -75,12 +74,13 @@ @@ -93,7 +93,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - N + N

    @@ -109,33 +109,33 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::value_at<Seq, N>::type
     

    - Return type: Any type. + Return type: Any type.

    - Semantics: Returns the actual type at - the Nth element of Seq. + Semantics: Returns the actual type at + the Nth element of Seq.

    /sequence/intrinsic/value_at.hpp>

    - - Example + + Example
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_at<vec, boost::mpl::int_<1> >::type, float>));
    +typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_at<vec, boost::mpl::int_<1> >::type, float>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html index 65e73bc8..ce8f269d 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html @@ -3,7 +3,7 @@ value_at_c - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the actual type at a given index from the Sequence. + Returns the actual type at a given index from the Sequence.

    - - Synopsis + + Synopsis
     template<
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.28. Parameters

    -
    +

    Table 1.28. Parameters

    +
    @@ -75,12 +74,13 @@ @@ -93,7 +93,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - M + M

    @@ -108,33 +108,33 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::value_at_c<Seq, M>::type
     

    - Return type: Any type + Return type: Any type

    - Semantics: Returns the actual type at - the Mth element of Seq. + Semantics: Returns the actual type at + the Mth element of Seq.

    /sequence/intrinsic/value_at.hpp>

    - - Example + + Example
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_c<vec, 1>::type, float>));
    +typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_c<vec, 1>::type, float>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html index ee0e93fa..1e59c484 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html @@ -3,7 +3,7 @@ value_at_key - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +24,17 @@
    - - Description + + Description

    - Returns the actual element type associated with a Key from the Sequence. + Returns the actual element type associated with a Key from the Sequence.

    - - Synopsis + + Synopsis
     template<
    @@ -47,8 +46,8 @@
     };
     
    -

    Table 1.31. Parameters

    -
    +

    Table 1.31. Parameters

    +
    @@ -75,12 +74,13 @@ @@ -93,7 +93,7 @@ -

    - Seq + Seq

    - A model of Forward + A model of Forward Sequence

    - Key + Key

    @@ -108,34 +108,34 @@
    +
    -
    - - Expression +
    + + Expression Semantics
     result_of::value_at_key<Seq, Key>::type
     

    - Return type: Any type. + Return type: Any type.

    - Semantics: Returns the actual element - type associated with key type Key - in Seq. + Semantics: Returns the actual element + type associated with key type Key + in Seq.

    /sequence/intrinsic/value_at_key.hpp>

    - - Example + + Example
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char>));
    +typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char>));
     
    diff --git a/doc/html/fusion/sequence/operator.html b/doc/html/fusion/sequence/operator.html index fbda4009..1b52d062 100644 --- a/doc/html/fusion/sequence/operator.html +++ b/doc/html/fusion/sequence/operator.html @@ -3,7 +3,7 @@ Operator - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,14 +24,13 @@

    - These operators, like the Algorithms, + These operators, like the Algorithms, work generically on all Fusion sequences. All conforming Fusion sequences automatically get these operators for free.

    diff --git a/doc/html/fusion/sequence/operator/comparison.html b/doc/html/fusion/sequence/operator/comparison.html index 6067c78b..d672ae90 100644 --- a/doc/html/fusion/sequence/operator/comparison.html +++ b/doc/html/fusion/sequence/operator/comparison.html @@ -3,7 +3,7 @@ Comparison - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@

    - The Comparison operators: ==, - !=, <, - <=, >= - and >= work generically + The Comparison operators: ==, + !=, <, + <=, >= + and >= work generically on all Fusion sequences. Comparison operators are "short- circuited": elementary comparisons start from the first elements and are performed only until the result is clear.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/sequence/comparison.hpp>
     #include <boost/fusion/include/comparison.hpp>
    diff --git a/doc/html/fusion/sequence/operator/comparison/equal.html b/doc/html/fusion/sequence/operator/comparison/equal.html
    index 9ba43046..ac58ba16 100644
    --- a/doc/html/fusion/sequence/operator/comparison/equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/equal.html
    @@ -3,19 +3,20 @@
     
     equal
     
    -
    +
     
     
     
    -
    +
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,18 +25,17 @@
    - - Description + + Description

    Compare two sequences for equality.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -43,8 +43,8 @@
     operator==(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -72,41 +72,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a == b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a == b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a == b is a valid expression returning a type that is convertible to bool.

    @@ -114,31 +114,31 @@ compile time error.

    - Semantics: + Semantics:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, e1 == e2 returns true. For any 2 zero length + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, e1 == e2 returns true. For any 2 zero length _sequence_s, e and f, e == f returns true.

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    - - Example + + Example
    -vector<int, char> v1(5, 'a');
    -vector<int, char> v2(5, 'a');
    +vector<int, char> v1(5, 'a');
    +vector<int, char> v2(5, 'a');
     assert(v1 == v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/greater_than.html b/doc/html/fusion/sequence/operator/comparison/greater_than.html index 59e60624..2220a666 100644 --- a/doc/html/fusion/sequence/operator/comparison/greater_than.html +++ b/doc/html/fusion/sequence/operator/comparison/greater_than.html @@ -1,21 +1,24 @@ -greater than +greater + than - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +27,15 @@

    Lexicographically compare two sequences.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -40,8 +43,8 @@
     operator>(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -69,41 +72,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a > b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -111,24 +114,24 @@ compile time error.

    - Semantics: Returns b < a. + Semantics: Returns b < a.

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - - Example + + Example
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v2 > v1);
     assert(v3 > v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html index e0e224ee..821bbe24 100644 --- a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html @@ -1,21 +1,23 @@ -greater than equal +greater + than equal - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +26,15 @@

    Lexicographically compare two sequences.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -40,8 +42,8 @@
     operator>=(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -69,41 +71,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a >= b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -111,24 +113,24 @@ compile time error.

    - Semantics: Returns !(a < b). + Semantics: Returns !(a < b).

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/greater_equal.hpp>
     #include <boost/fusion/include/greater_equal.hpp>
     
    - - Example + + Example
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v2 >= v1);
     assert(v3 >= v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than.html b/doc/html/fusion/sequence/operator/comparison/less_than.html index ad89b6f8..be1cc13c 100644 --- a/doc/html/fusion/sequence/operator/comparison/less_than.html +++ b/doc/html/fusion/sequence/operator/comparison/less_than.html @@ -1,21 +1,24 @@ -less than +less + than - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +27,15 @@

    Lexicographically compare two sequences.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -40,8 +43,8 @@
     operator<(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -69,41 +72,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a < b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -111,26 +114,26 @@ compile time error.

    - Semantics: Returns the lexicographical - comparison of between a - and b. + Semantics: Returns the lexicographical + comparison of between a + and b.

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/less.hpp>
     #include <boost/fusion/include/less.hpp>
     
    - - Example + + Example
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v1 < v2);
     assert(v2 < v3);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html index f7854d63..fbd644ff 100644 --- a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html @@ -1,21 +1,24 @@ -less than equal +less + than equal - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +27,15 @@

    Lexicographically compare two sequences.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -40,8 +43,8 @@
     operator<=(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -69,41 +72,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a <= b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -111,24 +114,24 @@ compile time error.

    - Semantics: Returns !(b < a). + Semantics: Returns !(b < a).

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - - Example + + Example
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v1 <= v2);
     assert(v2 <= v3);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/not_equal.html b/doc/html/fusion/sequence/operator/comparison/not_equal.html index 670b29fa..df6ff637 100644 --- a/doc/html/fusion/sequence/operator/comparison/not_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/not_equal.html @@ -1,21 +1,23 @@ -not equal +not + equal - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,15 +26,15 @@

    Compare two sequences for inequality.

    - - Synopsis + + Synopsis
     template <typename Seq1, typename Seq2>
    @@ -40,8 +42,8 @@
     operator!=(Seq1 const& a, Seq2 const& b);
     
    - - Parameters + + Parameters
    @@ -69,41 +71,41 @@

    - a, - b + a, + b

    - Instances of Sequence + Instances of Sequence

    - Sequence(s) to compare + Sequence(s) to compare

    - - Expression + + Expression Semantics
     a != b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a == b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a == b is a valid expression returning a type that is convertible to bool.

    @@ -111,26 +113,26 @@ compile time error.

    - Semantics: + Semantics:

    Returns !(a == b).

    - - Header + + Header
     #include <boost/fusion/sequence/comparison/not_equal_to.hpp>
     #include <boost/fusion/include/not_equal_to.hpp>
     
    - - Example + + Example
    -vector<int, char> v3(5, 'b');
    -vector<int, char> t4(2, 'a');
    +vector<int, char> v3(5, 'b');
    +vector<int, char> t4(2, 'a');
     assert(v1 != v3);
     assert(v1 != t4);
     assert(!(v1 != v2));
    diff --git a/doc/html/fusion/sequence/operator/i_o.html b/doc/html/fusion/sequence/operator/i_o.html
    index 675f840f..7a89ecfb 100644
    --- a/doc/html/fusion/sequence/operator/i_o.html
    +++ b/doc/html/fusion/sequence/operator/i_o.html
    @@ -3,7 +3,7 @@
     
     I/O
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,32 +24,31 @@

    -I/O -

    +I/O

    - The I/O operators: << - and >> work generically - on all Fusion sequences. The global operator<< has been overloaded for generic - output streams such that Sequence(s) - are output by recursively calling operator<< for each element. Analogously, - the global operator>> - has been overloaded to extract Sequence(s) - from generic input streams by recursively calling operator>> for each element. + The I/O operators: << + and >> work generically + on all Fusion sequences. The global operator<< has been overloaded for generic + output streams such that Sequence(s) + are output by recursively calling operator<< for each element. Analogously, + the global operator>> + has been overloaded to extract Sequence(s) + from generic input streams by recursively calling operator>> for each element.

    - The default delimiter between the elements is space, and the Sequence + The default delimiter between the elements is space, and the Sequence is enclosed in parenthesis. For Example:

    -vector<float, int, std::string> a(1.0f, 2, std::string("Howdy folks!");
    +vector<float, int, std::string> a(1.0f, 2, std::string("Howdy folks!");
     cout << a;
     

    - outputs the vector + outputs the vector as: (1.0 2 Howdy folks!)

    @@ -58,23 +57,23 @@

    Manipulators

    -
    tuple_open(arg)
    +
    tuple_open(arg)

    Defines the character that is output before the first element.

    -
    tuple_close(arg)
    +
    tuple_close(arg)

    Defines the character that is output after the last element.

    -
    tuple_delimiter(arg)
    +
    tuple_delimiter(arg)

    Defines the delimiter character between elements.

    - The argument to tuple_open, - tuple_close and tuple_delimiter may be a char, wchar_t, + The argument to tuple_open, + tuple_close and tuple_delimiter may be a char, wchar_t, a C-string, or a wide C-string.

    @@ -84,12 +83,12 @@ std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << a;

    - outputs the same vector, a + outputs the same vector, a as: [1.0, 2, Howdy folks!]

    - The same manipulators work with operator>> and istream - as well. Suppose the std::cin + The same manipulators work with operator>> and istream + as well. Suppose the std::cin stream contains the following data:

    @@ -99,27 +98,27 @@
               The code:
             

    -vector<int, int, int> i;
    -vector<int, int> j;
    +vector<int, int, int> i;
    +vector<int, int> j;
     
     std::cin >> i;
     std::cin >> set_open('[') >> set_close(']') >> set_delimiter(':');
     std::cin >> j;
     

    - reads the data into the vector(s) i - and j. + reads the data into the vector(s) i + and j.

    - Note that extracting Sequence(s) - with std::string or C-style string elements does - not generally work, since the streamed Sequence + Note that extracting Sequence(s) + with std::string or C-style string elements does + not generally work, since the streamed Sequence representation may not be unambiguously parseable.

    -
    - - Header -
    +
    + + Header +
     #include <boost/fusion/sequence/io.hpp>
     #include <boost/fusion/include/io.hpp>
    diff --git a/doc/html/fusion/sequence/operator/i_o/in.html b/doc/html/fusion/sequence/operator/i_o/in.html
    index 93285545..cf361fb6 100644
    --- a/doc/html/fusion/sequence/operator/i_o/in.html
    +++ b/doc/html/fusion/sequence/operator/i_o/in.html
    @@ -3,7 +3,7 @@
     
     in
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@
    -in -
    +in
    - - Description + + Description

    - Read a Sequence from an input + Read a Sequence from an input stream.

    - - Synopsis + + Synopsis
     template <typename IStream, typename Sequence>
    @@ -44,8 +43,8 @@
     operator>>(IStream& is, Sequence& seq);
     
    - - Parameters + + Parameters
    @@ -96,7 +95,7 @@

    - A Sequence. + A Sequence.

    @@ -108,35 +107,35 @@
    - - Expression + + Expression Semantics
     is >> seq
     

    - Return type: IStream& + Return type: IStream&

    - Semantics: For each element, e, in sequence, seq, - call is >> - e. + Semantics: For each element, e, in sequence, seq, + call is >> + e.

    - - Header + + Header
     #include <boost/fusion/sequence/io/in.hpp>
     #include <boost/fusion/include/in.hpp>
     
    - - Example + + Example
    -vector<int, std::string, char> v;
    +vector<int, std::string, char> v;
     std::cin >> v;
     
    diff --git a/doc/html/fusion/sequence/operator/i_o/out.html b/doc/html/fusion/sequence/operator/i_o/out.html index bd543744..dc94b7e4 100644 --- a/doc/html/fusion/sequence/operator/i_o/out.html +++ b/doc/html/fusion/sequence/operator/i_o/out.html @@ -3,7 +3,7 @@ out - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,19 +24,18 @@
    -out -
    +out
    - - Description + + Description

    - Write a Sequence to an output + Write a Sequence to an output stream.

    - - Synopsis + + Synopsis
     template <typename OStream, typename Sequence>
    @@ -44,8 +43,8 @@
     operator<<(OStream& os, Sequence& seq);
     
    - - Parameters + + Parameters
    @@ -96,7 +95,7 @@

    - A Sequence. + A Sequence.

    @@ -108,35 +107,35 @@
    - - Expression + + Expression Semantics
     os << seq
     

    - Return type: OStream& + Return type: OStream&

    - Semantics: For each element, e, in sequence, seq, - call os << - e. + Semantics: For each element, e, in sequence, seq, + call os << + e.

    - - Header + + Header
     #include <boost/fusion/sequence/io/out.hpp>
     #include <boost/fusion/include/out.hpp>
     
    - - Example + + Example
    -std::cout << make_vector(123, "Hello", 'x') << std::endl;
    +std::cout << make_vector(123, "Hello", 'x') << std::endl;
     
    diff --git a/doc/html/fusion/support.html b/doc/html/fusion/support.html index 83bf6cf2..949ca5d8 100644 --- a/doc/html/fusion/support.html +++ b/doc/html/fusion/support.html @@ -3,7 +3,7 @@ Support - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    is_sequence
    is_view
    diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html index b138e819..4aa7854c 100644 --- a/doc/html/fusion/support/category_of.html +++ b/doc/html/fusion/support/category_of.html @@ -3,7 +3,7 @@ category_of - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,22 +24,21 @@
    +

    + + Description +

    A metafunction that establishes the conceptual classification of a particular - Sequence or Iterator - (see Iterator Concepts and - Sequence Concepts). + Sequence or Iterator + (see Iterator Concepts and + Sequence Concepts).

    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -50,10 +49,10 @@
         };
     }
     
    -
    - - Parameters -
    +

    + + Parameters +

    @@ -80,7 +79,7 @@

    - T + T

    @@ -95,16 +94,16 @@
    -
    - - Expression +

    + + Expression Semantics -

    +
     typedef traits::category_of<T>::type category;
     

    - Return type: + Return type:

    For Iterators, the return type is derived from one of: @@ -158,25 +157,25 @@ }}

    - Semantics: Establishes the conceptual classification - of a particular Sequence or Iterator. + Semantics: Establishes the conceptual classification + of a particular Sequence or Iterator.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/category_of.hpp>
     #include <boost/fusion/include/category_of.hpp>
     
    -
    - - Example -
    +

    + + Example +

     using boost::is_base_of;
    -typedef traits::category_of<list<> >::type list_category;
    -typedef traits::category_of<vector<> >::type vector_category;
    +typedef traits::category_of<list<> >::type list_category;
    +typedef traits::category_of<vector<> >::type vector_category;
     BOOST_MPL_ASSERT(( is_base_of<forward_traversal_tag, list_category> ));
     BOOST_MPL_ASSERT(( is_base_of<random_access_traversal_tag, vector_category> ));
     
    diff --git a/doc/html/fusion/support/deduce.html b/doc/html/fusion/support/deduce.html index 91cb0563..e38e4188 100644 --- a/doc/html/fusion/support/deduce.html +++ b/doc/html/fusion/support/deduce.html @@ -3,7 +3,7 @@ deduce - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,33 +24,32 @@ +

    + + Description +

    - Metafunction to apply element + Metafunction to apply element conversion to the full argument type.

    - It removes references to const, - references to array types are kept, even if the array is const. - Reference wrappers are removed (see boost::ref). + It removes references to const, + references to array types are kept, even if the array is const. + Reference wrappers are removed (see boost::ref).

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/deduce.hpp>
     #include <boost/fusion/include/deduce.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -61,10 +60,10 @@
         };
     }
     
    -
    - - Example -
    +

    + + Example +

     template <typename T>
     struct holder
    @@ -82,11 +81,11 @@
         return holder<T>(a);
     }
     
    -
    - - See also -
    - +

    + + See also +

    + diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html index 0c81669f..19498df8 100644 --- a/doc/html/fusion/support/deduce_sequence.html +++ b/doc/html/fusion/support/deduce_sequence.html @@ -3,7 +3,7 @@ deduce_sequence - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,31 +24,32 @@ +

    + + Description +

    - Applies element - conversion to each element in a Forward - Sequence. The resulting type is a Random + Applies element + conversion to each element in a Forward + Sequence. The resulting type is a Random Access Sequence that provides a converting constructor accepting the original type as its argument.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/deduce_sequence.hpp>
     #include <boost/fusion/include/deduce_sequence.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -59,10 +60,10 @@
         };
     }
     
    -
    - - Example -
    +

    + + Example +

     template <class Seq>
     struct holder
    @@ -75,18 +76,18 @@
     };
     
     template <typename T0, typename T1>
    -holder< vector<T0 const &, T1 const &> >
    +holder< vector<T0 const &, T1 const &> >
     make_holder(T0 const & a0, T1 const & a1)
     {
    -    typedef vector<T0 const &, T1 const &> arg_vec_t;
    +    typedef vector<T0 const &, T1 const &> arg_vec_t;
         return holder<arg_vec_t>( arg_vec_t(a0,a1) );
     }
     
    -
    - - See also -
    - +

    + + See also +

    + diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html index a33ff987..ff60883a 100644 --- a/doc/html/fusion/support/is_sequence.html +++ b/doc/html/fusion/support/is_sequence.html @@ -3,7 +3,7 @@ is_sequence - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,23 +24,22 @@ +

    + + Description +

    - Metafunction that evaluates to mpl::true_ - if a certain type T is a - conforming Fusion Sequence, mpl::false_ + Metafunction that evaluates to mpl::true_ + if a certain type T is a + conforming Fusion Sequence, mpl::false_ otherwise. This may be specialized to accomodate clients which provide Fusion conforming sequences.

    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -51,10 +50,10 @@
         };
     }
     
    -
    - - Parameters -
    +

    + + Parameters +

    @@ -81,7 +80,7 @@

    - T + T

    @@ -96,43 +95,43 @@
    -
    - - Expression +

    + + Expression Semantics -

    +
     typedef traits::is_sequence<T>::type c;
     

    - Return type: An MPL + Return type: An MPL Boolean Constant.

    - Semantics: Metafunction that evaluates to - mpl::true_ if a certain type T - is a conforming Fusion sequence, mpl::false_ + Semantics: Metafunction that evaluates to + mpl::true_ if a certain type T + is a conforming Fusion sequence, mpl::false_ otherwise.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/is_sequence.hpp>
     #include <boost/fusion/include/is_sequence.hpp>
     
    -
    - - Example -
    +

    + + Example +

     BOOST_MPL_ASSERT_NOT(( traits::is_sequence< std::vector<int> > ));
     BOOST_MPL_ASSERT_NOT(( is_sequence< int > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<list<> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<list<int> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<vector<> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<vector<int> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<list<> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<list<int> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<vector<> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<vector<int> > ));
     
    diff --git a/doc/html/fusion/support/is_view.html b/doc/html/fusion/support/is_view.html index f3c94ec3..b9183d07 100644 --- a/doc/html/fusion/support/is_view.html +++ b/doc/html/fusion/support/is_view.html @@ -3,7 +3,7 @@ is_view - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,26 +24,25 @@ +

    + + Description +

    - Metafunction that evaluates to mpl::true_ - if a certain type T is a - conforming Fusion View, mpl::false_ + Metafunction that evaluates to mpl::true_ + if a certain type T is a + conforming Fusion View, mpl::false_ otherwise. A view is a specialized sequence that does not actually contain data. Views hold sequences which may be other views. In general, views are held by other views by value, while non-views are held by other views by - reference. is_view may be + reference. is_view may be specialized to accomodate clients providing Fusion conforming views.

    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -54,10 +53,10 @@
         };
     }
     
    -
    - - Parameters -
    +

    + + Parameters +

    @@ -84,7 +83,7 @@

    - T + T

    @@ -99,43 +98,43 @@
    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

     typedef traits::is_view<T>::type c;
     

    - Return type: An MPL + Return type: An MPL Boolean Constant.

    - Semantics: Metafunction that evaluates to - mpl::true_ if a certain type T - is a conforming Fusion view, mpl::false_ + Semantics: Metafunction that evaluates to + mpl::true_ if a certain type T + is a conforming Fusion view, mpl::false_ otherwise.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/is_view.hpp>
     #include <boost/fusion/include/is_view.hpp>
     
    -
    - - Example -
    +

    + + Example +

     BOOST_MPL_ASSERT_NOT(( traits::is_view<std::vector<int> > ));
     BOOST_MPL_ASSERT_NOT(( traits::is_view<int> ));
     
     using boost::mpl::_
     using boost::is_pointer;
    -typedef vector<int*, char, long*, bool, double> vector_type;
    -typedef filter_view<vector_type, is_pointer<_> > filter_view_type;
    +typedef vector<int*, char, long*, bool, double> vector_type;
    +typedef filter_view<vector_type, is_pointer<_> > filter_view_type;
     BOOST_MPL_ASSERT(( traits::is_view<filter_view_type> ));
     
    diff --git a/doc/html/fusion/support/pair.html b/doc/html/fusion/support/pair.html index a7ea2689..9ebf447f 100644 --- a/doc/html/fusion/support/pair.html +++ b/doc/html/fusion/support/pair.html @@ -3,7 +3,7 @@ pair - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,23 +24,22 @@

    -pair -

    -
    - - Description -
    +pair
    +

    + + Description +

    - Fusion pair type is a half - runtime pair. A half runtime pair is similar to a std::pair, - but, unlike std::pair, + Fusion pair type is a half + runtime pair. A half runtime pair is similar to a std::pair, + but, unlike std::pair, the first type does not have data. It is used as elements in _map_s, for example.

    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename First, typename Second>
     struct pair;
    @@ -61,10 +60,10 @@
     typename result_of::make_pair<First,Second>::type
     make_pair(Second const &);
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -112,38 +111,38 @@

    Notation

    -
    P
    +
    P

    Fusion pair type

    -
    p, - p2
    +
    p, + p2

    Fusion pairs

    -
    F, - S
    +
    F, + S

    Arbitrary types

    -
    s
    +
    s

    - Value of type S + Value of type S

    -
    o
    +
    o

    Output stream

    -
    i
    +
    i

    Input stream

    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

    @@ -167,13 +166,13 @@ @@ -181,13 +180,13 @@ @@ -195,7 +194,7 @@ @@ -221,12 +220,12 @@ @@ -234,36 +233,36 @@ @@ -275,18 +274,18 @@

    - P::first_type + P::first_type

    - The type of the first template parameter, F, - equivalent to result_of::first<P>::type. + The type of the first template parameter, F, + equivalent to result_of::first<P>::type.

     

    - P::second_type + P::second_type

    - The type of the second template parameter, S, - equivalent to result_of::second<P>::type. + The type of the second template parameter, S, + equivalent to result_of::second<P>::type.

     

    - P() + P()

    @@ -208,12 +207,12 @@

    - P(s) + P(s)

    - Construct a pair given value for the second type, s. + Construct a pair given value for the second type, s.

     

    - P(p2) + P(p2)

    - Copy constructs a pair from another pair, p2. + Copy constructs a pair from another pair, p2.

     

    - p.second + p.second

    - Get the data from p1.]] [[p - = p2] [Assigns a + Get the data from p1.]] [[p + = p2] [Assigns a pair, - p1, from - another pair, p2.]] + p1, from + another pair, p2.]] [[make_pair<F>(s)] [Make a pair given the first type, - F, and + F, and a value for the - second type, s. + second type, s. The second type assumes the type - of s]] - [[o << p] [Output p to - output stream, o.]] - [[i >> p] [Input p from - input stream, i.]] - [[p == p2] + of s]] + [[o << p] [Output p to + output stream, o.]] + [[i >> p] [Input p from + input stream, i.]] + [[p == p2] [Tests two pairs - for equality.]] [[p + for equality.]] [[p != p2`

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/pair.hpp>
     #include <boost/fusion/include/pair.hpp>
     
    -
    - - Example -
    +

    + + Example +

     pair<int, char> p('X');
     std::cout << p << std::endl;
    diff --git a/doc/html/fusion/support/tag_of.html b/doc/html/fusion/support/tag_of.html
    index b17f6e16..5c2438c8 100644
    --- a/doc/html/fusion/support/tag_of.html
    +++ b/doc/html/fusion/support/tag_of.html
    @@ -3,7 +3,7 @@
     
     tag_of
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,26 +24,25 @@ +

    + + Description +

    All conforming Fusion sequences and iterators have an associated tag type. - The purpose of the tag is to enable tag - dispatching from Intrinsic + The purpose of the tag is to enable tag + dispatching from Intrinsic functions to implementations appropriate for the type.

    This metafunction may be specialized to accomodate clients providing Fusion conforming sequences.

    -
    - - Synopsis -
    +

    + + Synopsis +

     namespace traits
     {
    @@ -54,10 +53,10 @@
         };
     }
     
    -
    - - Parameters -
    +

    + + Parameters +

    @@ -84,7 +83,7 @@

    - T + T

    @@ -99,37 +98,37 @@
    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

     typedef traits::tag_of<T>::type tag;
     

    - Return type: Any type. + Return type: Any type.

    - Semantics: Returns the tag type associated - with T. + Semantics: Returns the tag type associated + with T.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/support/tag_of.hpp>
     #include <boost/fusion/include/tag_of.hpp>
     
    -
    - - Example -
    +

    + + Example +

    -typedef traits::tag_of<list<> >::type tag1;
    -typedef traits::tag_of<list<int> >::type tag2;
    -typedef traits::tag_of<vector<> >::type tag3;
    -typedef traits::tag_of<vector<int> >::type tag4;
    +typedef traits::tag_of<list<> >::type tag1;
    +typedef traits::tag_of<list<int> >::type tag2;
    +typedef traits::tag_of<vector<> >::type tag3;
    +typedef traits::tag_of<vector<int> >::type tag4;
     
     BOOST_MPL_ASSERT((boost::is_same<tag1, tag2>));
     BOOST_MPL_ASSERT((boost::is_same<tag3, tag4>));
    diff --git a/doc/html/fusion/tuple.html b/doc/html/fusion/tuple.html
    index a9620c2f..8319ff15 100644
    --- a/doc/html/fusion/tuple.html
    +++ b/doc/html/fusion/tuple.html
    @@ -3,7 +3,7 @@
     
     Tuple
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@
    Class template tuple
    @@ -44,12 +43,12 @@

    The TR1 technical report describes extensions to the C++ standard library. Many of these extensions will be considered for the next iteration of the C++ - standard. TR1 describes a tuple type, and support for treating std::pair + standard. TR1 describes a tuple type, and support for treating std::pair as a type of tuple.

    Fusion provides full support for the TR1 - Tuple interface, and the extended uses of std::pair described + Tuple interface, and the extended uses of std::pair described in the TR1 document.

    diff --git a/doc/html/fusion/tuple/class_template_tuple.html b/doc/html/fusion/tuple/class_template_tuple.html index 1d9cfe61..64119b29 100644 --- a/doc/html/fusion/tuple/class_template_tuple.html +++ b/doc/html/fusion/tuple/class_template_tuple.html @@ -3,7 +3,7 @@ Class template tuple - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@

    Fusion's implementation of the TR1 - Tuple is also a fusion Forward + Tuple is also a fusion Forward Sequence. As such the fusion tuple type provides a lot of functionality beyond that required by TR1.

    - Currently tuple is basically a synonym for vector, although this may be changed + Currently tuple is basically a synonym for vector, although this may be changed in future releases of fusion.

    -
    - - Synopsis -
    +

    + + Synopsis +

     template<
         typename T1 = unspecified,
    diff --git a/doc/html/fusion/tuple/class_template_tuple/construction.html b/doc/html/fusion/tuple/class_template_tuple/construction.html
    index a4b71b5b..9b1cb593 100644
    --- a/doc/html/fusion/tuple/class_template_tuple/construction.html
    +++ b/doc/html/fusion/tuple/class_template_tuple/construction.html
    @@ -3,19 +3,20 @@
     
     Construction
     
    -
    +
     
     
     
    -
    +
     
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,12 +25,11 @@ +
    + + Description +

    The TR1 Tuple type provides a default constructor, a constructor that takes @@ -37,34 +37,34 @@ copy constructor. The details of the various constructors are described in this section.

    -
    - - Specification -
    +
    + + Specification +

    Notation

    -
    T1 - ... TN, - U1 ... - UN
    +
    T1 + ... TN, + U1 ... + UN

    Tuple element types

    -
    P1 - ... PN
    +
    P1 + ... PN

    Parameter types

    -
    Ti, - Ui
    +
    Ti, + Ui

    - The type of the ith + The type of the ith element of a tuple

    -
    Pi
    +
    Pi

    - The type of the ith + The type of the ith parameter

    @@ -73,48 +73,48 @@ tuple();

    - Requirements: Each Ti + Requirements: Each Ti is default constructable.

    - Semantics: Default initializes each element + Semantics: Default initializes each element of the tuple.

     tuple(P1,P2,...,PN);
     

    - Requirements: Each Pi - is Ti if Ti is a reference type, const Ti& otherwise. + Requirements: Each Pi + is Ti if Ti is a reference type, const Ti& otherwise.

    - Semantics: Copy initializes each element + Semantics: Copy initializes each element with the corresponding parameter.

     tuple(const tuple& t);
     

    - Requirements: Each Ti + Requirements: Each Ti should be copy constructable.

    - Semantics: Copy constructs each element - of *this - with the corresponding element of t. + Semantics: Copy constructs each element + of *this + with the corresponding element of t.

     template<typename U1, typename U2, ..., typename UN>
     tuple(const tuple<U1, U2, ..., UN>& t);
     

    - Requirements: Each Ti - shall be constructible from the corresponding Ui. + Requirements: Each Ti + shall be constructible from the corresponding Ui.

    - Semantics: Constructs each element of - *this - with the corresponding element of t. + Semantics: Constructs each element of + *this + with the corresponding element of t.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/element_access.html b/doc/html/fusion/tuple/class_template_tuple/element_access.html index eb8f30fa..450afe7c 100644 --- a/doc/html/fusion/tuple/class_template_tuple/element_access.html +++ b/doc/html/fusion/tuple/class_template_tuple/element_access.html @@ -1,21 +1,24 @@ -Element access +Element + access - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,59 +27,59 @@ +
    + + Description +

    The TR1 - Tuple provides the get + Tuple provides the get function to provide access to it's elements by zero based numeric index.

    -
    - - Specification -
    +
    + + Specification +
     template<int I, T>
     RJ get(T& t);
     

    - Requires: 0 + Requires: 0 < I - <= N. - The program is ill formed if I - is out of bounds. T is - any fusion sequence type, including tuple. + <= N. + The program is ill formed if I + is out of bounds. T is + any fusion sequence type, including tuple.

    - Return type: RJ - is equivalent to result_of::at_c<I,T>::type. + Return type: RJ + is equivalent to result_of::at_c<I,T>::type.

    - Returns: A reference to the Ith element of T. + Returns: A reference to the Ith element of T.

     template<int I, typename T>
     PJ get(T const& t);
     

    - Requires: 0 + Requires: 0 < I - <= N. - The program is ill formed if I - is out of bounds. T is - any fusion sequence type, including tuple. + <= N. + The program is ill formed if I + is out of bounds. T is + any fusion sequence type, including tuple.

    - Return type: PJ - is equivalent to result_of::at_c<I,T>::type. + Return type: PJ + is equivalent to result_of::at_c<I,T>::type.

    - Returns: A const reference to the Ith element of T. + Returns: A const reference to the Ith element of T.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html index 85c7953a..c0ae67bd 100644 --- a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html +++ b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html @@ -1,21 +1,23 @@ -Relational operators +Relational + operators - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,45 +26,45 @@ +
    + + Description +

    The TR1 Tuple provides the standard boolean relational operators.

    -
    - - Specification -
    +
    + + Specification +

    Notation

    -
    T1 - ... TN, - U1 ... - UN
    +
    T1 + ... TN, + U1 ... + UN

    Tuple element types

    -
    P1 - ... PN
    +
    P1 + ... PN

    Parameter types

    -
    Ti, - Ui
    +
    Ti, + Ui

    - The type of the ith + The type of the ith element of a tuple

    -
    Pi
    +
    Pi

    - The type of the ith + The type of the ith parameter

    @@ -75,19 +77,23 @@ const tuple<U1, U2, ..., UN>& rhs);

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) == get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) == get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns true - if and only if get<i>(lhs) == get<i>(rhs) - for all i. For any 2 zero - length tuples e and f, e - == f - returns true. + Semantics: Returns true + if and only if get<i>(lhs) == get<i>(rhs) + for all i. For any 2 zero + length tuples e and f, e + == f + returns true.

     template<typename T1, typename T2, ..., typename TN,
    @@ -97,16 +103,18 @@
         const tuple<U1, U2, ..., UN>& rhs);
     

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) < get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) < get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns the lexicographical - comparison of between lhs - and rhs. + Semantics: Returns the lexicographical + comparison of between lhs + and rhs.

     template<typename T1, typename T2, ..., typename TN,
    @@ -116,14 +124,16 @@
         const tuple<U1, U2, ..., UN>& rhs);
     

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) == get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) == get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(lhs == rhs). + Semantics: Returns !(lhs == rhs).

     template<typename T1, typename T2, ..., typename TN,
    @@ -133,14 +143,16 @@
         const tuple<U1, U2, ..., UN>& rhs);
     

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(rhs) < get<i>(lhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(rhs) < get<i>(lhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(rhs < lhs) + Semantics: Returns !(rhs < lhs)

     template<typename T1, typename T2, ..., typename TN,
    @@ -150,15 +162,17 @@
         const tuple<U1, U2, ..., UN>& rhs);
     

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(rhs) < get<i>(lhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(rhs) < get<i>(lhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns rhs - < lhs. + Semantics: Returns rhs + < lhs.

     template<typename T1, typename T2, ..., typename TN,
    @@ -168,14 +182,16 @@
         const tuple<U1, U2, ..., UN>& rhs);
     

    - Requirements: For all i, - 1 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) < get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) < get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(lhs < rhs). + Semantics: Returns !(lhs < rhs).

    diff --git a/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html b/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html index a53564fa..d9dccb61 100644 --- a/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html +++ b/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html @@ -1,21 +1,23 @@ -Tuple creation functions +Tuple + creation functions - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,44 +26,44 @@ +
    + + Description +

    - TR1 describes 2 utility functions for creating _tr1tuple_s. make_tuple - builds a tuple out of it's argument list, and tie + TR1 describes 2 utility functions for creating _tr1tuple_s. make_tuple + builds a tuple out of it's argument list, and tie builds a tuple of references to it's arguments. The details of these creation functions are described in this section.

    -
    - - Specification -
    +
    + + Specification +
     template<typename T1, typename T2, ..., typename TN>
     tuple<V1, V2, ..., VN> make_tuple(const T1& t1, const T2& t2, ..., const TN& tn);
     

    - Where Vi is X& - if the cv-unqualified type Ti - is reference_wrapper<X>, - otherwise Vi is Ti. + Where Vi is X& + if the cv-unqualified type Ti + is reference_wrapper<X>, + otherwise Vi is Ti.

    - Returns: tuple<V1, V2, ..., VN>(t1, t2, ..., tN) + Returns: tuple<V1, V2, ..., VN>(t1, t2, ..., tN)

     template<typename T1, typename T2, ..., typename TN>
     tuple<T1&, T2&, ..., TN&> tie(T1& t1, T2& t2, ..., TN& tn);
     

    - Returns: tuple<T1&, T2&, ..., - TN&>(t1, t2, ..., tN). When argument ti - is ignore, assigning any + Returns: tuple<T1&, T2&, ..., + TN&>(t1, t2, ..., tN). When argument ti + is ignore, assigning any value to the corresponding tuple element has has no effect.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html b/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html index 7aa69963..0b7368bc 100644 --- a/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html +++ b/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html @@ -1,21 +1,24 @@ -Tuple helper classes +Tuple + helper classes - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,51 +27,51 @@ +
    + + Description +

    The TR1 Tuple provides 2 helper traits, for compile time access to the tuple size, and the element types.

    -
    - - Specification -
    +
    + + Specification +
     tuple_size<T>::value
     

    - Requires: T - is any fusion sequence type, including tuple. + Requires: T + is any fusion sequence type, including tuple.

    - Type: MPL + Type: MPL Integral Constant

    - Value: The number of elements in the sequence. - Equivalent to result_of::size<T>::type. + Value: The number of elements in the sequence. + Equivalent to result_of::size<T>::type.

     tuple_element<I, T>::type
     

    - Requires: T - is any fusion sequence type, including tuple. - 0 <= + Requires: T + is any fusion sequence type, including tuple. + 0 <= I < - N or the program is ill formed. + N or the program is ill formed.

    - Value: The type of the Ith - element of T. Equivalent - to result_of::value_at<I,T>::type. + Value: The type of the Ith + element of T. Equivalent + to result_of::value_at<I,T>::type.

    diff --git a/doc/html/fusion/tuple/pairs.html b/doc/html/fusion/tuple/pairs.html index 2c8f24af..9e5d1283 100644 --- a/doc/html/fusion/tuple/pairs.html +++ b/doc/html/fusion/tuple/pairs.html @@ -3,19 +3,20 @@ Pairs - + - +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,50 +25,49 @@

    -Pairs -

    -
    - - Description -
    +Pairs
    +

    + + Description +

    The TR1 - Tuple interface is specified to provide uniform access to std::pair + Tuple interface is specified to provide uniform access to std::pair as if it were a 2 element tuple.

    -
    - - Specification -
    +

    + + Specification +

     tuple_size<std::pair<T1, T2> >::value
     

    - Type: An MPL + Type: An MPL Integral Constant

    - Value: Returns 2, the number of elements + Value: Returns 2, the number of elements in a pair.

     tuple_element<0, std::pair<T1, T2> >::type
     

    - Type: T1 + Type: T1

    - Value: Returns the type of the first element + Value: Returns the type of the first element of the pair

     tuple_element<1, std::pair<T1, T2> >::type
     

    - Type: T2 + Type: T2

    - Value: Returns thetype of the second element + Value: Returns thetype of the second element of the pair

    @@ -78,21 +78,21 @@
     const P& get(const std::pair<T1, T2>& pr);
     

    - Type: If I - == 0 - P is T1, - else if I == - 1 P - is T2 else the program is + Type: If I + == 0 + P is T1, + else if I == + 1 P + is T2 else the program is ill-formed.

    - Returns: pr.first - if I == - 0 else pr.second.[*Returns: - pr.first if I - == 0 - else pr.second. + Returns: pr.first + if I == + 0 else pr.second.[*Returns: + pr.first if I + == 0 + else pr.second.

    diff --git a/doc/html/fusion/view.html b/doc/html/fusion/view.html index 47c3764d..180b732b 100644 --- a/doc/html/fusion/view.html +++ b/doc/html/fusion/view.html @@ -3,7 +3,7 @@ View - + @@ -12,10 +12,10 @@
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,8 +24,7 @@

    -View -

    +View
    single_view
    filter_view
    @@ -44,10 +43,10 @@ sequence(s) are actually accessed. Views' lazy nature make them very cheap to copy and be passed around by value.

    -

    - - Header -

    +

    + + Header +

     #include <boost/fusion/view.hpp>
     #include <boost/fusion/include/view.hpp>
    diff --git a/doc/html/fusion/view/filter_view.html b/doc/html/fusion/view/filter_view.html
    index bc5ee643..734b5ffe 100644
    --- a/doc/html/fusion/view/filter_view.html
    +++ b/doc/html/fusion/view/filter_view.html
    @@ -3,7 +3,7 @@
     
     filter_view
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,39 +24,38 @@
    +

    + + Description +

    - filter_view is a view into + filter_view is a view into a subset of its underlying sequence's elements satisfying a given predicate (an MPL metafunction). - The filter_view presents - only those elements for which its predicate evaluates to mpl::true_. + The filter_view presents + only those elements for which its predicate evaluates to mpl::true_.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/filter_view.hpp>
     #include <boost/fusion/include/filter_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename Sequence, typename Pred>
     struct filter_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -84,12 +83,13 @@ @@ -101,12 +101,12 @@

    - Sequence + Sequence

    - A Forward + A Forward Sequence

    - Pred + Pred

    - Unary Metafunction returning an mpl::bool_ + Unary Metafunction returning an mpl::bool_

    @@ -116,36 +116,39 @@
    -
    - - Model of -
    - +

    + + Model of +

    +

    Notation

    -
    F
    +
    F

    - A filter_view type + A filter_view type

    -
    f, - f2
    +
    f, + f2

    - Instances of filter_view + Instances of filter_view

    -
    s
    +
    s

    - A Forward Sequence + A Forward Sequence

    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

    @@ -169,57 +172,57 @@

    - F(s) + F(s)

    - Creates a filter_view - given a sequence, s. + Creates a filter_view + given a sequence, s.

    - F(f) + F(f)

    - Copy constructs a filter_view - from another filter_view, - f. + Copy constructs a filter_view + from another filter_view, + f.

    - f = - f2 + f = + f2

    - Assigns to a filter_view, - f, from another - filter_view, f2. + Assigns to a filter_view, + f, from another + filter_view, f2.

    -
    - - Example -
    +

    + + Example +

     using boost::mpl::_;
     using boost::mpl::not_;
     using boost::is_class;
     
    -typedef vector<std::string, char, long, bool, double> vector_type;
    +typedef vector<std::string, char, long, bool, double> vector_type;
     
     vector_type v("a-string", '@', 987654, true, 6.6);
     filter_view<vector_type const, not_<is_class<_> > > view(v);
    diff --git a/doc/html/fusion/view/iterator_range.html b/doc/html/fusion/view/iterator_range.html
    index da52af1f..68a3b260 100644
    --- a/doc/html/fusion/view/iterator_range.html
    +++ b/doc/html/fusion/view/iterator_range.html
    @@ -3,7 +3,7 @@
     
     iterator_range
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,36 +24,35 @@ +

    + + Description +

    - iterator_range presents a + iterator_range presents a sub-range of its underlying sequence delimited by a pair of iterators.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/iterator_range.hpp>
     #include <boost/fusion/include/iterator_range.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename First, typename Last>
     struct iterator_range;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -81,12 +80,12 @@

    - First + First

    - A fusion Iterator + A fusion Iterator

    @@ -97,12 +96,12 @@

    - Last + Last

    - A fusion Iterator + A fusion Iterator

    @@ -112,48 +111,52 @@
    -
    - - Model of -
    +

    + + Model of +

    Notation

    -
    IR
    +
    IR

    - An iterator_range type + An iterator_range type

    -
    f
    +
    f

    - An instance of First + An instance of First

    -
    l
    +
    l

    - An instance of Last + An instance of Last

    -
    ir, - ir2
    +
    ir, + ir2

    - Instances of iterator_range + Instances of iterator_range

    -
    - - Expression +

    + + Expression Semantics -

    +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

    @@ -177,62 +180,62 @@

    - IR(f, l) + IR(f, l)

    - Creates an iterator_range - given iterators, f - and l. + Creates an iterator_range + given iterators, f + and l.

    - IR(ir) + IR(ir)

    - Copy constructs an iterator_range - from another iterator_range, - ir. + Copy constructs an iterator_range + from another iterator_range, + ir.

    - ir = - ir2 + ir = + ir2

    - Assigns to a iterator_range, - ir, from another - iterator_range, - ir2. + Assigns to a iterator_range, + ir, from another + iterator_range, + ir2.

    -
    - - Example -
    +

    + + Example +

     char const* s = "Ruby";
    -typedef vector<int, char, double, char const*> vector_type;
    +typedef vector<int, char, double, char const*> vector_type;
     vector_type vec(1, 'x', 3.3, s);
     
    -typedef result_of::begin<vector_type>::type A;
    -typedef result_of::end<vector_type>::type B;
    -typedef result_of::next<A>::type C;
    -typedef result_of::prior<B>::type D;
    +typedef result_of::begin<vector_type>::type A;
    +typedef result_of::end<vector_type>::type B;
    +typedef result_of::next<A>::type C;
    +typedef result_of::prior<B>::type D;
     
     C c(vec);
     D d(vec);
    diff --git a/doc/html/fusion/view/joint_view.html b/doc/html/fusion/view/joint_view.html
    index 0505807e..1d617e57 100644
    --- a/doc/html/fusion/view/joint_view.html
    +++ b/doc/html/fusion/view/joint_view.html
    @@ -3,7 +3,7 @@
     
     joint_view
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,36 +24,35 @@ +

    + + Description +

    - joint_view presents a view + joint_view presents a view which is a concatenation of two sequences.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/joint_view.hpp>
     #include <boost/fusion/include/joint_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename Sequence1, typename Sequence2>
     struct joint_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -81,12 +80,13 @@ @@ -98,12 +98,13 @@ @@ -114,40 +115,42 @@

    - Sequence1 + Sequence1

    - A Forward + A Forward Sequence

    - Sequence2 + Sequence2

    - A Forward + A Forward Sequence

    -
    - - Model of -
    - +

    + + Model of +

    +

    Notation

    -
    JV
    +
    JV

    - A joint_view type + A joint_view type

    -
    s1
    +
    s1

    - An instance of Sequence1 + An instance of Sequence1

    -
    s2
    +
    s2

    - An instance of Sequence2 + An instance of Sequence2

    -
    jv, - jv2
    +
    jv, + jv2

    - Instances of joint_view + Instances of joint_view

    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

    @@ -171,58 +174,58 @@

    - JV(s1, s2) + JV(s1, s2)

    - Creates a joint_view - given sequences, s1 - and s2. + Creates a joint_view + given sequences, s1 + and s2.

    - JV(jv) + JV(jv)

    - Copy constructs a joint_view - from another joint_view, - jv. + Copy constructs a joint_view + from another joint_view, + jv.

    - jv = - jv2 + jv = + jv2

    - Assigns to a joint_view, - jv, from another - joint_view, jv2. + Assigns to a joint_view, + jv, from another + joint_view, jv2.

    -
    - - Example -
    +

    + + Example +

    -vector<int, char> v1(3, 'x');
    -vector<std::string, int> v2("hello", 123);
    +vector<int, char> v1(3, 'x');
    +vector<std::string, int> v2("hello", 123);
     joint_view<
    -    vector<int, char>
    -  , vector<std::string, int>
    +    vector<int, char>
    +  , vector<std::string, int>
     > view(v1, v2);
     std::cout << view << std::endl;
     
    diff --git a/doc/html/fusion/view/reverse_view.html b/doc/html/fusion/view/reverse_view.html index c1515ca3..bc1ea08e 100644 --- a/doc/html/fusion/view/reverse_view.html +++ b/doc/html/fusion/view/reverse_view.html @@ -3,7 +3,7 @@ reverse_view - + @@ -12,10 +12,10 @@ - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,33 +24,32 @@

    - reverse_view presents a reversed + reverse_view presents a reversed view of underlying sequence. The first element will be its last and the last element will be its first.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/reverse_view.hpp>
     #include <boost/fusion/include/reverse_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename Sequence>
     struct reverse_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -77,12 +76,13 @@ @@ -92,38 +92,40 @@

    - Sequence + Sequence

    - A Bidirectional + A Bidirectional Sequence

    -
    - - Model of -
    -
    • Bidirectional +

      + + Model of +

      +

      Notation

      -
      RV
      +
      RV

      - A reverse_view type + A reverse_view type

      -
      s
      +
      s

      - An instance of Sequence + An instance of Sequence

      -
      rv, - rv2
      +
      rv, + rv2

      - Instances of reverse_view + Instances of reverse_view

      -
      - - Expression +

      + + Expression Semantics -

      +

      Semantics of an expression is defined only where it differs from, or is not - defined in Bidirectional + defined in Bidirectional Sequence.

      @@ -147,53 +149,53 @@

      - RV(s) + RV(s)

      - Creates a unary reverse_view - given sequence, s. + Creates a unary reverse_view + given sequence, s.

      - RV(rv) + RV(rv)

      - Copy constructs a reverse_view - from another reverse_view, - rv. + Copy constructs a reverse_view + from another reverse_view, + rv.

      - rv = - rv2 + rv = + rv2

      - Assigns to a reverse_view, - rv, from another - reverse_view, rv2. + Assigns to a reverse_view, + rv, from another + reverse_view, rv2.

      -
      - - Example -
      +

      + + Example +

      -typedef vector<int, short, double> vector_type;
      +typedef vector<int, short, double> vector_type;
       vector_type vec(2, 5, 3.3);
       
       reverse_view<vector_type> reverse(vec);
      diff --git a/doc/html/fusion/view/single_view.html b/doc/html/fusion/view/single_view.html
      index 263b38c8..f302a863 100644
      --- a/doc/html/fusion/view/single_view.html
      +++ b/doc/html/fusion/view/single_view.html
      @@ -3,7 +3,7 @@
       
       single_view
       
      -
      +
       
       
       
      @@ -12,10 +12,10 @@
       
       
      -
      +
      -
      -
      +
      +
      Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

      @@ -24,32 +24,31 @@

    - single_view is a view into + single_view is a view into a value as a single element sequence.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/single_view.hpp>
     #include <boost/fusion/include/single_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename T>
     struct single_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -76,7 +75,7 @@

    - T + T

    @@ -90,36 +89,38 @@
    -
    - - Model of -
    - +

    + + Model of +

    +

    Notation

    -
    S
    +
    S

    - A single_view type + A single_view type

    -
    s, - s2
    +
    s, + s2

    - Instances of single_view + Instances of single_view

    -
    x
    +
    x

    - An instance of T + An instance of T

    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

    @@ -143,51 +144,51 @@

    - S(x) + S(x)

    - Creates a single_view - from x. + Creates a single_view + from x.

    - S(s) + S(s)

    - Copy constructs a single_view - from another single_view, - s. + Copy constructs a single_view + from another single_view, + s.

    - s = - s2 + s = + s2

    - Assigns to a single_view, - s, from another - single_view, s2. + Assigns to a single_view, + s, from another + single_view, s2.

    -
    - - Example -
    +

    + + Example +

     single_view<int> view(3);
     std::cout << view << std::endl;
    diff --git a/doc/html/fusion/view/transform_view.html b/doc/html/fusion/view/transform_view.html
    index a51e6be8..6baac9f9 100644
    --- a/doc/html/fusion/view/transform_view.html
    +++ b/doc/html/fusion/view/transform_view.html
    @@ -3,7 +3,7 @@
     
     transform_view
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,47 +24,46 @@

    - The unary version of transform_view + The unary version of transform_view presents a view of its underlying sequence given a unary function object - or function pointer. The binary version of transform_view + or function pointer. The binary version of transform_view presents a view of 2 underlying sequences, given a binary function object - or function pointer. The transform_view - inherits the traversal characteristics (see Sequence + or function pointer. The transform_view + inherits the traversal characteristics (see Sequence Traversal Concept) of its underlying sequence or sequences.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/transform_view.hpp>
     #include <boost/fusion/include/transform_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

    - Unary Version + Unary Version

     template <typename Sequence, typename F1>
     struct transform_view;
     

    - Binary Version + Binary Version

     template <typename Sequence1, typename Sequence2, typename F2>
     struct transform_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -92,12 +91,13 @@ @@ -109,12 +109,13 @@ @@ -126,12 +127,13 @@ @@ -143,14 +145,14 @@ @@ -162,14 +164,14 @@ @@ -180,73 +182,79 @@

    - Sequence + Sequence

    - A Forward + A Forward Sequence

    - Sequence1 + Sequence1

    - A Forward + A Forward Sequence

    - Sequence2 + Sequence2

    - A Forward + A Forward Sequence

    - F1 + F1

    - A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an instance - of F1 when called - with a value of each element type E + A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an instance + of F1 when called + with a value of each element type E in the input sequence.

    - F2 + F2

    - A binary function object or function pointer. boost::result_of<F2(E1, E2)>::type is the return type of an instance - of F2 when called - with a value of each corresponding pair of element type E1 and E2 + A binary function object or function pointer. boost::result_of<F2(E1, E2)>::type is the return type of an instance + of F2 when called + with a value of each corresponding pair of element type E1 and E2 in the input sequences.

    -
    - - Model of -
    +

    + + Model of +

    Notation

    -
    TV
    +
    TV

    - A transform_view type + A transform_view type

    -
    BTV
    +
    BTV

    - A binary transform_view + A binary transform_view type

    -
    UTV
    +
    UTV

    - A unary transform_view + A unary transform_view type

    -
    f1
    +
    f1

    - An instance of F1 + An instance of F1

    -
    f2
    +
    f2

    - An instance of F2 + An instance of F2

    -
    s
    +
    s

    - An instance of Sequence + An instance of Sequence

    -
    s1
    +
    s1

    - An instance of Sequence1 + An instance of Sequence1

    -
    s2
    +
    s2

    - An instance of Sequence2 + An instance of Sequence2

    -
    tv, - tv2
    +
    tv, + tv2

    - Instances of transform_view + Instances of transform_view

    -
    - - Expression +

    + + Expression Semantics -

    +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward - Sequence, Bidirectional - Sequence or Random - Access Sequence depending on the traversal characteristics (see Sequence Traversal Concept) + defined in Forward + Sequence, Bidirectional + Sequence or Random + Access Sequence depending on the traversal characteristics (see Sequence Traversal Concept) of its underlying sequence or sequences.

    @@ -270,68 +278,68 @@

    - UTV(s, f1) + UTV(s, f1)

    - Creates a unary transform_view - given sequence, s - and unary function object or function pointer, f1. + Creates a unary transform_view + given sequence, s + and unary function object or function pointer, f1.

    - BTV(s1, s2, f2) + BTV(s1, s2, f2)

    - Creates a binary transform_view - given sequences, s1 - and s2 and binary - function object or function pointer, f2. + Creates a binary transform_view + given sequences, s1 + and s2 and binary + function object or function pointer, f2.

    - TV(tv) + TV(tv)

    - Copy constructs a transform_view - from another transform_view, - tv. + Copy constructs a transform_view + from another transform_view, + tv.

    - tv = - tv2 + tv = + tv2

    - Assigns to a transform_view, - tv, from another - transform_view, - tv2. + Assigns to a transform_view, + tv, from another + transform_view, + tv2.

    -
    - - Example -
    +

    + + Example +

     struct square
     {
    @@ -350,7 +358,7 @@
         }
     };
     
    -typedef vector<int, short, double> vector_type;
    +typedef vector<int, short, double> vector_type;
     vector_type vec(2, 5, 3.3);
     
     transform_view<vector_type, square> transform(vec, square());
    diff --git a/doc/html/fusion/view/zip_view.html b/doc/html/fusion/view/zip_view.html
    index 49a3da12..fe54d444 100644
    --- a/doc/html/fusion/view/zip_view.html
    +++ b/doc/html/fusion/view/zip_view.html
    @@ -3,7 +3,7 @@
     
     zip_view
     
    -
    +
     
     
     
    @@ -12,10 +12,10 @@
     
     
    -
    +
    -
    -
    +
    +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,39 +24,38 @@ +

    + + Description +

    - zip_view presents a view - which iterates over a collection of Sequence(s) - in parallel. A zip_view is - constructed from a Sequence of references + zip_view presents a view + which iterates over a collection of Sequence(s) + in parallel. A zip_view is + constructed from a Sequence of references to the component _sequence_s.

    -
    - - Header -
    +

    + + Header +

     #include <boost/fusion/view/zip_view.hpp>
     #include <boost/fusion/include/zip_view.hpp>
     
    -
    - - Synopsis -
    +

    + + Synopsis +

     template <typename Sequences>
     struct zip_view;
     
    -
    - - Template parameters -
    +

    + + Template parameters +

    @@ -83,12 +82,13 @@ @@ -98,43 +98,47 @@

    - Sequences + Sequences

    - A Forward + A Forward Sequence of references to other Fusion _sequence_s

    -
    - - Model of -
    +

    + + Model of +

    Notation

    -
    ZV
    +
    ZV

    - A joint_view type + A joint_view type

    -
    s
    +
    s

    - An instance of Sequences + An instance of Sequences

    -
    zv1, - zv2
    +
    zv1, + zv2

    - Instances of ZV + Instances of ZV

    -
    - - Expression Semantics -
    +

    + + Expression Semantics +

    Semantics of an expression is defined only where it differs from, or is not - defined in Forward + defined in Forward Sequence.

    @@ -158,12 +162,12 @@ @@ -171,44 +175,44 @@

    - ZV(s) + ZV(s)

    - Creates a zip_view + Creates a zip_view given a sequence of references to the component _sequence_s.

    - ZV(zv1) + ZV(zv1)

    - Copy constructs a zip_view - from another zip_view, - zv. + Copy constructs a zip_view + from another zip_view, + zv.

    - zv1 = - zv2 + zv1 = + zv2

    - Assigns to a zip_view, - zv, from another - zip_view, zv2. + Assigns to a zip_view, + zv, from another + zip_view, zv2.

    -
    - - Example -
    +

    + + Example +

    -typedef vector<int,int> vec1;
    -typedef vector<char,char> vec2;
    +typedef vector<int,int> vec1;
    +typedef vector<char,char> vec2;
     vec1 v1(1,2);
     vec2 v2('a','b');
    -typedef vector<vec1&, vec2&> sequences;
    +typedef vector<vec1&, vec2&> sequences;
     std::cout << zip_view<sequences>(sequences(v1, v2)) << std::endl; // ((1 a) (2 b))
     
    diff --git a/doc/html/index.html b/doc/html/index.html index 78810198..2cfc827a 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,17 +3,17 @@ Chapter 1. Fusion 2.0 - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -34,7 +34,7 @@
    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -240,7 +240,7 @@
    - +

    Last revised: March 15, 2008 at 13:47:43 GMT

    Last revised: December 20, 2007 at 05:09:32 GMT


    diff --git a/test/functional/invoke.cpp b/test/functional/invoke.cpp index be49938b..3960af17 100644 --- a/test/functional/invoke.cpp +++ b/test/functional/invoke.cpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2005-2006 Joao Abecasis + Copyright (c) 2005-2006 João Abecasis Copyright (c) 2006-2007 Tobias Schwinger Use modification and distribution are subject to the Boost Software diff --git a/test/functional/invoke_function_object.cpp b/test/functional/invoke_function_object.cpp index 61504fb8..5f08f650 100644 --- a/test/functional/invoke_function_object.cpp +++ b/test/functional/invoke_function_object.cpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2005-2006 Joao Abecasis + Copyright (c) 2005-2006 João Abecasis Copyright (c) 2006-2007 Tobias Schwinger Use modification and distribution are subject to the Boost Software diff --git a/test/functional/invoke_procedure.cpp b/test/functional/invoke_procedure.cpp index 3e733974..810cb903 100644 --- a/test/functional/invoke_procedure.cpp +++ b/test/functional/invoke_procedure.cpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2005-2006 Joao Abecasis + Copyright (c) 2005-2006 João Abecasis Copyright (c) 2006-2007 Tobias Schwinger Use modification and distribution are subject to the Boost Software