From ca6f831b96121c84d69714afb5265a83781f661a Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Thu, 15 Feb 2007 23:11:24 +0000 Subject: [PATCH] adds documentation for functional module [SVN r36959] --- doc/html/fusion/acknowledgements.html | 2 +- doc/html/fusion/algorithms.html | 109 ++++-- doc/html/fusion/algorithms/iteration.html | 21 +- .../algorithms/iteration/functions.html | 2 +- .../iteration/functions/accumulate.html | 52 +-- .../algorithms/iteration/functions/fold.html | 46 +-- .../iteration/functions/for_each.html | 42 +-- .../algorithms/iteration/metafunctions.html | 2 +- .../iteration/metafunctions/accumulate.html | 44 +-- .../iteration/metafunctions/fold.html | 44 +-- .../iteration/metafunctions/for_each.html | 36 +- doc/html/fusion/algorithms/query.html | 22 +- .../fusion/algorithms/query/functions.html | 2 +- .../algorithms/query/functions/all.html | 56 ++-- .../algorithms/query/functions/any.html | 56 ++-- .../algorithms/query/functions/count.html | 46 +-- .../algorithms/query/functions/count_if.html | 44 +-- .../algorithms/query/functions/find.html | 42 +-- .../algorithms/query/functions/find_if.html | 49 +-- .../algorithms/query/functions/none.html | 56 ++-- .../algorithms/query/metafunctions.html | 2 +- .../algorithms/query/metafunctions/all.html | 38 +-- .../algorithms/query/metafunctions/any.html | 38 +-- .../algorithms/query/metafunctions/count.html | 30 +- .../query/metafunctions/count_if.html | 30 +- .../algorithms/query/metafunctions/find.html | 34 +- .../query/metafunctions/find_if.html | 40 +-- .../algorithms/query/metafunctions/none.html | 38 +-- .../fusion/algorithms/transformation.html | 48 ++- .../algorithms/transformation/functions.html | 2 +- .../transformation/functions/clear.html | 30 +- .../transformation/functions/erase.html | 58 ++-- .../transformation/functions/erase_key.html | 34 +- .../transformation/functions/filter.html | 38 +-- .../transformation/functions/filter_if.html | 51 +-- .../transformation/functions/insert.html | 38 +-- .../functions/insert_range.html | 40 +-- .../transformation/functions/join.html | 38 +-- .../transformation/functions/pop_back.html | 32 +- .../transformation/functions/pop_front.html | 32 +- .../transformation/functions/push_back.html | 36 +- .../transformation/functions/push_front.html | 36 +- .../transformation/functions/remove.html | 38 +-- .../transformation/functions/remove_if.html | 44 +-- .../transformation/functions/replace.html | 48 +-- .../transformation/functions/replace_if.html | 48 +-- .../transformation/functions/reverse.html | 30 +- .../transformation/functions/transform.html | 78 ++--- .../transformation/functions/zip.html | 46 +-- .../transformation/metafunctions.html | 2 +- .../transformation/metafunctions/clear.html | 24 +- .../transformation/metafunctions/erase.html | 40 +-- .../metafunctions/erase_key.html | 30 +- .../transformation/metafunctions/filter.html | 34 +- .../metafunctions/filter_if.html | 39 ++- .../transformation/metafunctions/insert.html | 34 +- .../metafunctions/insert_range.html | 34 +- .../transformation/metafunctions/join.html | 22 +- .../metafunctions/pop_back.html | 26 +- .../metafunctions/pop_front.html | 26 +- .../metafunctions/push_back.html | 30 +- .../metafunctions/push_front.html | 30 +- .../transformation/metafunctions/remove.html | 34 +- .../metafunctions/remove_if.html | 43 +-- .../transformation/metafunctions/replace.html | 28 +- .../metafunctions/replace_if.html | 34 +- .../transformation/metafunctions/reverse.html | 26 +- .../metafunctions/transform.html | 32 +- .../transformation/metafunctions/zip.html | 34 +- doc/html/fusion/change_log.html | 6 +- doc/html/fusion/extension.html | 181 +++++----- doc/html/fusion/functional/adapters.html | 50 +++ .../fusion/functional/adapters/fused.html | 203 ++++++++++++ .../adapters/fused_function_object.html | 221 +++++++++++++ .../functional/adapters/fused_procedure.html | 219 +++++++++++++ .../functional/adapters/unfused_generic.html | 270 +++++++++++++++ .../adapters/unfused_lvalue_args.html | 235 +++++++++++++ .../adapters/unfused_rvalue_args.html | 235 +++++++++++++ .../functional/adapters/unfused_typed.html | 309 ++++++++++++++++++ doc/html/fusion/functional/concepts.html | 45 +++ .../fusion/functional/concepts/callable.html | 45 +++ .../functional/concepts/def_callable.html | 100 ++++++ doc/html/fusion/functional/concepts/poly.html | 110 +++++++ doc/html/fusion/functional/generation.html | 58 ++++ .../functional/generation/functions.html | 46 +++ .../generation/functions/make_fused.html | 129 ++++++++ .../functions/make_fused_function_object.html | 143 ++++++++ .../functions/make_fused_procedure.html | 124 +++++++ .../functions/make_unfused_generic.html | 155 +++++++++ .../functions/make_unfused_lvalue_args.html | 142 ++++++++ .../functions/make_unfused_rvalue_args.html | 141 ++++++++ .../functional/generation/metafunctions.html | 46 +++ .../generation/metafunctions/make_fused.html | 72 ++++ .../make_fused_function_object.html | 72 ++++ .../metafunctions/make_fused_procedure.html | 72 ++++ .../metafunctions/make_unfused_generic.html | 72 ++++ .../make_unfused_lvalue_args.html | 72 ++++ .../make_unfused_rvalue_args.html | 72 ++++ doc/html/fusion/functional/invocation.html | 53 +++ .../functional/invocation/functions.html | 43 +++ .../invocation/functions/invoke.html | 160 +++++++++ .../functions/invoke_function_object.html | 173 ++++++++++ .../functions/invoke_procedure.html | 166 ++++++++++ .../functional/invocation/metafunctions.html | 43 +++ .../invocation/metafunctions/invoke.html | 75 +++++ .../metafunctions/invoke_function_object.html | 75 +++++ .../metafunctions/invoke_procedure.html | 75 +++++ doc/html/fusion/introduction.html | 34 +- doc/html/fusion/iterators.html | 4 +- doc/html/fusion/iterators/concepts.html | 2 +- .../concepts/bidirectional_iterator.html | 58 ++-- .../iterators/concepts/forward_iterator.html | 144 ++++---- .../concepts/random_access_iterator.html | 50 +-- doc/html/fusion/iterators/functions.html | 2 +- .../fusion/iterators/functions/advance.html | 42 +-- .../fusion/iterators/functions/advance_c.html | 38 +-- .../fusion/iterators/functions/deref.html | 34 +- .../fusion/iterators/functions/distance.html | 30 +- doc/html/fusion/iterators/functions/next.html | 34 +- .../fusion/iterators/functions/prior.html | 34 +- doc/html/fusion/iterators/metafunctions.html | 2 +- .../iterators/metafunctions/advance.html | 46 +-- .../iterators/metafunctions/advance_c.html | 44 +-- .../fusion/iterators/metafunctions/deref.html | 38 +-- .../iterators/metafunctions/distance.html | 37 ++- .../iterators/metafunctions/equal_to.html | 42 +-- .../fusion/iterators/metafunctions/next.html | 32 +- .../fusion/iterators/metafunctions/prior.html | 36 +- .../iterators/metafunctions/value_of.html | 38 +-- doc/html/fusion/iterators/operators.html | 2 +- .../operators/operator_equality.html | 22 +- .../operators/operator_inequality.html | 22 +- .../operators/operator_unary_star.html | 32 +- doc/html/fusion/notes.html | 110 +++---- doc/html/fusion/organization.html | 22 +- doc/html/fusion/preface.html | 14 +- doc/html/fusion/quick_start.html | 110 +++---- doc/html/fusion/references.html | 2 +- doc/html/fusion/sequences.html | 79 ++++- doc/html/fusion/sequences/adapted.html | 12 +- .../sequences/adapted/boost__array.html | 24 +- .../sequences/adapted/boost__tuple.html | 14 +- .../sequences/adapted/boost__variant.html | 14 +- .../sequences/adapted/mpl_sequence.html | 18 +- .../fusion/sequences/adapted/std__pair.html | 24 +- doc/html/fusion/sequences/concepts.html | 6 +- .../concepts/associative_sequence.html | 77 ++--- .../concepts/bidirectional_sequence.html | 58 ++-- .../sequences/concepts/forward_sequence.html | 126 +++---- .../concepts/random_access_sequence.html | 70 ++-- doc/html/fusion/sequences/containers.html | 4 +- .../fusion/sequences/containers/cons.html | 100 +++--- .../fusion/sequences/containers/list.html | 84 ++--- doc/html/fusion/sequences/containers/map.html | 78 ++--- doc/html/fusion/sequences/containers/set.html | 66 ++-- .../fusion/sequences/containers/vector.html | 74 ++--- doc/html/fusion/sequences/conversion.html | 16 +- .../sequences/conversion/functions.html | 2 +- .../conversion/functions/as_list.html | 26 +- .../conversion/functions/as_map.html | 34 +- .../conversion/functions/as_set.html | 28 +- .../conversion/functions/as_vector.html | 26 +- .../sequences/conversion/metafunctions.html | 2 +- .../conversion/metafunctions/as_list.html | 28 +- .../conversion/metafunctions/as_map.html | 36 +- .../conversion/metafunctions/as_set.html | 30 +- .../conversion/metafunctions/as_vector.html | 28 +- doc/html/fusion/sequences/generation.html | 23 +- .../sequences/generation/functions.html | 2 +- .../generation/functions/list_tie.html | 42 +-- .../generation/functions/make_cons.html | 40 +-- .../generation/functions/make_list.html | 46 +-- .../generation/functions/make_map.html | 72 ++-- .../generation/functions/make_set.html | 56 ++-- .../generation/functions/make_vector.html | 46 +-- .../sequences/generation/functions/tiers.html | 28 +- .../generation/functions/vector_tie.html | 42 +-- .../sequences/generation/metafunctions.html | 2 +- .../generation/metafunctions/list_tie.html | 36 +- .../generation/metafunctions/make_cons.html | 30 +- .../generation/metafunctions/make_list.html | 36 +- .../generation/metafunctions/make_map.html | 56 ++-- .../generation/metafunctions/make_set.html | 46 +-- .../generation/metafunctions/make_vector.html | 36 +- .../generation/metafunctions/vector_tie.html | 36 +- doc/html/fusion/sequences/intrinsics.html | 35 +- .../sequences/intrinsics/functions.html | 2 +- .../sequences/intrinsics/functions/at.html | 42 +-- .../sequences/intrinsics/functions/at_c.html | 42 +-- .../intrinsics/functions/at_key.html | 38 +-- .../sequences/intrinsics/functions/back.html | 36 +- .../sequences/intrinsics/functions/begin.html | 34 +- .../sequences/intrinsics/functions/empty.html | 32 +- .../sequences/intrinsics/functions/end.html | 34 +- .../sequences/intrinsics/functions/front.html | 36 +- .../intrinsics/functions/has_key.html | 34 +- .../sequences/intrinsics/functions/size.html | 26 +- .../sequences/intrinsics/metafunctions.html | 2 +- .../intrinsics/metafunctions/at.html | 46 +-- .../intrinsics/metafunctions/at_c.html | 42 +-- .../intrinsics/metafunctions/at_key.html | 46 +-- .../intrinsics/metafunctions/back.html | 28 +- .../intrinsics/metafunctions/begin.html | 32 +- .../intrinsics/metafunctions/empty.html | 35 +- .../intrinsics/metafunctions/end.html | 32 +- .../intrinsics/metafunctions/front.html | 30 +- .../intrinsics/metafunctions/has_key.html | 37 ++- .../intrinsics/metafunctions/size.html | 29 +- .../intrinsics/metafunctions/value_at.html | 32 +- .../intrinsics/metafunctions/value_at_c.html | 28 +- .../metafunctions/value_at_key.html | 30 +- doc/html/fusion/sequences/operators.html | 19 +- .../sequences/operators/comparison.html | 12 +- .../sequences/operators/comparison/equal.html | 44 +-- .../operators/comparison/greater_than.html | 36 +- .../comparison/greater_than_equal.html | 36 +- .../operators/comparison/less_than.html | 40 +-- .../operators/comparison/less_than_equal.html | 36 +- .../operators/comparison/not_equal.html | 34 +- doc/html/fusion/sequences/operators/i_o.html | 44 +-- .../fusion/sequences/operators/i_o/in.html | 24 +- .../fusion/sequences/operators/i_o/out.html | 24 +- doc/html/fusion/sequences/views.html | 4 +- .../fusion/sequences/views/filter_view.html | 66 ++-- .../sequences/views/iterator_range.html | 78 ++--- .../fusion/sequences/views/joint_view.html | 74 ++--- .../fusion/sequences/views/reverse_view.html | 58 ++-- .../fusion/sequences/views/single_view.html | 56 ++-- .../sequences/views/transform_view.html | 112 +++---- doc/html/fusion/sequences/views/zip_view.html | 60 ++-- doc/html/fusion/support.html | 2 +- doc/html/fusion/support/category_of.html | 24 +- doc/html/fusion/support/deduce.html | 20 +- doc/html/fusion/support/deduce_sequence.html | 18 +- doc/html/fusion/support/is_sequence.html | 39 +-- doc/html/fusion/support/is_view.html | 37 ++- doc/html/fusion/support/pair.html | 92 +++--- doc/html/fusion/support/tag_of.html | 30 +- doc/html/fusion/tuples.html | 6 +- .../fusion/tuples/class_template_tuple.html | 8 +- .../class_template_tuple/construction.html | 56 ++-- .../class_template_tuple/element_access.html | 40 +-- .../relational_operators.html | 132 ++++---- .../tuple_creation_functions.html | 26 +- .../tuple_helper_classes.html | 31 +- doc/html/fusion/tuples/pairs.html | 45 +-- doc/html/index.html | 211 +++++++++++- 247 files changed, 8675 insertions(+), 3833 deletions(-) create mode 100644 doc/html/fusion/functional/adapters.html create mode 100644 doc/html/fusion/functional/adapters/fused.html create mode 100644 doc/html/fusion/functional/adapters/fused_function_object.html create mode 100644 doc/html/fusion/functional/adapters/fused_procedure.html create mode 100644 doc/html/fusion/functional/adapters/unfused_generic.html create mode 100644 doc/html/fusion/functional/adapters/unfused_lvalue_args.html create mode 100644 doc/html/fusion/functional/adapters/unfused_rvalue_args.html create mode 100644 doc/html/fusion/functional/adapters/unfused_typed.html create mode 100644 doc/html/fusion/functional/concepts.html create mode 100644 doc/html/fusion/functional/concepts/callable.html create mode 100644 doc/html/fusion/functional/concepts/def_callable.html create mode 100644 doc/html/fusion/functional/concepts/poly.html create mode 100644 doc/html/fusion/functional/generation.html create mode 100644 doc/html/fusion/functional/generation/functions.html create mode 100644 doc/html/fusion/functional/generation/functions/make_fused.html create mode 100644 doc/html/fusion/functional/generation/functions/make_fused_function_object.html create mode 100644 doc/html/fusion/functional/generation/functions/make_fused_procedure.html create mode 100644 doc/html/fusion/functional/generation/functions/make_unfused_generic.html create mode 100644 doc/html/fusion/functional/generation/functions/make_unfused_lvalue_args.html create mode 100644 doc/html/fusion/functional/generation/functions/make_unfused_rvalue_args.html create mode 100644 doc/html/fusion/functional/generation/metafunctions.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_fused.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_fused_function_object.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_fused_procedure.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_unfused_generic.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_unfused_lvalue_args.html create mode 100644 doc/html/fusion/functional/generation/metafunctions/make_unfused_rvalue_args.html create mode 100644 doc/html/fusion/functional/invocation.html create mode 100644 doc/html/fusion/functional/invocation/functions.html create mode 100644 doc/html/fusion/functional/invocation/functions/invoke.html create mode 100644 doc/html/fusion/functional/invocation/functions/invoke_function_object.html create mode 100644 doc/html/fusion/functional/invocation/functions/invoke_procedure.html create mode 100644 doc/html/fusion/functional/invocation/metafunctions.html create mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke.html create mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke_function_object.html create mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke_procedure.html diff --git a/doc/html/fusion/acknowledgements.html b/doc/html/fusion/acknowledgements.html index 04b602c0..16c64ee6 100644 --- a/doc/html/fusion/acknowledgements.html +++ b/doc/html/fusion/acknowledgements.html @@ -3,7 +3,7 @@ Acknowledgements - + diff --git a/doc/html/fusion/algorithms.html b/doc/html/fusion/algorithms.html index 830b9c3d..ac0bf9c1 100644 --- a/doc/html/fusion/algorithms.html +++ b/doc/html/fusion/algorithms.html @@ -3,12 +3,12 @@ Algorithms - + - + @@ -21,33 +21,100 @@

-PrevUpHomeNext +PrevUpHomeNext

- + Lazy Evaluation

@@ -61,39 +128,39 @@ 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

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 + 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 + 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

@@ -106,7 +173,7 @@
 
 
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/algorithms/iteration.html b/doc/html/fusion/algorithms/iteration.html index 21d00c0c..b24155cb 100644 --- a/doc/html/fusion/algorithms/iteration.html +++ b/doc/html/fusion/algorithms/iteration.html @@ -3,11 +3,10 @@ Iteration - + - + @@ -21,21 +20,31 @@
-PrevUpHomeNext +PrevUpHomeNext

The iteration algorithms provide the fundamental algorithms for traversing a sequence repeatedly applying an operation to its elements.

- + Header

@@ -48,7 +57,7 @@
 
 
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/algorithms/iteration/functions.html b/doc/html/fusion/algorithms/iteration/functions.html index 5c3db0bd..2bd75e70 100644 --- a/doc/html/fusion/algorithms/iteration/functions.html +++ b/doc/html/fusion/algorithms/iteration/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/algorithms/iteration/functions/accumulate.html b/doc/html/fusion/algorithms/iteration/functions/accumulate.html index fa695d10..5e75eec2 100644 --- a/doc/html/fusion/algorithms/iteration/functions/accumulate.html +++ b/doc/html/fusion/algorithms/iteration/functions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -26,18 +26,18 @@
- + Description

- Repeatedly applies binary Polymorphic - Function Object f - to each element of a sequence and the previous state. accumulate is equivalent to - fold. + Function Object f + to each element of a sequence and the previous state. accumulate is equivalent to + fold.

- + Synopsis
@@ -46,11 +46,11 @@
     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.33. Parameters

+

Table 1.33. Parameters

@@ -64,26 +64,26 @@ - + - + - + @@ -93,7 +93,7 @@
seqseq 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 + Sequence, f(eN ....f(e2,f(e1,initial_state))) must be a valid expression for + each element e1 to + eN in seq Operation's argument
initial_stateinitial_state Any type Initial state
ff A - model of binary Polymorphic Function Object
- + Expression Semantics
@@ -101,28 +101,28 @@ 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

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

- + Header
 #include <boost/fusion/algorithm/iteration/accumulate.hpp>
 
- + Example
@@ -141,8 +141,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/algorithms/iteration/functions/fold.html b/doc/html/fusion/algorithms/iteration/functions/fold.html index 4f5a2792..435e08ae 100644 --- a/doc/html/fusion/algorithms/iteration/functions/fold.html +++ b/doc/html/fusion/algorithms/iteration/functions/fold.html @@ -3,7 +3,7 @@ fold - + @@ -26,17 +26,17 @@
- + Description

- Repeatedly applies binary Polymorphic - Function Object f + Function Object f to each element of a sequence and the previous state.

- + Synopsis
@@ -45,11 +45,11 @@
     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.32. Parameters

+

Table 1.32. Parameters

@@ -63,25 +63,25 @@ - + - + - + @@ -91,7 +91,7 @@
seqseq A model of Forward - Sequence,f(e) must be a valid expression for each - element e in seq + Sequence,f(e) must be a valid expression for each + element e in seq Operation's argument
initial_stateinitial_state Any type Initial state
ff A - model of binary Polymorphic Function Object
- + Expression Semantics
@@ -99,28 +99,28 @@ 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

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

- + Header
 #include <boost/fusion/algorithm/iteration/fold.hpp>
 
- + Example
@@ -139,8 +139,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/algorithms/iteration/functions/for_each.html b/doc/html/fusion/algorithms/iteration/functions/for_each.html index 0c8769ff..74271b03 100644 --- a/doc/html/fusion/algorithms/iteration/functions/for_each.html +++ b/doc/html/fusion/algorithms/iteration/functions/for_each.html @@ -3,7 +3,7 @@ for_each - + @@ -26,14 +26,14 @@
for_each
- + Description

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

- + Synopsis
@@ -41,11 +41,11 @@
     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.34. Parameters

+

Table 1.34. Parameters

@@ -59,17 +59,17 @@ - + - + @@ -78,36 +78,36 @@
seqseq A model of Forward - Sequence, f(e) must be a valid expression for each - element e in seq + Sequence, f(e) must be a valid expression for each + element e in seq Operation's argument
ff A unary function object Operation's argument
- + 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

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

- + Header
 #include <boost/fusion/algorithm/iteration/for_each.hpp>
 
- + Example
@@ -120,9 +120,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/algorithms/iteration/metafunctions.html b/doc/html/fusion/algorithms/iteration/metafunctions.html index 1bd66d25..6330fe0d 100644 --- a/doc/html/fusion/algorithms/iteration/metafunctions.html +++ b/doc/html/fusion/algorithms/iteration/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html index c779df6e..467fe2f6 100644 --- a/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html +++ b/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -26,14 +26,14 @@
accumulate
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.36. Parameters

+

Table 1.36. Parameters

@@ -61,7 +61,7 @@ - + - + - + @@ -91,34 +91,34 @@
SequenceSequence A model of Forward @@ -70,17 +70,17 @@ The sequence to iterate
StateState Any type The initial state for the first application of - F + F
FF A - model of binary Polymorphic Function Object
- + 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 Semantics: Returns the result of applying + accumulate to a sequence + of type Sequence, with + an initial state of type State + and binary Polymorphic - Function Object of type F. + Function Object of type F.

- + Complexity

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

- + Header
diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/fold.html b/doc/html/fusion/algorithms/iteration/metafunctions/fold.html
index ee735622..a0f1e15f 100644
--- a/doc/html/fusion/algorithms/iteration/metafunctions/fold.html
+++ b/doc/html/fusion/algorithms/iteration/metafunctions/fold.html
@@ -3,7 +3,7 @@
 
 fold
 
-
+
 
 
 
@@ -26,14 +26,14 @@
 
 
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.35. Parameters

+

Table 1.35. Parameters

@@ -61,7 +61,7 @@ - + - + - + @@ -91,34 +91,34 @@
SequenceSequence A model of Forward @@ -70,17 +70,17 @@ The sequence to iterate
StateState Any type The initial state for the first application of - F + F
FF A - model of binary Polymorphic Function Object
- + 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 Semantics: Returns the result of applying + fold to a sequence of + type Sequence, with an + initial state of type State + and binary Polymorphic - Function Object of type F. + Function Object of type F.

- + Complexity

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

- + Header
diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html b/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html
index 6f865f32..0aa28932 100644
--- a/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html
+++ b/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html
@@ -3,7 +3,7 @@
 
 for_each
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 

- 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
- + Synopsis
@@ -48,7 +48,7 @@
 };
 
-

Table 1.37. Parameters

+

Table 1.37. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,32 +80,32 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
FF Any type Operation's argument
- + 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/query.html b/doc/html/fusion/algorithms/query.html
index 9b5c8953..2df7f938 100644
--- a/doc/html/fusion/algorithms/query.html
+++ b/doc/html/fusion/algorithms/query.html
@@ -3,7 +3,7 @@
 
 Query
 
-
+
 
 
 
@@ -27,13 +27,31 @@
 Query
 
 

The query algorithms provide support for searching and analyzing sequences.

- + Header

diff --git a/doc/html/fusion/algorithms/query/functions.html b/doc/html/fusion/algorithms/query/functions.html
index 112f1f24..51a98f99 100644
--- a/doc/html/fusion/algorithms/query/functions.html
+++ b/doc/html/fusion/algorithms/query/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
diff --git a/doc/html/fusion/algorithms/query/functions/all.html b/doc/html/fusion/algorithms/query/functions/all.html
index 923fa47a..fea60b5f 100644
--- a/doc/html/fusion/algorithms/query/functions/all.html
+++ b/doc/html/fusion/algorithms/query/functions/all.html
@@ -3,7 +3,7 @@
 
 all
 
-
+
 
 
 
@@ -26,18 +26,18 @@
 
 
- + 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
@@ -45,11 +45,11 @@
     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.39. Parameters

+

Table 1.39. Parameters

@@ -63,19 +63,19 @@ - + - + @@ -84,38 +84,38 @@
seqseq A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for every element - e in seq + Sequence, f(e) is a valid expression, convertible + to bool, for every element + e in seq The sequence to search
ff A unary function object The search predicate
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/all.hpp>
 
- + Example
@@ -128,8 +128,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/algorithms/query/functions/any.html b/doc/html/fusion/algorithms/query/functions/any.html index e5f4872d..936bbfe4 100644 --- a/doc/html/fusion/algorithms/query/functions/any.html +++ b/doc/html/fusion/algorithms/query/functions/any.html @@ -3,7 +3,7 @@ any - + @@ -26,18 +26,18 @@
- + 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
@@ -45,11 +45,11 @@
     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.38. Parameters

+

Table 1.38. Parameters

@@ -63,19 +63,19 @@ - + - + @@ -84,38 +84,38 @@
seqseq A model of Forward - Sequence, f(e) must be a valid expression, convertible - to bool, for each element - e in seq + Sequence, f(e) must be a valid expression, convertible + to bool, for each element + e in seq The sequence to search
ff A unary function object The search predicate
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/any.hpp>
 
- + Example
@@ -128,8 +128,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/algorithms/query/functions/count.html b/doc/html/fusion/algorithms/query/functions/count.html index 673735ad..8ffca992 100644 --- a/doc/html/fusion/algorithms/query/functions/count.html +++ b/doc/html/fusion/algorithms/query/functions/count.html @@ -3,7 +3,7 @@ count - + @@ -26,14 +26,14 @@
- + Description

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

- + Synopsis
@@ -41,11 +41,11 @@
     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.43. Parameters

+

Table 1.43. Parameters

@@ -59,20 +59,20 @@ - + - + @@ -81,42 +81,42 @@
seqseq A model of Forward - Sequence, e == t - must be a valid expression, convertible to bool, - for each element e - in seq + Sequence, e == t + must be a valid expression, convertible to bool, + for each element e + in seq The sequence to search
TT Any type The type to count
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/count.hpp>
 
- + 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/algorithms/query/functions/count_if.html b/doc/html/fusion/algorithms/query/functions/count_if.html index 4d4d8b0f..cd36bc88 100644 --- a/doc/html/fusion/algorithms/query/functions/count_if.html +++ b/doc/html/fusion/algorithms/query/functions/count_if.html @@ -3,7 +3,7 @@ count_if - + @@ -26,15 +26,15 @@
- + 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
@@ -42,11 +42,11 @@
     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.44. Parameters

+

Table 1.44. Parameters

@@ -60,19 +60,19 @@ - + - + @@ -81,41 +81,41 @@
seqseq A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for each element - e in seq + Sequence, f(e) is a valid expression, convertible + to bool, for each element + e in seq The sequence to search
ff A unary function object The search predicate
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/count_if.hpp>
 
- + 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/algorithms/query/functions/find.html b/doc/html/fusion/algorithms/query/functions/find.html index 8ddaaddd..41946f47 100644 --- a/doc/html/fusion/algorithms/query/functions/find.html +++ b/doc/html/fusion/algorithms/query/functions/find.html @@ -3,7 +3,7 @@ find - + @@ -26,14 +26,14 @@
- + Description

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

- + Synopsis
@@ -50,7 +50,7 @@
 unspecified find(Sequence& seq);
 
-

Table 1.41. Parameters

+

Table 1.41. Parameters

@@ -64,7 +64,7 @@ - + - + @@ -82,45 +82,45 @@
seqseq A model of Forward @@ -73,7 +73,7 @@ The sequence to search
TT Any type The type to search for
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/find.hpp>
 
- + 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/algorithms/query/functions/find_if.html b/doc/html/fusion/algorithms/query/functions/find_if.html index ff2a73e5..21fbb442 100644 --- a/doc/html/fusion/algorithms/query/functions/find_if.html +++ b/doc/html/fusion/algorithms/query/functions/find_if.html @@ -3,7 +3,7 @@ find_if - + @@ -27,14 +27,15 @@ find_if

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

- + Description
- + Synopsis
@@ -51,7 +52,7 @@
 unspecified find_if(Sequence& seq);
 
-

Table 1.42. Parameters

+

Table 1.42. Parameters

@@ -65,7 +66,7 @@ - + - + + unary MPL + Lambda Expression +
seqseq A model of Forward @@ -74,55 +75,57 @@ The sequence to search
FF A - unary MPL Lambda Expression The search predicate
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/find_if.hpp>
 
- + 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/algorithms/query/functions/none.html b/doc/html/fusion/algorithms/query/functions/none.html index 97373012..ef8532a6 100644 --- a/doc/html/fusion/algorithms/query/functions/none.html +++ b/doc/html/fusion/algorithms/query/functions/none.html @@ -3,7 +3,7 @@ none - + @@ -26,18 +26,18 @@
- + 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
@@ -45,11 +45,11 @@
     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.40. Parameters

+

Table 1.40. Parameters

@@ -63,19 +63,19 @@ - + - + @@ -84,38 +84,38 @@
seqseq A model of Forward - Sequence, f(e) is a valid expression, convertible - to bool, for every element - e in seq + Sequence, f(e) is a valid expression, convertible + to bool, for every element + e in seq The sequence to search
ff A unary function object The search predicate
- + 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

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

- + Header
 #include <boost/fusion/algorithm/query/none.hpp>
 
- + Example
@@ -128,8 +128,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/algorithms/query/metafunctions.html b/doc/html/fusion/algorithms/query/metafunctions.html index 544b0b11..7f643624 100644 --- a/doc/html/fusion/algorithms/query/metafunctions.html +++ b/doc/html/fusion/algorithms/query/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithms/query/metafunctions/all.html b/doc/html/fusion/algorithms/query/metafunctions/all.html index aeaad077..9bc0533a 100644 --- a/doc/html/fusion/algorithms/query/metafunctions/all.html +++ b/doc/html/fusion/algorithms/query/metafunctions/all.html @@ -3,7 +3,7 @@ all - + @@ -26,14 +26,14 @@
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.46. Parameters

+

Table 1.46. Parameters

@@ -61,7 +61,7 @@ - + - + @@ -82,34 +82,34 @@
SequenceSequence A model of Forward @@ -70,9 +70,9 @@ Operation's argument
FF A - model of unary Polymorphic Function Object
- + 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 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. + Function Object of type F. + The return type is always bool.

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/any.html b/doc/html/fusion/algorithms/query/metafunctions/any.html
index 8be75c89..6951335f 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/any.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/any.html
@@ -3,7 +3,7 @@
 
 any
 
-
+
 
 
 
@@ -26,14 +26,14 @@
 
 
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.45. Parameters

+

Table 1.45. Parameters

@@ -61,7 +61,7 @@ - + - + @@ -82,34 +82,34 @@
SequenceSequence A model of Forward @@ -70,9 +70,9 @@ Operation's argument
FF A - model of unary Polymorphic Function Object
- + 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 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. + Function Object of type F. + The return type is always bool.

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/count.html b/doc/html/fusion/algorithms/query/metafunctions/count.html
index 112f2ccc..f70a7a02 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/count.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/count.html
@@ -3,7 +3,7 @@
 
 count
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.50. Parameters

+

Table 1.50. Parameters

@@ -63,7 +63,7 @@ - + - + @@ -81,30 +81,30 @@
SequenceSequence A model of Forward @@ -72,7 +72,7 @@ Operation's argument
TT Any type Operation's argument
- + 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/count_if.html b/doc/html/fusion/algorithms/query/metafunctions/count_if.html
index a0b2fcb6..5b722547 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/count_if.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/count_if.html
@@ -3,7 +3,7 @@
 
 count_if
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.51. Parameters

+

Table 1.51. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,30 +80,30 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
PredPred A unary function object Operation's argument
- + 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/find.html b/doc/html/fusion/algorithms/query/metafunctions/find.html
index 51823f66..49131bdc 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/find.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/find.html
@@ -3,7 +3,7 @@
 
 find
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + Description

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

- + Synopsis
@@ -48,7 +48,7 @@
 };
 
-

Table 1.48. Parameters

+

Table 1.48. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,31 +80,31 @@
SequenceSequence Model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type Operation's argument
- + 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 if there is no such element. + 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

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

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/find_if.html b/doc/html/fusion/algorithms/query/metafunctions/find_if.html
index 1fbcfbcd..f2020c20 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/find_if.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/find_if.html
@@ -3,7 +3,7 @@
 
 find_if
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + Description

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

- + Synopsis
@@ -48,7 +48,7 @@
 };
 
-

Table 1.49. Parameters

+

Table 1.49. Parameters

@@ -62,7 +62,7 @@ - + - + + model of MPL + Lambda Expression +
SequenceSequence A model of Forward @@ -71,41 +71,43 @@ Operation's argument
PredPred A - model of MPL Lambda Expression Operation's arguments
- + 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

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

- + Header
diff --git a/doc/html/fusion/algorithms/query/metafunctions/none.html b/doc/html/fusion/algorithms/query/metafunctions/none.html
index 3b794020..d2cfecc8 100644
--- a/doc/html/fusion/algorithms/query/metafunctions/none.html
+++ b/doc/html/fusion/algorithms/query/metafunctions/none.html
@@ -3,7 +3,7 @@
 
 none
 
-
+
 
 
 
@@ -26,14 +26,14 @@
 
 
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.47. Parameters

+

Table 1.47. Parameters

@@ -61,7 +61,7 @@ - + - + @@ -82,34 +82,34 @@
SequenceSequence A model of Forward @@ -70,9 +70,9 @@ Operation's argument
FF A - model of unary Polymorphic Function Object
- + 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 - 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. + Object of type F. + The return type is always bool.

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation.html b/doc/html/fusion/algorithms/transformation.html
index da6c68f9..eb90fe6f 100644
--- a/doc/html/fusion/algorithms/transformation.html
+++ b/doc/html/fusion/algorithms/transformation.html
@@ -3,7 +3,7 @@
 
 Transformation
 
-
+
 
 
 
@@ -27,7 +27,49 @@
 Transformation
 
 

The transformation algorithms create new sequences out of existing sequences @@ -39,14 +81,14 @@ [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

diff --git a/doc/html/fusion/algorithms/transformation/functions.html b/doc/html/fusion/algorithms/transformation/functions.html
index 49375ca0..3143ea86 100644
--- a/doc/html/fusion/algorithms/transformation/functions.html
+++ b/doc/html/fusion/algorithms/transformation/functions.html
@@ -3,7 +3,7 @@
 
 Functions
 
-
+
 
 
 
diff --git a/doc/html/fusion/algorithms/transformation/functions/clear.html b/doc/html/fusion/algorithms/transformation/functions/clear.html
index 6527f7f9..369a6060 100644
--- a/doc/html/fusion/algorithms/transformation/functions/clear.html
+++ b/doc/html/fusion/algorithms/transformation/functions/clear.html
@@ -3,7 +3,7 @@
 
 clear
 
-
+
 
 
 
@@ -26,24 +26,24 @@
 
 
- + Description

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

- + 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.61. Parameters

+

Table 1.61. Parameters

@@ -56,7 +56,7 @@ - +
Description
seqseq A model of Forward @@ -67,42 +67,42 @@
- + Expression Semantics
-clear(seq);
+clear(seq);
 

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

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

- + Complexity

Constant.

- + Header
 #include <boost/fusion/algorithm/transformation/clear.hpp>
 
- + 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/algorithms/transformation/functions/erase.html b/doc/html/fusion/algorithms/transformation/functions/erase.html index bfe74a05..e083ed1a 100644 --- a/doc/html/fusion/algorithms/transformation/functions/erase.html +++ b/doc/html/fusion/algorithms/transformation/functions/erase.html @@ -3,7 +3,7 @@ erase - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ those at a specified iterator, or between two iterators.

- + Synposis
@@ -42,7 +42,7 @@
     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<
@@ -50,11 +50,11 @@
     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.62. Parameters

+

Table 1.62. Parameters

@@ -68,7 +68,7 @@ - + - + - - + -
seqseq A model of Forward @@ -77,82 +77,82 @@ Operation's argument
it1it1 A model of Forward Iterator Iterator into seq +Iterator into seq
it2it2 A model of Forward Iterator Iterator into seq - after it1 +Iterator into seq + after it1
- + Expression Semantics
-erase(seq, pos);
+erase(seq, pos);
 

- Return type: A model of 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 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/erase.hpp>
 
- + 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/algorithms/transformation/functions/erase_key.html b/doc/html/fusion/algorithms/transformation/functions/erase_key.html index 5749087b..234c96ce 100644 --- a/doc/html/fusion/algorithms/transformation/functions/erase_key.html +++ b/doc/html/fusion/algorithms/transformation/functions/erase_key.html @@ -3,7 +3,7 @@ erase_key - + @@ -26,20 +26,20 @@
- + Description

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

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

Table 1.63. Parameters

+

Table 1.63. Parameters

@@ -64,7 +64,7 @@ - + - + @@ -82,43 +82,43 @@
seqseq A model of Associative @@ -73,7 +73,7 @@ Operation's argument
KeyKey Any type Key to erase
- + Expression Semantics
-erase_key<Key>(seq);
+erase_key<Key>(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/erase_key.hpp>
 
- + 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/algorithms/transformation/functions/filter.html b/doc/html/fusion/algorithms/transformation/functions/filter.html index 36fbced3..c1d7b498 100644 --- a/doc/html/fusion/algorithms/transformation/functions/filter.html +++ b/doc/html/fusion/algorithms/transformation/functions/filter.html @@ -3,7 +3,7 @@ filter - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ the elements of a specified type.

- + Synopsis
@@ -42,10 +42,10 @@
     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.52. Parameters

+

Table 1.52. Parameters

@@ -59,7 +59,7 @@ - + - + @@ -77,45 +77,45 @@
seqseq A model of Forward @@ -68,7 +68,7 @@ Operation's argument
TT Any type The type to retain
- + Expression Semantics
-filter<T>(seq);
+filter<T>(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/filter.hpp>
 
- + 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/algorithms/transformation/functions/filter_if.html b/doc/html/fusion/algorithms/transformation/functions/filter_if.html index 3bec7204..6c1844b6 100644 --- a/doc/html/fusion/algorithms/transformation/functions/filter_if.html +++ b/doc/html/fusion/algorithms/transformation/functions/filter_if.html @@ -3,7 +3,7 @@ filter_if - + @@ -26,16 +26,16 @@
- + Description

- 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_. + 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_.

- + Synopsis
@@ -43,10 +43,10 @@
     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.53. Parameters

+

Table 1.53. Parameters

@@ -60,7 +60,7 @@ - + - + - + unary MPL + Lambda Expression + +
seqseq A model of Forward @@ -69,56 +69,57 @@ Operation's argument
PredPred A - unary MPL Lambda ExpressionThe predicate to filter - byThe predicate to filter by
- + Expression Semantics
-filter_if<Pred>(seq);
+filter_if<Pred>(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/filter_if.hpp>
 
- + 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/algorithms/transformation/functions/insert.html b/doc/html/fusion/algorithms/transformation/functions/insert.html index 05cf07ef..d03f78e5 100644 --- a/doc/html/fusion/algorithms/transformation/functions/insert.html +++ b/doc/html/fusion/algorithms/transformation/functions/insert.html @@ -3,7 +3,7 @@ insert - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ element inserted the position described by a given iterator.

- + Synposis
@@ -46,7 +46,7 @@
 unspecified insert(Sequence const& seq, Pos const& pos, T const& t);
 
-

Table 1.64. Parameters

+

Table 1.64. Parameters

@@ -60,7 +60,7 @@ - + - + - + @@ -87,46 +87,46 @@
seqseq A model of Forward @@ -69,7 +69,7 @@ Operation's argument
pospos A model of Forward @@ -78,7 +78,7 @@ The position to insert at
tt Any type The value to insert
- + Expression Semantics
-insert(seq, p, t);
+insert(seq, p, t);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/insert.hpp>
 
- + 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/algorithms/transformation/functions/insert_range.html b/doc/html/fusion/algorithms/transformation/functions/insert_range.html index 87e5f3e3..818d035b 100644 --- a/doc/html/fusion/algorithms/transformation/functions/insert_range.html +++ b/doc/html/fusion/algorithms/transformation/functions/insert_range.html @@ -3,7 +3,7 @@ insert_range - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ iterator.

- + Synposis
@@ -43,11 +43,11 @@
     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.65. Parameters

+

Table 1.65. Parameters

@@ -61,7 +61,7 @@ - + - + - +
seqseq A model of Forward @@ -70,7 +70,7 @@ Operation's argument
pospos A model of Forward @@ -79,7 +79,7 @@ The position to insert at
rangerange A model of Forward @@ -91,46 +91,46 @@
- + Expression Semantics
-insert(seq, pos, range);
+insert(seq, pos, range);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/insert_range.hpp>
 
- + 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/algorithms/transformation/functions/join.html b/doc/html/fusion/algorithms/transformation/functions/join.html index 97d8e1c6..b4aa0a12 100644 --- a/doc/html/fusion/algorithms/transformation/functions/join.html +++ b/doc/html/fusion/algorithms/transformation/functions/join.html @@ -3,7 +3,7 @@ join - + @@ -26,7 +26,7 @@
- + Description

@@ -34,17 +34,17 @@ first followed by the elements of the second.

- + 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.66. Parameters

+

Table 1.66. Parameters

@@ -58,7 +58,7 @@ - + - +
lhslhs A model of Forward @@ -67,7 +67,7 @@ Operation's argument
rhsrhs A model of Forward @@ -79,46 +79,46 @@
- + Expression Semantics
-join(lhs, rhs);
+join(lhs, rhs);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/join.hpp>
 
- + 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/algorithms/transformation/functions/pop_back.html b/doc/html/fusion/algorithms/transformation/functions/pop_back.html index 22304598..1968618e 100644 --- a/doc/html/fusion/algorithms/transformation/functions/pop_back.html +++ b/doc/html/fusion/algorithms/transformation/functions/pop_back.html @@ -3,7 +3,7 @@ pop_back - + @@ -26,24 +26,24 @@
- + Description

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

- + 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.68. Parameters

+

Table 1.68. Parameters

@@ -56,7 +56,7 @@ - +
Description
seqseq A model of Forward @@ -67,44 +67,44 @@
- + Expression Semantics
-pop_back(seq);
+pop_back(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/pop_back.hpp>
 
- + 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/algorithms/transformation/functions/pop_front.html b/doc/html/fusion/algorithms/transformation/functions/pop_front.html index 2dc8a28b..e87c0e38 100644 --- a/doc/html/fusion/algorithms/transformation/functions/pop_front.html +++ b/doc/html/fusion/algorithms/transformation/functions/pop_front.html @@ -3,7 +3,7 @@ pop_front - + @@ -26,24 +26,24 @@
- + Description

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

- + 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.69. Parameters

+

Table 1.69. Parameters

@@ -56,7 +56,7 @@ - +
Description
seqseq A model of Forward @@ -67,44 +67,44 @@
- + Expression Semantics
-pop_front(seq);
+pop_front(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/pop_front.hpp>
 
- + 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/algorithms/transformation/functions/push_back.html b/doc/html/fusion/algorithms/transformation/functions/push_back.html index d2b5ca54..3d4b08fe 100644 --- a/doc/html/fusion/algorithms/transformation/functions/push_back.html +++ b/doc/html/fusion/algorithms/transformation/functions/push_back.html @@ -3,7 +3,7 @@ push_back - + @@ -26,14 +26,14 @@
- + Description

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

- + Synopsis
@@ -41,11 +41,11 @@
     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.70. Parameters

+

Table 1.70. Parameters

@@ -59,7 +59,7 @@ - + - + @@ -77,44 +77,44 @@
seqseq A model of Forward @@ -68,7 +68,7 @@ Operation's argument
tt Any type The value to add to the end
- + Expression Semantics
-push_back(seq, t);
+push_back(seq, t);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/push_back.hpp>
 
- + 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/algorithms/transformation/functions/push_front.html b/doc/html/fusion/algorithms/transformation/functions/push_front.html index 99c409be..a85bd7d3 100644 --- a/doc/html/fusion/algorithms/transformation/functions/push_front.html +++ b/doc/html/fusion/algorithms/transformation/functions/push_front.html @@ -3,7 +3,7 @@ push_front - + @@ -26,14 +26,14 @@
- + Description

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

- + Synopsis
@@ -41,11 +41,11 @@
     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.71. Parameters

+

Table 1.71. Parameters

@@ -59,7 +59,7 @@ - + - + @@ -77,45 +77,45 @@
seqseq A model of Forward @@ -68,7 +68,7 @@ Operation's argument
tt Any type The value to add to the beginning
- + Expression Semantics
-push_back(seq, t);
+push_back(seq, t);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/push_front.hpp>
 
- + 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/algorithms/transformation/functions/remove.html b/doc/html/fusion/algorithms/transformation/functions/remove.html index 0aa86bb0..c6db3fd3 100644 --- a/doc/html/fusion/algorithms/transformation/functions/remove.html +++ b/doc/html/fusion/algorithms/transformation/functions/remove.html @@ -3,7 +3,7 @@ remove - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ except those of a given type.

- + Synopsis
@@ -42,10 +42,10 @@
     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.58. Parameters

+

Table 1.58. Parameters

@@ -59,7 +59,7 @@ - + - + @@ -77,45 +77,45 @@
seqseq A model of Forward @@ -68,7 +68,7 @@ Operation's argument
TT Any type Type to remove
- + Expression Semantics
-remove<T>(seq);
+remove<T>(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/remove.hpp>
 
- + 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/algorithms/transformation/functions/remove_if.html b/doc/html/fusion/algorithms/transformation/functions/remove_if.html index fedfd384..5b215f20 100644 --- a/doc/html/fusion/algorithms/transformation/functions/remove_if.html +++ b/doc/html/fusion/algorithms/transformation/functions/remove_if.html @@ -3,7 +3,7 @@ remove_if - + @@ -26,15 +26,15 @@
- + 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
@@ -42,10 +42,10 @@
     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.59. Parameters

+

Table 1.59. Parameters

@@ -59,7 +59,7 @@ - + - + + model of unary MPL + Lambda Expression +
seqseq A model of Forward @@ -68,55 +68,57 @@ Operation's argument
PredPred A - model of unary MPL Lambda Expression Removal predicate
- + Expression Semantics
-remove_if<Pred>(seq);
+remove_if<Pred>(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/remove_if.hpp>
 
- + 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/algorithms/transformation/functions/replace.html b/doc/html/fusion/algorithms/transformation/functions/replace.html index edae3b05..d9c93a0d 100644 --- a/doc/html/fusion/algorithms/transformation/functions/replace.html +++ b/doc/html/fusion/algorithms/transformation/functions/replace.html @@ -3,7 +3,7 @@ replace - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ a new value.

- + Synopsis
@@ -42,11 +42,11 @@
     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.56. Parameters

+

Table 1.56. Parameters

@@ -60,27 +60,27 @@ - + - + - + @@ -89,44 +89,44 @@
seqseq 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 + Sequence, e == old_value + is a valid expression, convertible to bool, + for each element e + in seq with type + convertible to T Operation's argument
old_valueold_value Any type Value to replace
new_valuenew_value Any type Replacement value
- + Expression Semantics
-replace(seq, old_value, new_value);
+replace(seq, old_value, new_value);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/replace.hpp>
 
- + 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/algorithms/transformation/functions/replace_if.html b/doc/html/fusion/algorithms/transformation/functions/replace_if.html index 84209980..2ecf8ca4 100644 --- a/doc/html/fusion/algorithms/transformation/functions/replace_if.html +++ b/doc/html/fusion/algorithms/transformation/functions/replace_if.html @@ -3,7 +3,7 @@ replace_if - + @@ -26,16 +26,16 @@
- + 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
@@ -43,11 +43,11 @@
     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.57. Parameters

+

Table 1.57. Parameters

@@ -61,7 +61,7 @@ - + - + - + @@ -88,41 +88,41 @@
seqseq A model of Forward @@ -70,16 +70,16 @@ Operation's argument
ff A - function object for which f(e) is a valid expression, convertible - to bool, for each element - e in seq + function object for which f(e) is a valid expression, convertible + to bool, for each element + e in seq Operation's argument
new_valuenew_value Any type Replacement value
- + Expression Semantics
-replace_if(seq, f, new_value);
+replace_if(seq, f, new_value);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/replace_if.hpp>
 
- + Example
@@ -135,7 +135,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/algorithms/transformation/functions/reverse.html b/doc/html/fusion/algorithms/transformation/functions/reverse.html index be62892a..83023aae 100644 --- a/doc/html/fusion/algorithms/transformation/functions/reverse.html +++ b/doc/html/fusion/algorithms/transformation/functions/reverse.html @@ -3,7 +3,7 @@ reverse - + @@ -26,24 +26,24 @@
- + Description

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

- + 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.60. Parameters

+

Table 1.60. Parameters

@@ -56,7 +56,7 @@ - +
Description
seqseq A model of Bidirectional @@ -67,43 +67,43 @@
- + Expression Semantics
-reverse(seq);
+reverse(seq);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/reverse.hpp>
 
- + 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/algorithms/transformation/functions/transform.html b/doc/html/fusion/algorithms/transformation/functions/transform.html index 009890d6..f98f369b 100644 --- a/doc/html/fusion/algorithms/transformation/functions/transform.html +++ b/doc/html/fusion/algorithms/transformation/functions/transform.html @@ -3,7 +3,7 @@ transform - + @@ -26,19 +26,19 @@
- + Description

- For a sequence seq and - seq and + Polymorphic Function - Object F, transform returns a new sequence with - elements created by applying F - to each element of seq. + Object F, transform returns a new sequence with + elements created by applying F + to each element of seq.

- + Unary version synopsis
@@ -47,11 +47,11 @@ typenameSequence,typenameF> -typenameresult_of::transform<Sequenceconst,F>::typetransform( +typenameresult_of::transform<Sequenceconst,F>::typetransform(Sequenceconst&seq,Ff);
-

Table 1.54. Parameters

+

Table 1.54. Parameters

@@ -65,7 +65,7 @@ - + - + @@ -88,25 +88,25 @@
seqseq A model of Forward @@ -74,12 +74,12 @@ Operation's argument
ff A - model of unary Polymorphic - Function Object where f(e) is a valid expression for each element - e of seq + Function Object where f(e) is a valid expression for each element + e of seq Transformation function
- + Expression Semantics
-transform(seq, f);
+transform(seq, f);
 

- Return type: A model of 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 version synopsis
@@ -116,11 +116,11 @@ 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.55. Parameters

+

Table 1.55. Parameters

@@ -134,7 +134,7 @@ - + - + - + @@ -166,31 +166,31 @@
seq1seq1 A model of Forward @@ -143,7 +143,7 @@ Operation's argument
seq2seq2 A model of Forward @@ -152,13 +152,13 @@ Operation's argument
ff A - model of binary Polymorphic - Function Object where f(e1, e2) is a valid expression for each pair - of elements e1 and - e2 of seq1 and seq2 + Function Object where f(e1, e2) is a valid expression for each pair + of elements e1 and + e2 of seq1 and seq2 respectively Transformation function

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 
- + Example
@@ -209,7 +209,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/algorithms/transformation/functions/zip.html b/doc/html/fusion/algorithms/transformation/functions/zip.html index 0afe3fe8..1a46ccb2 100644 --- a/doc/html/fusion/algorithms/transformation/functions/zip.html +++ b/doc/html/fusion/algorithms/transformation/functions/zip.html @@ -3,7 +3,7 @@ zip - + @@ -26,7 +26,7 @@
- + Description

@@ -34,7 +34,7 @@ of the members of the component sequences.

- + Synopsis
@@ -44,11 +44,11 @@
     ...
     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.67. Parameters

+

Table 1.67. Parameters

@@ -62,7 +62,7 @@
-seq1 to seqN +seq1 to seqN Each sequence is a model of
- + Expression Semantics
-zip(seq1, seq2, ... seqN);
+zip(seq1, seq2, ... seqN);
 

- Return type: A model of 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

Constant. Returns a view which is lazily evaluated.

- + Header
 #include <boost/fusion/algorithm/transformation/zip.hpp>
 
- + 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/algorithms/transformation/metafunctions.html b/doc/html/fusion/algorithms/transformation/metafunctions.html index d9dbdf55..adc5b67d 100644 --- a/doc/html/fusion/algorithms/transformation/metafunctions.html +++ b/doc/html/fusion/algorithms/transformation/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/clear.html b/doc/html/fusion/algorithms/transformation/metafunctions/clear.html index e6f50c6f..3f89f8f8 100644 --- a/doc/html/fusion/algorithms/transformation/metafunctions/clear.html +++ b/doc/html/fusion/algorithms/transformation/metafunctions/clear.html @@ -3,7 +3,7 @@ clear - + @@ -26,15 +26,15 @@
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.80. Parameters

+

Table 1.80. Parameters

@@ -60,7 +60,7 @@ - + @@ -68,30 +68,30 @@
Description
SequenceSequence Any type Operation's argument
- + Expression Semantics
-result_of::clear<Sequence>::type
+result_of::clear<Sequence>::type
 

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

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

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/erase.html b/doc/html/fusion/algorithms/transformation/metafunctions/erase.html
index 635dd8c4..1e498c8c 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/erase.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/erase.html
@@ -3,7 +3,7 @@
 
 erase
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 

- 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
- + Synopsis
@@ -48,7 +48,7 @@
 };
 
-

Table 1.81. Parameters

+

Table 1.81. Parameters

@@ -62,7 +62,7 @@ - + - + - +
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
It1It1 A model of Forward @@ -80,7 +80,7 @@ Operation's argument
It2It2 A model of Forward @@ -92,44 +92,44 @@
- + Expression Semantics
-result_of::erase<Sequence, It1>::type
+result_of::erase<Sequence, It1>::type
 

- Return type: A model of 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 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html b/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html
index 8783615f..2b02d7bf 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html
@@ -3,7 +3,7 @@
 
 erase_key
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.82. Parameters

+

Table 1.82. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,32 +80,32 @@
SequenceSequence A model of Associative @@ -71,7 +71,7 @@ Operation's argument
KeyKey Any type Key type
- + Expression Semantics
-result_of::erase_key<Sequence, Key>::type
+result_of::erase_key<Sequence, Key>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/filter.html b/doc/html/fusion/algorithms/transformation/metafunctions/filter.html
index 9aef964b..2b4b2df4 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/filter.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/filter.html
@@ -3,7 +3,7 @@
 
 filter
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.72. Parameter

+

Table 1.72. Parameter

@@ -62,7 +62,7 @@ - + - + @@ -80,34 +80,34 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type Type to retain
- + Expression Semantics
-result_of::filter<Sequence, T>::type
+result_of::filter<Sequence, T>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html
index 1dc865d8..45bb3be3 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html
@@ -3,7 +3,7 @@
 
 filter_if
 
-
+
 
 
 
@@ -26,15 +26,16 @@
 
 
- + Description

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

- + Synopsis
@@ -48,7 +49,7 @@
 };
 
-

Table 1.73. Parameter

+

Table 1.73. Parameter

@@ -62,7 +63,7 @@ - + - + + unary MPL + Lambda Expression +
SequenceSequence A model of Forward @@ -71,42 +72,44 @@ Operation's argument
PredPred A - unary MPL Lambda Expression Type to retain
- + Expression Semantics
-result_of::filter_if<Sequence, Pred>::type
+result_of::filter_if<Sequence, Pred>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/insert.html b/doc/html/fusion/algorithms/transformation/metafunctions/insert.html
index 0295bdcb..2d57d8b4 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/insert.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/insert.html
@@ -3,7 +3,7 @@
 
 insert
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -49,7 +49,7 @@
 };
 
-

Table 1.83. Parameters

+

Table 1.83. Parameters

@@ -63,7 +63,7 @@ - + - + - + @@ -90,33 +90,33 @@
SequenceSequence A model of Forward @@ -72,7 +72,7 @@ Operation's argument
PositionPosition A model of Forward @@ -81,7 +81,7 @@ Operation's argument
TT Any type Operation's argument
- + Expression Semantics
-result_of::insert<Sequence, Position, T>::type
+result_of::insert<Sequence, Position, T>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html b/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html
index 5238abb0..3f3ca8c7 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html
@@ -3,7 +3,7 @@
 
 insert_range
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -49,7 +49,7 @@
 };
 
-

Table 1.84. Parameters

+

Table 1.84. Parameters

@@ -63,7 +63,7 @@ - + - + - +
SequenceSequence A model of Forward @@ -72,7 +72,7 @@ Operation's argument
PositionPosition A model of Forward @@ -81,7 +81,7 @@ Operation's argument
RangeRange A model of Forward @@ -93,33 +93,33 @@
- + Expression Semantics
-result_of::insert_range<Sequence, Position, Range>::type
+result_of::insert_range<Sequence, Position, Range>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/join.html b/doc/html/fusion/algorithms/transformation/metafunctions/join.html
index 8ff354de..a03f6d07 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/join.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/join.html
@@ -3,7 +3,7 @@
 
 join
 
-
+
 
 
 
@@ -26,14 +26,14 @@
 
 
- + Description

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

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

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html b/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html
index ba9e6cb7..37e39e0d 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html
@@ -3,7 +3,7 @@
 
 pop_back
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -47,7 +47,7 @@
 };
 
-

Table 1.85. Parameters

+

Table 1.85. Parameters

@@ -60,7 +60,7 @@ - +
Description
SequenceSequence A model of Forward @@ -71,32 +71,32 @@
- + Expression Semantics
-result_of::pop_back<Sequence>::type
+result_of::pop_back<Sequence>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html b/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html
index 2f91bf00..b1285bd9 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html
@@ -3,7 +3,7 @@
 
 pop_front
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -47,7 +47,7 @@
 };
 
-

Table 1.86. Parameters

+

Table 1.86. Parameters

@@ -60,7 +60,7 @@ - +
Description
SequenceSequence A model of Forward @@ -71,32 +71,32 @@
- + Expression Semantics
-result_of::pop_front<Sequence>::type
+result_of::pop_front<Sequence>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html b/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html
index 62c966da..2fedcafd 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html
@@ -3,7 +3,7 @@
 
 push_back
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.87. Parameters

+

Table 1.87. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,33 +80,33 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type Operation's argument
- + Expression Semantics
-result_of::push_back<Sequence, T>::type
+result_of::push_back<Sequence, T>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html b/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html
index 3d5806ee..562e7479 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html
@@ -3,7 +3,7 @@
 
 push_front
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.88. Parameters

+

Table 1.88. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,33 +80,33 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type Operation's argument
- + Expression Semantics
-result_of::push_front<Sequence, T>::type
+result_of::push_front<Sequence, T>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/remove.html b/doc/html/fusion/algorithms/transformation/metafunctions/remove.html
index e8c40d72..809ea73f 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/remove.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/remove.html
@@ -3,7 +3,7 @@
 
 remove
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + Description

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

- + Synopsis
@@ -48,7 +48,7 @@
 };
 
-

Table 1.77. Parameters

+

Table 1.77. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,34 +80,34 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type Remove elements of this type
- + Expression Semantics
-result_of::remove<Sequence, T>::type
+result_of::remove<Sequence, T>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html
index c7bf5cf6..aa1aeb7b 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html
@@ -3,7 +3,7 @@
 
 remove_if
 
-
+
 
 
 
@@ -26,15 +26,16 @@
 
 
- + Description

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

- + Synopsis
@@ -48,7 +49,7 @@
 };
 
-

Table 1.78. Parameters

+

Table 1.78. Parameters

@@ -62,7 +63,7 @@ - + - + - +
SequenceSequence A model of Forward @@ -71,44 +72,46 @@ Operation's argument
PredPred A - model of unary MPL Lambda ExpressionRemove elements - which evaluate to boost::mpl::true_ + model of unary MPL + Lambda Expression +Remove elements which evaluate + to boost::mpl::true_
- + Expression Semantics
-result_of::remove_if<Sequence, Pred>::type
+result_of::remove_if<Sequence, Pred>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/replace.html b/doc/html/fusion/algorithms/transformation/metafunctions/replace.html
index 75193f00..f74b9ff9 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/replace.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/replace.html
@@ -3,7 +3,7 @@
 
 replace
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + 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
@@ -48,7 +48,7 @@
 };
 
-

Table 1.75. Parameters

+

Table 1.75. Parameters

@@ -62,7 +62,7 @@ - + - + @@ -80,31 +80,31 @@
SequenceSequence A model of Forward @@ -71,7 +71,7 @@ Operation's argument
TT Any type The type of the search and replacement objects
- + Expression Semantics
-result_of::replace<Sequence,T>::type
+result_of::replace<Sequence,T>::type
 

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

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

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html
index 8ee42bc8..e160bd4f 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html
@@ -3,7 +3,7 @@
 
 replace_if
 
-
+
 
 
 
@@ -26,17 +26,17 @@
 
 
- + Description

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

- + Synopsis
@@ -50,7 +50,7 @@
 };
 
-

Table 1.76. Parameters

+

Table 1.76. Parameters

@@ -64,7 +64,7 @@ - + - + - + @@ -91,31 +91,31 @@
SequenceSequence A model of Forward @@ -73,16 +73,16 @@ Operation's argument
FF A - model of unary Polymorphic Function Object Replacement predicate
TT Any type The type of the replacement object
- + Expression Semantics
-result_of::replace_if<Sequence,F,T>::type
+result_of::replace_if<Sequence,F,T>::type
 

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

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

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html b/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html
index e8be4300..6861a736 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html
@@ -3,7 +3,7 @@
 
 reverse
 
-
+
 
 
 
@@ -26,15 +26,15 @@
 
 
- + Description

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

- + Synopsis
@@ -47,7 +47,7 @@
 };
 
-

Table 1.79. Parameters

+

Table 1.79. Parameters

@@ -60,7 +60,7 @@ - +
Description
SequenceSequence A model of Bidirectional @@ -71,31 +71,31 @@
- + Expression Semantics
-result_of::reverse<Sequence>::type
+result_of::reverse<Sequence>::type
 

- Return type: A model of 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

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/transform.html b/doc/html/fusion/algorithms/transformation/metafunctions/transform.html
index 629edba8..cb5ce13e 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/transform.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/transform.html
@@ -3,7 +3,7 @@
 
 transform
 
-
+
 
 
 
@@ -26,17 +26,17 @@
 
 
- + Description

- Returns the result of type transform, given the sequence - and transform, given the sequence + and Polymorphic Function Object types.

- + Synopsis
@@ -50,7 +50,7 @@
 };
 
-

Table 1.74. Parameters

+

Table 1.74. Parameters

@@ -64,7 +64,7 @@ - + - + @@ -84,31 +84,31 @@
SequenceSequence A model of Forward @@ -72,9 +72,9 @@ Operation's argument
FF A - model of unary Polymorphic Function Object
- + Expression Semantics
-result_of::transform<Sequence, F>::type
+result_of::transform<Sequence, F>::type
 

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

- Semantics: Returns a sequence with values - F::result<E>::type for each element type E in Sequence. + Semantics: Returns a sequence with values + F::result<E>::type for each element type E in Sequence.

- + Complexity

Constant.

- + Header
diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/zip.html b/doc/html/fusion/algorithms/transformation/metafunctions/zip.html
index 9bc86f32..3a3124b4 100644
--- a/doc/html/fusion/algorithms/transformation/metafunctions/zip.html
+++ b/doc/html/fusion/algorithms/transformation/metafunctions/zip.html
@@ -3,7 +3,7 @@
 
 zip
 
-
+
 
 
 
@@ -26,7 +26,7 @@
 
 
- + Description

@@ -34,7 +34,7 @@ of the members of the component sequences.

- + Synopsis
@@ -50,37 +50,37 @@
 };
 
- + 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

Constant.

- + Header
diff --git a/doc/html/fusion/change_log.html b/doc/html/fusion/change_log.html
index 8da6cb1f..d3079150 100644
--- a/doc/html/fusion/change_log.html
+++ b/doc/html/fusion/change_log.html
@@ -3,7 +3,7 @@
 
 Change log
 
-
+
 
 
 
@@ -30,11 +30,11 @@
     

  • - Sep 27, 2006: Added boost::tuple + Sep 27, 2006: Added boost::tuple support.
  • - Nov 17, 2006: Added boost::variant + Nov 17, 2006: Added boost::variant support.
diff --git a/doc/html/fusion/extension.html b/doc/html/fusion/extension.html index ddcc9407..5e5861f8 100644 --- a/doc/html/fusion/extension.html +++ b/doc/html/fusion/extension.html @@ -3,11 +3,11 @@ Extension - + - + @@ -20,15 +20,15 @@

-PrevUpHomeNext +PrevUpHomeNext

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 + be added. In fact, the library support for std::pair, + boost::array and MPL sequences is entirely provided using the extension mechanism.

@@ -48,7 +48,7 @@

- + Our example

@@ -73,14 +73,14 @@

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 + to enable example_struct to serve as an Associative Sequence as described in the Quick Start guide.

- + Enabling Tag Dispatching

@@ -95,9 +95,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 + sequence. This is done by specializing traits::tag_of for our sequence type.

@@ -112,8 +112,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:

@@ -121,7 +121,7 @@ #include <boost/fusion/sequence/adapted/mpl/tag_of.hpp>

- + Designing a suitable iterator

@@ -131,9 +131,9 @@ 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>
@@ -160,37 +160,37 @@
         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 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 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.

    @@ -215,29 +215,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 + 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. + 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<>
    @@ -275,17 +276,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>
         {};
    @@ -293,24 +294,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 - Metafunction Class. + 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.

    @@ -318,23 +319,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 the remaining iterator functionality

    - Ok, now we have seen the way value_of and deref work, everything else will work + 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<>
    @@ -356,40 +357,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 + 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. + Iterator will also need an implementation of prior_impl. For a Random - Access Iterator distance_impl - and advance_impl also need + 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 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 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:

    @@ -401,14 +402,14 @@
     };
     

    - We've some similar formalities to complete, providing category_of_impl - so Fusion can correctly identify our sequence type, and is_view_impl + 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 an + get begin working so that we can get an iterator to start accessing the data in our sequence.

    @@ -431,32 +432,32 @@
     

    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. + Access Sequence we will also need to implement size_impl, + value_at_impl and at_impl.

    - + 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:

    @@ -499,15 +500,15 @@
     

    Its all very similar to the implementations we've seen previously, such as - 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 + 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 straightforward, and are provided in the example code, along with an implementation - of is_associative_impl. + of is_associative_impl.

    - + Summary

    @@ -517,8 +518,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.

    @@ -528,7 +529,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/adapters.html b/doc/html/fusion/functional/adapters.html new file mode 100644 index 00000000..9a1cd030 --- /dev/null +++ b/doc/html/fusion/functional/adapters.html @@ -0,0 +1,50 @@ + + + + Adapters + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + + +

    + Function object templates to transform a particular target function. +

    +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html new file mode 100644 index 00000000..3da74549 --- /dev/null +++ b/doc/html/fusion/functional/adapters/fused.html @@ -0,0 +1,203 @@ + + + +fused + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 nested result metafunction + does not define a type + member for target functions of non-class type whose arity is not satisfied + by the size of the 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 + for an 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 + 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). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/fused.hpp>
    +
    +
    + + Synopsis +
    +
    +template <typename Function>
    +class fused;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    FunctionA + Deferred + Callable Object + 
    +
    + + Model of +
    + +
    +

    Notation

    +
    +
    R
    +
    + A possibly const qualified Deferred + Callable Object type or reference type thereof +
    +
    r
    +
    + An object convertible to R +
    +
    s
    +
    + A Sequence of arguments that + are accepted by r +
    +
    f
    +
    + An instance of fused<R> +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    fused<R>(r)Creates + a fused function as described above, initializes the target function + with r.
    fused<R>()Creates + a fused function as described above, attempts to use R's default constructor.
    f(s)Calls + r with the elements + in s as its arguments.
    +
    + + Example +
    +
    +fused< std::plus<long> > f;
    +assert(f(make_vector(1,2l)) == 3l);
    +
    +
    + + See also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/fused_function_object.html b/doc/html/fusion/functional/adapters/fused_function_object.html new file mode 100644 index 00000000..695bfc7b --- /dev/null +++ b/doc/html/fusion/functional/adapters/fused_function_object.html @@ -0,0 +1,221 @@ + + + +fused_function_object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 nested result metafunction + is inhertied from 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 + for an target function object that is const or, if the target function + object is held by value, the adapter is const). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/fused_function_object.hpp>
    +
    +
    + + Synopsis +
    +
    +template <class Function>
    +class fused_function_object;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    Function +Polymorphic Function Object + type 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    R
    +
    + A possibly const qualified Polymorphic + Function Object type or reference type thereof +
    +
    r
    +
    + An object convertible to R +
    +
    s
    +
    + A Sequence of arguments that + are accepted by r +
    +
    f
    +
    + An instance of fused<R> +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    fused_function_object<R>(r)Creates a fused function + as described above, initializes the target function with r.
    fused_function_object<R>()Creates a fused + function as described above, attempts to use R's + default constructor.
    f(s)Calls + r with the elements + in s as its arguments.
    +
    + + Example +
    +
    +template<class SeqOfSeqs, class Func>
    +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), 
    +        fused_function_object<Func const &>(f));
    +} 
    +
    +struct sub
    +{
    +    template<typename T, typename _>
    +    struct result
    +    {
    +        typedef T type;
    +    };
    +
    +    template<typename T>
    +    T operator()(T lhs, T rhs) const
    +    {
    +        return lhs - rhs;
    +    }
    +};
    +
    +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()));
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html new file mode 100644 index 00000000..409fdb56 --- /dev/null +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -0,0 +1,219 @@ + + + +fused_procedure + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 nested result metafunction + does not define a type + member for target functions of non-class type whose arity is not satisfied + by the size of the 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 + for an 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 + 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). +

    +

    + The target function must not be a pointer to a member object (dereferencing + such a pointer without returning anything does not make sense, so it isn't + implemented). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/fused_procedure.hpp>
    +
    +
    + + Synopsis +
    +
    +template <typename Function>
    +class fused_procedure;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    Function +Callable Object + type 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    R
    +
    + A possibly const qualified Callable + Object type or reference type thereof +
    +
    r
    +
    + An object convertible to R +
    +
    s
    +
    + A Sequence of arguments that + are accepted by r +
    +
    f
    +
    + An instance of fused<R> +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    fused_procedure<R>(r)Creates a fused function + as described above, initializes the target function with r.
    fused_procedure<R>()Creates a fused + function as described above, attempts to use R's + default constructor.
    f(s)Calls + r with the elements + in s as its arguments.
    +
    + + Example +
    +
    +template<class SequenceOfSequences, class Func>
    +void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
    +{
    +    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);
    +    using namespace boost::lambda;
    +    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    +    assert(a == make_vector(1,0.5f));
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/unfused_generic.html b/doc/html/fusion/functional/adapters/unfused_generic.html new file mode 100644 index 00000000..ac13cfa1 --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused_generic.html @@ -0,0 +1,270 @@ + + + +unfused_generic + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 + 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. +

    +
    + + + + + +
    [Tip]Tip

    + Detecting mutable LValues on a per-argument basis is currently a compile + time expensive operation (see The + Forwarding Problem for details). Therefore, there are two, lightweight + and more restricted variants of this class template, unfused_lvalue_args and unfused_rvalue_args. +

    +

    + The overload set of the adapter's function call operator can be restricted + by removing the type member + from the nested result metafunction of the Polymorphic + Function Object (in this case the substitution-failure-is-not-an-error + principle applies for non-nullary case and nullary calls are explicitly + disabled by the library). +

    +
    + + + + + +
    [Caution]Caution

    + As the nullary call operator cannot be a template it will be instantiated + along with the class template, so it must be disabled (as described above) + in cases where it isn't instantiable. +

    +

    + 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 + if the target function object is const - or, in case the target function + object is held by value, the adapter is const). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/unfused_generic.hpp>
    +
    +
    + + Synopsis +
    +
    +template <class Function>
    +class unfused_generic;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    FunctionAn + unary Polymorphic + Function Object + 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A possibly const qualified, unary Polymorphic + Function Object type or reference type thereof +
    +
    f
    +
    + An object convertible to F +
    +
    UG
    +
    + The type unfused_generic<F> +
    +
    ug
    +
    + An instance of UG, initialized + with f +
    +
    a0...aN
    +
    + Arguments to ug +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    UG(f)Creates + a fused function as described above, initializes the target function + with f.
    UG()Creates + a fused function as described above, attempts to use F's default constructor.
    +ug(a0...aN) +Calls f with a Sequence + that contains references to the arguments a0...aN.
    +
    + + Example +
    +
    +template <typename Function, typename T>
    +class fused_bound_1st
    +{
    +    typename traits::deduce<Function>::type fnc_deferred;
    +    typename traits::deduce<T>::type        xxx_bound;
    +public:
    +
    +    fused_bound_1st(Function deferred, T bound)
    +        : fnc_deferred(deferred), xxx_bound(bound)
    +    { }
    +
    +    template <class Seq>
    +    struct result
    +        : result_of::invoke< Function,
    +            typename result_of::push_front<Seq, T>::type >
    +    { };
    +
    +    template <class Seq>
    +    typename result<Seq>::type operator()(Seq const & s) const
    +    {
    +        return invoke(fnc_deferred, push_front(s,xxx_bound));
    +    }
    +};
    +
    +template <typename Function, typename T>
    +unfused_generic< fused_bound_1st<Function,T> > 
    +bind_1st(Function f, T const & x)
    +{
    +    return unfused_generic< fused_bound_1st<Function,T> >(
    +        fused_bound_1st<Function,T>(f,x) ); 
    +}
    +
    +int test_func(int a, int b, int c)
    +{
    +    return a+b+c;
    +}
    +
    +void try_it()
    +{
    +    assert(bind_1st(& test_func,3)(-2,-1) == 0);
    +    assert(bind_1st(std::plus<float>(), 1)(0.5f) == 1.5f);
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html new file mode 100644 index 00000000..ccdf4f9c --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html @@ -0,0 +1,235 @@ + + + +unfused_lvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 + Access Sequence of references that is passed to the target function + object. Only LValue arguments are accepted. +

    +

    + The overload set of the adapter's function call operator can be restricted + by removing the type member + from the nested result metafunction of the Polymorphic + Function Object (in this case the substitution-failure-is-not-an-error + principle applies for non-nullary calls and nullary calls are explicitly + disabled by the library). +

    +
    + + + + + +
    [Caution]Caution

    + As the nullary call operator cannot be a template it will be instantiated + along with the class template, so it must be disabled (as described above) + in cases where it isn't instantiable. +

    +

    + 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 + if the target function object is const - or, in case the target function + object is held by value, the adapter is const). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/unfused_lvalue_args.hpp>
    +
    +
    + + Synopsis +
    +
    +template <class Function>
    +class unfused_lvalue_args;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    FunctionA + unary Polymorphic + Function Object + 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A possibly const qualified, unary Polymorphic + Function Object type or reference type thereof +
    +
    f
    +
    + An object convertible to F +
    +
    UL
    +
    + The type unfused_lvalue_args<F> +
    +
    ul
    +
    + An instance of UL, initialized + with f +
    +
    a0...aN
    +
    + Arguments to ul +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    UL(f)Creates + a fused function as described above, initializes the target function + with f.
    UL()Creates + a fused function as described above, attempts to use F's default constructor.
    +ul(a0...aN) +Calls f with a Sequence + that contains references to the arguments a0...aN.
    +
    + + Example +
    +
    +struct fused_incrementer
    +{
    +    template <class Seq> 
    +    struct result 
    +    { 
    +        typedef void type;
    +    };
    +
    +    template <class Seq>
    +    void operator()(Seq const & s) const
    +    {
    +        for_each(s,++boost::lambda::_1);
    +    }
    +};
    +
    +void try_it()
    +{
    +    unfused_lvalue_args<fused_incrementer> increment;
    +    int a = 2; char b = 'X';
    +    increment(a,b);
    +    assert(a == 3 && b == 'Y');
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/unfused_rvalue_args.html b/doc/html/fusion/functional/adapters/unfused_rvalue_args.html new file mode 100644 index 00000000..3033d70b --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused_rvalue_args.html @@ -0,0 +1,235 @@ + + + +unfused_rvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 + Access Sequence of references that is passed to the target function + object. All referenced objects in the sequence are const qualified. +

    +

    + The overload set of the adapter's function call operator can be restricted + by removing the type member + from the nested result metafunction of the Polymorphic + Function Object (in this case the substitution-failure-is-not-an-error + principle applies for non-nullary calls and nullary calls are explicitly + disabled by the library). +

    +
    + + + + + +
    [Caution]Caution

    + As the nullary call operator cannot be a template it will be instantiated + along with the class template, so it must be disabled (as described above) + in cases where it isn't instantiable. +

    +

    + 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 + if the target function object is const - or, in case the target function + object is held by value, the adapter is const). +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/unfused_rvalue_args.hpp>
    +
    +
    + + Synopsis +
    +
    +template <class Function>
    +class unfused_rvalue_args;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterDescriptionDefault
    FunctionA + unary Polymorphic + Function Object + 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A possibly const qualified, unary Polymorphic + Function Object type or reference type thereof +
    +
    f
    +
    + An object convertible to F +
    +
    UR
    +
    + The type unfused_rvalue_args<F> +
    +
    ur
    +
    + An instance of UR, initialized + with f +
    +
    a0...aN
    +
    + Arguments to ur +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    UR(f)Creates + a fused function as described above, initializes the target function + with f.
    UR()Creates + a fused function as described above, attempts to use F's default constructor.
    +ur(a0...aN) +Calls f with a Sequence + that contains references to the arguments a0...aN.
    +
    + + Example +
    +
    +struct sequence_printer
    +{
    +    template <class Seq> 
    +    struct result 
    +    { 
    +        typedef void type;
    +    };
    +
    +    template <class Seq>
    +    void operator()(Seq const & s) const
    +    {
    +        std::cout << s << std::endl;
    +    }
    +};
    +
    +void try_it()
    +{
    +    unfused_rvalue_args<sequence_printer> print;
    +    print(24,"bottles of beer in",'a',"box.");
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html new file mode 100644 index 00000000..77ae9db0 --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused_typed.html @@ -0,0 +1,309 @@ + + + +unfused_typed + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + 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 + Access Sequence that is passed to the target function object. +

    +

    + The call operators of the resulting function object are strictly typed + (in other words, non-templatized) with the types from a Sequence. + By default, call operators with zero to N parameters are generated to, + where N is the size of the Sequence + that specifies the types. +

    +

    + The overload set of the adapter's function call operator can be restricted + by removing the type member + from the nested result metafunction of the Polymorphic + Function Object (in this case the substitution-failure-is-not-an-error + principle applies for non-nullary calls and nullary calls are explicitly + disabled by the library). +

    +
    + + + + + +
    [Caution]Caution

    + As the function call operators are not templates, they are instantiated + along with the class template, so they must be disabled (as described + above) in cases where they are not instantiable. +

    +

    + 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 + if the target function object is const - or, in case the target function + object is held by value, the adapter is const). +

    +
    + + + + + +
    [Tip]Tip

    + If the type sequence passed to this template contains non-reference elements, + the element is copied only once - the call operator's signature is optimized + automatically to avoid by-value parameters. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/adapter/unfused_typed.hpp>
    +
    +
    + + Synopsis +
    +
    +template <class Function, class Sequence>
    +class unfused_typed;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + + + + + + + + +
    ParameterDescriptionDefault
    FunctionA + unary Polymorphic + Function Object + 
    SequenceA + Sequence + 
    +
    + + Model + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A possibly const qualified, unary Polymorphic + Function Object type or reference type thereof +
    +
    f
    +
    + An object convertible to F +
    +
    S
    +
    + A Sequence of parameter types +
    +
    UT
    +
    + The type unfused_typed<F,S> +
    +
    ut
    +
    + An instance of UT, initialized + with f +
    +
    a0...aN
    +
    + Arguments to ut, convertible + to the types in S +
    +
    +
    +
    + + Expression + Semantics +
    +
    ++++ + + + + + + + + + + + + + + + + + + +
    ExpressionSemantics
    UT(f)Creates + a fused function as described above, initializes the target function + with f.
    UT()Creates + a fused function as described above, attempts to use F's default constructor.
    +ut(a0...aN) +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.
    +
    + + Example +
    +
    +struct add_assign // applies operator+=
    +{
    +    typedef void result_type; // for simplicity
    +
    +    template <typename T>
    +    void operator()(T & lhs, T const & rhs) const
    +    {
    +        lhs += rhs;
    +    }
    +};
    +
    +template <class Tie>
    +class fused_parallel_adder
    +{
    +    Tie tie_dest;
    +public:
    +    explicit fused_parallel_adder(Tie const & dest)
    +        : tie_dest(dest)
    +    { }
    +
    +    template <class Seq>
    +    struct result
    +    {
    +        typedef void type;
    +    };
    +
    +    template <class Seq>
    +    void operator()(Seq const & s) const
    +    {
    +        for_each(zip(tie_dest,s), fused<add_assign>() );
    +    }
    +};
    +
    +// accepts a tie and creates a typed function object from it
    +struct fused_parallel_adder_maker
    +{
    +    template <class Seq>
    +    struct result
    +    {
    +        typedef unfused_typed<fused_parallel_adder<Seq>, 
    +            typename mpl::transform<Seq, remove_reference<_> >::type > type;
    +    };
    +
    +    template <class Seq>
    +    typename result<Seq>::type operator()(Seq const & tie)
    +    {
    +        return typename result<Seq>::type(fused_parallel_adder<Seq>(tie));
    +    }
    +};
    +unfused_lvalue_args<fused_parallel_adder_maker> parallel_add;
    +
    +int main()
    +{
    +    int a = 2; char b = 'X';
    +    // the second call is strictly typed with the types deduced from the
    +    // first call 
    +    parallel_add(a,b)(3,2);
    +    parallel_add(a,b)(3);
    +    parallel_add(a,b)();
    +    assert(a == 8 && b == 'Z');
    +
    +    return 0;
    +}
    +
    +
    + + See also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/concepts.html b/doc/html/fusion/functional/concepts.html new file mode 100644 index 00000000..5cff48ee --- /dev/null +++ b/doc/html/fusion/functional/concepts.html @@ -0,0 +1,45 @@ + + + +Concepts + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/concepts/callable.html b/doc/html/fusion/functional/concepts/callable.html new file mode 100644 index 00000000..cd5cfdf3 --- /dev/null +++ b/doc/html/fusion/functional/concepts/callable.html @@ -0,0 +1,45 @@ + + + + Callable Object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +

    + 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. + +

    +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html new file mode 100644 index 00000000..c549764c --- /dev/null +++ b/doc/html/fusion/functional/concepts/def_callable.html @@ -0,0 +1,100 @@ + + + + Deferred + Callable Object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Callable Object + that works with Boost.ResultOf + to determine the result of a call (such as the function objects provided + by the standard library). +

    +
    + + Refinement + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A Deferred Callable Object type +
    +
    T1 + ...TN
    +
    + Arbitrary types +
    +
    +
    +
    + + Expression + requirements +
    +
    ++++ + + + + + + + + +
    ExpressionType
    +boost::result_of< F(T1 ...TN) >::type +Unspecified
    +
    + + Models +
    +
    +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html new file mode 100644 index 00000000..1ea02616 --- /dev/null +++ b/doc/html/fusion/functional/concepts/poly.html @@ -0,0 +1,110 @@ + + + + Polymorphic Function + Object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + A type of function object with a nested metafunction result. + result returns the result + type of calling the function object, given the argument types. +

    +
    + + Refinement + of +
    + +
    +

    Notation

    +
    +
    F
    +
    + A Polymorphic Function Object type +
    +
    f
    +
    + A Polymorphic Function Object +
    +
    T1 + ...TN
    +
    + Arbitrary types +
    +
    t1 + ...tN
    +
    + Objects with types T1 ...TN +
    +
    +
    +
    + + Expression + requirements +
    +
    +++++ + + + + + + + + + + +
    ExpressionReturn TypeRuntime + Complexity
    f(t1, ...tN)F::result<T1, ...TN>::typeUnspecified
    +
    + + Models +
    +
    +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html new file mode 100644 index 00000000..22a71e35 --- /dev/null +++ b/doc/html/fusion/functional/generation.html @@ -0,0 +1,58 @@ + + + +Generation + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html new file mode 100644 index 00000000..5cd88059 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions.html @@ -0,0 +1,46 @@ + + + +Functions + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_fused.html b/doc/html/fusion/functional/generation/functions/make_fused.html new file mode 100644 index 00000000..fa9a972a --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_fused.html @@ -0,0 +1,129 @@ + + + +make_fused + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a fused adapter for a given Deferred Callable Object. + The usual element + conversion is applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_fused<F>::type
    +make_fused(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Deferred + Callable Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_fused(f);
    +
    +

    + Return type: A specialization of fused. +

    +

    + Semantics: Returns a fused adapter for f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused.hpp>
    +
    +
    + + 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>())));
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_fused_function_object.html b/doc/html/fusion/functional/generation/functions/make_fused_function_object.html new file mode 100644 index 00000000..69f5af66 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_fused_function_object.html @@ -0,0 +1,143 @@ + + + +make_fused_function_object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a fused_function_object adapter + for a given Deferred + Callable Object. The usual element + conversion is applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_fused_function_object<F>::type
    +make_fused_function_object(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Polymorphic + Function Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_fused_function_object(f);
    +
    +

    + Return type: A specialization of fused_function_object. +

    +

    + Semantics: Returns a fused_function_object adapter + for f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
    +
    +
    + + Example +
    +
    +struct sub
    +{
    +    template<typename T, typename _>
    +    struct result
    +    {
    +        typedef T type;
    +    };
    +
    +    template<typename T>
    +    T operator()(T lhs, T rhs) const
    +    {
    +        return lhs - rhs;
    +    }
    +};
    +
    +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())));
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_fused_procedure.html b/doc/html/fusion/functional/generation/functions/make_fused_procedure.html new file mode 100644 index 00000000..daf5d285 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_fused_procedure.html @@ -0,0 +1,124 @@ + + + +make_fused_procedure + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a fused_procedure adapter for + a given Deferred + Callable Object. The usual element + conversion applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_fused_procedure<F>::type
    +make_fused_procedure(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Callable + Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_fused_procedure(f);
    +
    +

    + Return type: A specialization of fused_procedure. +

    +

    + Semantics: Returns a fused_procedure adapter for + f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
    +
    +
    + + Example +
    +
    +vector<int,int,int> v(1,2,3);
    +using namespace boost::lambda;
    +make_fused_procedure(_1 += _2 - _3)(v);
    +assert(front(v) == 0);
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_unfused_generic.html b/doc/html/fusion/functional/generation/functions/make_unfused_generic.html new file mode 100644 index 00000000..cec1f676 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_unfused_generic.html @@ -0,0 +1,155 @@ + + + +make_unfused_generic + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a unfused_generic adapter for + a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_unfused_generic<F>::type
    +make_unfused_generic(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Polymorphic + Function Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_unfused_generic(f);
    +
    +

    + Return type: A specialization of unfused_generic. +

    +

    + Semantics: Returns a unfused_generic adapter for + f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_generic.hpp>
    +
    +
    + + Example +
    +
    +struct bottles_song
    +{
    +    template<class Seq>
    +    struct result
    +        : mpl::if_< mpl::less< result_of::size<Seq>, mpl::int_<2> >,
    +            boost::blank, mpl::identity<void> >::type
    +    { };
    +
    +    template<class Seq> 
    +    void operator()(Seq & s) const
    +    {
    +        typename result_of::at_c<Seq,0>::type n = at_c<0>(s);
    +        typename result_of::at_c<Seq,1>::type what = at_c<1>(s);
    +
    +        std::cout 
    +            << n << " bottles of " << what << " on the wall.\n" 
    +            << n << " bottles of " << what << "!\n"
    +            << "Take one down - pass it around.\n";
    +
    +        n -= 1; // glug glug...
    +
    +        std::cout
    +            << n << " bottles of " << what << " on the wall.\n" 
    +            << std::endl;
    +    }
    +};
    +
    +void try_it()
    +{
    +    unsigned n_milk = 99;
    +    for(int i = 0; i < 3; ++i)
    +        make_unfused_generic(bottles_song())(n_milk,"milk");
    +    // 96 bottles left for me
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_unfused_lvalue_args.html b/doc/html/fusion/functional/generation/functions/make_unfused_lvalue_args.html new file mode 100644 index 00000000..d4dccf57 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_unfused_lvalue_args.html @@ -0,0 +1,142 @@ + + + +make_unfused_lvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a unfused_lvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_unfused_lvalue_args<F>::type
    +make_unfused_lvalue_args(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Polymorphic + Function Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_unfused_lvalue_args(f);
    +
    +

    + Return type: A specialization of unfused_lvalue_args. +

    +

    + Semantics: Returns a unfused_lvalue_args adapter + for f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
    +
    +
    + + Example +
    +
    +struct fused_incrementer
    +{
    +    template <class Seq> 
    +    struct result 
    +    { 
    +        typedef void type;
    +    };
    +
    +    template <class Seq>
    +    void operator()(Seq const & s) const
    +    {
    +        for_each(s,++boost::lambda::_1);
    +    }
    +};
    +
    +void try_it()
    +{
    +    int a = 2; char b = 'X';
    +    make_unfused_lvalue_args(fused_incrementer())(a,b);
    +    assert(a == 3 && b == 'Y');
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/functions/make_unfused_rvalue_args.html b/doc/html/fusion/functional/generation/functions/make_unfused_rvalue_args.html new file mode 100644 index 00000000..1a674940 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/make_unfused_rvalue_args.html @@ -0,0 +1,141 @@ + + + +make_unfused_rvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a unfused_rvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

    +
    + + Synopsis +
    +
    +template <typename F>
    +inline typename make_unfused_rvalue_args<F>::type
    +make_unfused_rvalue_args(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Polymorphic + Function Object +The function to transform.
    +
    + + Expression + Semantics +
    +
    +make_unfused_rvalue_args(f);
    +
    +

    + Return type: A specialization of unfused_rvalue_args. +

    +

    + Semantics: Returns a unfused_rvalue_args adapter + for f. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
    +
    +
    + + Example +
    +
    +struct sequence_printer
    +{
    +    template <class Seq> 
    +    struct result 
    +    { 
    +        typedef void type;
    +    };
    +
    +    template <class Seq>
    +    void operator()(Seq const & s) const
    +    {
    +        std::cout << s << std::endl;
    +    }
    +};
    +
    +void try_it()
    +{
    +    make_unfused_rvalue_args(sequence_printer())
    +        (24,"bottles of beer in",'a',"box.");
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html new file mode 100644 index 00000000..3c233649 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions.html @@ -0,0 +1,46 @@ + + + +Metafunctions + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_fused.html b/doc/html/fusion/functional/generation/metafunctions/make_fused.html new file mode 100644 index 00000000..9d7aa0a2 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_fused.html @@ -0,0 +1,72 @@ + + + +make_fused + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_fused. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_fused
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_fused_function_object.html b/doc/html/fusion/functional/generation/metafunctions/make_fused_function_object.html new file mode 100644 index 00000000..938658f1 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_fused_function_object.html @@ -0,0 +1,72 @@ + + + +make_fused_function_object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_fused_function_object. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_fused_function_object
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_fused_procedure.html b/doc/html/fusion/functional/generation/metafunctions/make_fused_procedure.html new file mode 100644 index 00000000..7134f8df --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_fused_procedure.html @@ -0,0 +1,72 @@ + + + +make_fused_procedure + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_fused_procedure. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_fused_procedure
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_unfused_generic.html b/doc/html/fusion/functional/generation/metafunctions/make_unfused_generic.html new file mode 100644 index 00000000..b75228e5 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_unfused_generic.html @@ -0,0 +1,72 @@ + + + +make_unfused_generic + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_unfused_generic. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_generic.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_unfused_generic
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_unfused_lvalue_args.html b/doc/html/fusion/functional/generation/metafunctions/make_unfused_lvalue_args.html new file mode 100644 index 00000000..e0eddb50 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_unfused_lvalue_args.html @@ -0,0 +1,72 @@ + + + +make_unfused_lvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_unfused_lvalue_args. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_unfused_lvalue_args
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/generation/metafunctions/make_unfused_rvalue_args.html b/doc/html/fusion/functional/generation/metafunctions/make_unfused_rvalue_args.html new file mode 100644 index 00000000..86f0b445 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/make_unfused_rvalue_args.html @@ -0,0 +1,72 @@ + + + +make_unfused_rvalue_args + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of make_unfused_rvalue_args. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
    +
    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<typename Function>
    +    struct make_unfused_rvalue_args
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html new file mode 100644 index 00000000..3b88b6cc --- /dev/null +++ b/doc/html/fusion/functional/invocation.html @@ -0,0 +1,53 @@ + + + +Invocation + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html new file mode 100644 index 00000000..e868aad6 --- /dev/null +++ b/doc/html/fusion/functional/invocation/functions.html @@ -0,0 +1,43 @@ + + + +Functions + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/functions/invoke.html b/doc/html/fusion/functional/invocation/functions/invoke.html new file mode 100644 index 00000000..b6dac72e --- /dev/null +++ b/doc/html/fusion/functional/invocation/functions/invoke.html @@ -0,0 +1,160 @@ + + + +invoke + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Calls a Deferred + Callable Object with the arguments from a Sequence. +

    +

    + The corresponding metafunction, result_of::invoke does not define a type member for target functions of + non-class type whose arity is not satisfied by the size of the sequence. +

    +

    + The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

    +

    + 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). +

    +
    + + Synopsis +
    +
    +template<
    +    typename Function, 
    +    class Sequence
    +    >
    +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 
    +invoke(Function f, Sequence const & s);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + + + + + + + + +
    ParameterRequirementDescription
    fA + Deferred + Callable Object +The function to call.
    sA + Forward + Sequence +The arguments.
    +
    + + Expression + Semantics +
    +
    +invoke(f,s);
    +
    +

    + Return type: Return type of f when invoked with the elements in + s as its arguments. +

    +

    + Semantics: Invokes f + with the elements in s + as arguments and returns the result of the call expression. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/invocation/invoke.hpp>
    +
    +
    + + Example +
    +
    +std::plus<int> add;
    +assert(invoke(add,make_vector(1,1)) == 2);
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/functions/invoke_function_object.html b/doc/html/fusion/functional/invocation/functions/invoke_function_object.html new file mode 100644 index 00000000..2ebd1693 --- /dev/null +++ b/doc/html/fusion/functional/invocation/functions/invoke_function_object.html @@ -0,0 +1,173 @@ + + + +invoke_function_object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Calls a Polymorphic Function + Object with the arguments from a Sequence. +

    +

    + The corresponding metafunction, result_of::invoke_function_object, does + not define a type member, + if the nested result + class template of the target function object is empty. +

    +

    + The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

    +
    + + Synopsis +
    +
    +template<
    +    typename Function, 
    +    class Sequence
    +    >
    +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
    +invoke_function_object(Function f, Sequence const & s);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Polymorphic + Function Object +The function object to call.
    sModel + of Forward + Sequence +The arguments.
    +
    + + Expression + Semantics +
    +
    +invoke_procedure(f,s);
    +
    +

    + Return type: Return type of f when invoked with the elements in + s as its arguments. +

    +

    + Semantics: Invokes f + with the elements in s + as arguments and returns the result of the call expression. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/invocation/invoke_function_object.hpp>
    +
    +
    + + Example +
    +
    +struct sub
    +{
    +    template<typename T, typename _>
    +    struct result
    +    {
    +        typedef T type;
    +    };
    +
    +    template<typename T>
    +    T operator()(T lhs, T rhs) const
    +    {
    +        return lhs - rhs;
    +    }
    +};
    +
    +void try_it()
    +{
    +    sub f;
    +    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/functions/invoke_procedure.html b/doc/html/fusion/functional/invocation/functions/invoke_procedure.html new file mode 100644 index 00000000..fc6eefd4 --- /dev/null +++ b/doc/html/fusion/functional/invocation/functions/invoke_procedure.html @@ -0,0 +1,166 @@ + + + +invoke_procedure + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Calls a Callable + Object with the arguments from a Sequence. + The result of the call is ignored. +

    +

    + The corresponding metafunction, __result_of_invoke_procedure, does not + define a type member + for target functions of non-class type whose arity is not satisfied by + the size of the sequence. +

    +

    + The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

    +

    + 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). +

    +

    + The target function must not be a pointer to a member object (dereferencing + such a pointer without returning anything does not make sense, so it + isn't implemented). +

    +
    + + Synopsis +
    +
    +template<
    +    typename Function, 
    +    class Sequence
    +    >
    +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
    +invoke_procedure(Function f, Sequence const & s);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + + + + + + + + +
    ParameterRequirementDescription
    fModel + of Callable + Object +The function to call.
    sModel + of Forward + Sequence +The arguments.
    +
    + + Expression + Semantics +
    +
    +invoke_procedure(f,s);
    +
    +

    + Return type: void +

    +

    + Semantics: Invokes f + with the elements in s + as arguments. +

    +
    + + Header +
    +
    +#include <boost/fusion/functional/invocation/invoke_procedure.hpp>
    +
    +
    + + Example +
    +
    +vector<int,int> v(1,2);
    +using namespace boost::lambda;
    +invoke_procedure(_1 += _2, v);
    +assert(front(v) == 3);
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/metafunctions.html b/doc/html/fusion/functional/invocation/metafunctions.html new file mode 100644 index 00000000..d483f03c --- /dev/null +++ b/doc/html/fusion/functional/invocation/metafunctions.html @@ -0,0 +1,43 @@ + + + +Metafunctions + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    + + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke.html b/doc/html/fusion/functional/invocation/metafunctions/invoke.html new file mode 100644 index 00000000..78c4606c --- /dev/null +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke.html @@ -0,0 +1,75 @@ + + + +invoke + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of invoke. +

    +

    + Empty for non-class target function types whose arity is not satisfied + by the size of the sequence. +

    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<
    +        typename Function, 
    +        class Sequence
    +        > 
    +    struct invoke
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_function_object.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_function_object.html new file mode 100644 index 00000000..66c4954a --- /dev/null +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_function_object.html @@ -0,0 +1,75 @@ + + + +invoke_function_object + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of invoke_function_object. +

    +

    + Empty if the target function's nested result + class template is empty. +

    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<
    +        class Function, 
    +        class Sequence
    +        > 
    +    struct invoke_function_object
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_procedure.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_procedure.html new file mode 100644 index 00000000..c7fee8c1 --- /dev/null +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_procedure.html @@ -0,0 +1,75 @@ + + + +invoke_procedure + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Returns the result type of invoke_procedure. +

    +

    + Empty for non-class target function types whose arity is not satisfied + by the size of the sequence. +

    +
    + + Synopsis +
    +
    +namespace result_of
    +{
    +    template<
    +        typename Function, 
    +        class Sequence
    +        > 
    +    struct invoke_procedure
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    Copyright © 2001-2005 Joel de Guzman, Dan Marsden
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html index 593c454c..52f9b4fd 100644 --- a/doc/html/fusion/introduction.html +++ b/doc/html/fusion/introduction.html @@ -3,7 +3,7 @@ Introduction - + @@ -29,9 +29,9 @@ 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.

    @@ -41,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 @@ -51,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 @@ -89,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/iterators.html b/doc/html/fusion/iterators.html index 11313fef..dc2a683e 100644 --- a/doc/html/fusion/iterators.html +++ b/doc/html/fusion/iterators.html @@ -3,7 +3,7 @@ Iterators - + @@ -74,7 +74,7 @@ Sequence.

    - + Header

    diff --git a/doc/html/fusion/iterators/concepts.html b/doc/html/fusion/iterators/concepts.html
    index 303291b2..ccc0b159 100644
    --- a/doc/html/fusion/iterators/concepts.html
    +++ b/doc/html/fusion/iterators/concepts.html
    @@ -3,7 +3,7 @@
     
     Concepts
     
    -
    +
     
     
     
    diff --git a/doc/html/fusion/iterators/concepts/bidirectional_iterator.html b/doc/html/fusion/iterators/concepts/bidirectional_iterator.html
    index 4ec1436f..a91dfacc 100644
    --- a/doc/html/fusion/iterators/concepts/bidirectional_iterator.html
    +++ b/doc/html/fusion/iterators/concepts/bidirectional_iterator.html
    @@ -4,7 +4,7 @@
     Bidirectional
             Iterator
     
    -
    +
     
     
     Bidirectional
             Iterator
     
    - + Description

    @@ -41,27 +41,27 @@

    Notation

    -
    i
    +
    i
    A Bidirectional Iterator
    -
    I
    +
    I
    A Bidirectional Iterator type
    -
    M
    +
    M
    An MPL integral constant
    -
    N
    +
    N
    An integral constant
    - + Refinement of
    @@ -70,7 +70,7 @@ Iterator">Forward Iterator

    - + Expression requirements
    @@ -93,28 +93,28 @@ -next(i) +next(i) Bidirectional Iterator Constant -prior(i) +prior(i) Bidirectional Iterator Constant -advance_c<N>(i) +advance_c<N>(i) Bidirectional Iterator Constant -advance<M>(i) +advance<M>(i) Bidirectional Iterator @@ -123,7 +123,7 @@
    - + Meta Expressions
    @@ -137,13 +137,13 @@ Compile Time Complexity -result_of::prior<I>::type +result_of::prior<I>::type Amortized constant time
    - + Expression Semantics
    @@ -163,14 +163,14 @@ Semantics -prior(i) +prior(i) An - iterator to the element preceding i + iterator to the element preceding i
    - + Invariants

    @@ -179,44 +179,44 @@ Iterator, the following invariants always hold:

    - + Models
    diff --git a/doc/html/fusion/iterators/concepts/forward_iterator.html b/doc/html/fusion/iterators/concepts/forward_iterator.html index 07abf518..428787e2 100644 --- a/doc/html/fusion/iterators/concepts/forward_iterator.html +++ b/doc/html/fusion/iterators/concepts/forward_iterator.html @@ -4,7 +4,7 @@ Forward Iterator - + @@ -30,7 +30,7 @@ Iterator">Forward Iterator
    - + Description

    @@ -41,29 +41,29 @@

    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 requirements
    @@ -85,56 +85,56 @@ - + - + - + - + - + - - + + - - + + - - + +
    next(i)next(i) Forward Iterator Constant
    i == - ji == + j Convertible to bool Constant
    i != - ji != + j Convertible to bool Constant
    advance_c<N>(i)advance_c<N>(i) Forward Iterator Constant
    advance<M>(i)advance<M>(i) Forward Iterator Constant
    distance(i, j)result_of::distance<I, J>::typedistance(i, j)result_of::distance<I, J>::type Constant
    deref(i)result_of::deref<I>::typederef(i)result_of::deref<I>::type Constant
    *iresult_of::deref<I>::type*iresult_of::deref<I>::type Constant
    - + Meta Expressions
    @@ -149,41 +149,41 @@ -result_of::next<I>::type +result_of::next<I>::type Amortized constant time -result_of::equal_to<I, J>::type +result_of::equal_to<I, J>::type Amortized constant time -result_of::advance_c<I, N>::type +result_of::advance_c<I, N>::type Linear -result_of::advance<I ,M>::type +result_of::advance<I ,M>::type Linear -result_of::distance<I ,J>::type +result_of::distance<I ,J>::type Linear -result_of::deref<I>::type +result_of::deref<I>::type Amortized constant time -result_of::value_of<I>::type +result_of::value_of<I>::type Amortized constant time
    - + Expression Semantics
    @@ -198,136 +198,136 @@ -next(i) +next(i) An - iterator to the element following i + iterator to the element following i -i == - j +i == + j Iterator equality comparison -i != - j +i != + j Iterator inequality comparison -advance_c<N>(i) +advance_c<N>(i) An - iterator n elements after i + iterator n elements after i in the sequence -advance<M>(i) +advance<M>(i) Equivalent - to advance_c<M::value>(i) + to advance_c<M::value>(i) -distance(i, j) +distance(i, j) The - number of elements between i - and j + number of elements between i + and j -deref(i) +deref(i) The - element at positioni + element at positioni -*i +*i Equivalent - to deref(i) + to deref(i)
    - + 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
    diff --git a/doc/html/fusion/iterators/concepts/random_access_iterator.html b/doc/html/fusion/iterators/concepts/random_access_iterator.html index ff35adbd..647d48ee 100644 --- a/doc/html/fusion/iterators/concepts/random_access_iterator.html +++ b/doc/html/fusion/iterators/concepts/random_access_iterator.html @@ -4,7 +4,7 @@ Random Access Iterator - + Random Access Iterator
    - + Description

    @@ -41,29 +41,29 @@

    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 of
    @@ -73,7 +73,7 @@ Iterator

    - + Expression requirements
    @@ -96,28 +96,28 @@ -next(i) +next(i) Random Access Iterator Constant -prior(i) +prior(i) Random Access Iterator Constant -advance_c<N>(i) +advance_c<N>(i) Random Access Iterator Constant -advance<M>(i) +advance<M>(i) Random Access Iterator @@ -126,7 +126,7 @@
    - + Meta Expressions
    @@ -141,53 +141,53 @@ -result_of::advance_c<I, N>::type +result_of::advance_c<I, N>::type Amortized constant time -result_of::advance<I, M>::type +result_of::advance<I, M>::type Amortized constant time -result_of::distance<I ,J>::type +result_of::distance<I ,J>::type Amortized constant time
    - + Models
    diff --git a/doc/html/fusion/iterators/functions/advance_c.html b/doc/html/fusion/iterators/functions/advance_c.html index bf5c044a..3f0ae941 100644 --- a/doc/html/fusion/iterators/functions/advance_c.html +++ b/doc/html/fusion/iterators/functions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -26,14 +26,14 @@
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    @@ -41,10 +41,10 @@
         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

    @@ -58,7 +58,7 @@ - + - + @@ -76,42 +76,42 @@
    ii Model of Forward @@ -67,7 +67,7 @@ Iterator to move relative to
    NN Integer constant Number of positions to move
    - + 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 + Semantics: Returns an iterator to the + element N positions from + i. If i is a Bidirectional - Iterator then N + Iterator then N may be negative.

    - + Header
     #include <boost/fusion/iterator/advance.hpp>
     
    - + 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/iterators/functions/deref.html b/doc/html/fusion/iterators/functions/deref.html index 4b0a5c88..c70c0550 100644 --- a/doc/html/fusion/iterators/functions/deref.html +++ b/doc/html/fusion/iterators/functions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -26,24 +26,24 @@
    - + Description

    Deferences an iterator.

    - + 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

    @@ -56,7 +56,7 @@ - +
    Description
    ii Model of Forward @@ -67,39 +67,39 @@
    - + 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
     #include <boost/fusion/iterator/deref.hpp>
     
    - + 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/iterators/functions/distance.html b/doc/html/fusion/iterators/functions/distance.html index c09eb69f..a46543b5 100644 --- a/doc/html/fusion/iterators/functions/distance.html +++ b/doc/html/fusion/iterators/functions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -26,14 +26,14 @@
    - + Description

    Returns the distance between 2 iterators.

    - + Synopsis
    @@ -41,10 +41,10 @@
         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

    @@ -58,7 +58,7 @@
    -i, j +i, j Models of Forward @@ -69,36 +69,36 @@
    - + 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
     #include <boost/fusion/iterator/distance.hpp>
     
    - + 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/iterators/functions/next.html b/doc/html/fusion/iterators/functions/next.html index 2329e480..cf0a56b2 100644 --- a/doc/html/fusion/iterators/functions/next.html +++ b/doc/html/fusion/iterators/functions/next.html @@ -3,7 +3,7 @@ next - + @@ -26,24 +26,24 @@
    - + Description

    Moves an iterator 1 position forwards.

    - + 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

    @@ -56,7 +56,7 @@ - +
    Description
    ii Model of Forward @@ -67,7 +67,7 @@
    - + Expression Semantics
    @@ -75,31 +75,31 @@ 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
     #include <boost/fusion/iterator/next.hpp>
     
    - + 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/iterators/functions/prior.html b/doc/html/fusion/iterators/functions/prior.html index 58dbb1bc..12de68c5 100644 --- a/doc/html/fusion/iterators/functions/prior.html +++ b/doc/html/fusion/iterators/functions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -26,24 +26,24 @@
    - + Description

    Moves an iterator 1 position backwards.

    - + 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

    @@ -56,7 +56,7 @@ - +
    Description
    ii Model of Bidirectional @@ -67,38 +67,38 @@
    - + 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
     #include <boost/fusion/iterator/prior.hpp>
     
    - + 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/iterators/metafunctions.html b/doc/html/fusion/iterators/metafunctions.html index 9f4cbefe..2c324a67 100644 --- a/doc/html/fusion/iterators/metafunctions.html +++ b/doc/html/fusion/iterators/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - +advance - + @@ -26,14 +26,14 @@
    - + Description

    Moves an iterator a specified distance.

    - + Synopsis
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.17. Parameters

    +

    Table 1.17. Parameters

    @@ -61,7 +61,7 @@ - + - + + of MPL + Integral Constant +
    II Model of Forward @@ -70,52 +70,54 @@ Iterator to move relative to
    MM Model - of MPL Integral Constant Number of positions to move
    - + 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 Semantics: Returns an iterator a distance + M from I. + If I is a Bidirectional - Iterator then M + Iterator then M may be negative.

    - + Header
     #include <boost/fusion/iterator/advance.hpp>
     
    - + 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/iterators/metafunctions/advance_c.html b/doc/html/fusion/iterators/metafunctions/advance_c.html index 263d912a..07bd853f 100644 --- a/doc/html/fusion/iterators/metafunctions/advance_c.html +++ b/doc/html/fusion/iterators/metafunctions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -26,14 +26,14 @@
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.18. Parameters

    +

    Table 1.18. Parameters

    @@ -61,7 +61,7 @@ - + - + @@ -79,43 +79,43 @@
    II Model of Forward @@ -70,7 +70,7 @@ Iterator to move relative to
    NN Integer constant Number of positions to move
    - + 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 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. + Iterator then N + may be negative. Equivalent to result_of::advance<I, boost::mpl::int_<N> >::type.

    - + Header
     #include <boost/fusion/iterator/advance.hpp>
     
    - + 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/iterators/metafunctions/deref.html b/doc/html/fusion/iterators/metafunctions/deref.html index bed43929..c396139f 100644 --- a/doc/html/fusion/iterators/metafunctions/deref.html +++ b/doc/html/fusion/iterators/metafunctions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -26,14 +26,14 @@
    - + Description

    Returns the type that will be returned by dereferencing an iterator.

    - + Synposis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.12. Parameters

    +

    Table 1.12. Parameters

    @@ -59,7 +59,7 @@ - +
    Description
    II Model of Forward @@ -70,42 +70,42 @@
    - + 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
     #include <boost/fusion/iterator/deref.hpp>
     
    - + 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/iterators/metafunctions/distance.html b/doc/html/fusion/iterators/metafunctions/distance.html index 66ceb33c..89344d1f 100644 --- a/doc/html/fusion/iterators/metafunctions/distance.html +++ b/doc/html/fusion/iterators/metafunctions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -26,14 +26,14 @@
    - + Description

    Returns the distance between two iterators.

    - + Synopsis
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.16. Parameters

    +

    Table 1.16. Parameters

    @@ -61,7 +61,7 @@
    -I, J +I, J Models of Forward @@ -72,38 +72,39 @@
    - + Expression Semantics
    -result_of::distance<I, J>::type
    +result_of::distance<I, J>::type
     

    - Return type: A model of MPL Integral Constant. + 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
     #include <boost/fusion/iterator/distance.hpp>
     
    - + 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/iterators/metafunctions/equal_to.html b/doc/html/fusion/iterators/metafunctions/equal_to.html index bfa507f1..d47b6190 100644 --- a/doc/html/fusion/iterators/metafunctions/equal_to.html +++ b/doc/html/fusion/iterators/metafunctions/equal_to.html @@ -3,7 +3,7 @@ equal_to - + @@ -26,15 +26,16 @@
    - + Description

    - Returns a true-valued MPL Integral Constant if I - and J are equal. + Returns a true-valued MPL + Integral Constant if I + and J are equal.

    - + Synopsis
    @@ -48,7 +49,7 @@
     };
     
    -

    Table 1.15. Parameters

    +

    Table 1.15. Parameters

    @@ -62,7 +63,7 @@
    -I, J +I, J Any fusion iterators Operation's @@ -71,38 +72,39 @@
    - + Expression Semantics
    -result_of::equal_to<I, J>::type
    +result_of::equal_to<I, J>::type
     

    - Return type: A model of MPL Integral Constant. + 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
     #include <boost/fusion/iterator/equal_to.hpp>
     
    - + 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/iterators/metafunctions/next.html b/doc/html/fusion/iterators/metafunctions/next.html index 275b2a74..b67e0ce0 100644 --- a/doc/html/fusion/iterators/metafunctions/next.html +++ b/doc/html/fusion/iterators/metafunctions/next.html @@ -3,7 +3,7 @@ next - + @@ -26,14 +26,14 @@
    - + Description

    Returns the type of the next iterator in a sequence.

    - + Synposis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.13. Parameters

    +

    Table 1.13. Parameters

    @@ -59,7 +59,7 @@ - +
    Description
    II Model of Forward @@ -70,37 +70,37 @@
    - + 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
     #include <boost/fusion/iterator/next.hpp>
     
    - + 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/iterators/metafunctions/prior.html b/doc/html/fusion/iterators/metafunctions/prior.html index 3200021a..5d3e98bd 100644 --- a/doc/html/fusion/iterators/metafunctions/prior.html +++ b/doc/html/fusion/iterators/metafunctions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -26,14 +26,14 @@
    - + Description

    Returns the type of the previous iterator in a sequence.

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.14. Parameters

    +

    Table 1.14. Parameters

    @@ -59,7 +59,7 @@ - +
    Description
    II Model of Bidirectional @@ -70,40 +70,40 @@
    - + 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
     #include <boost/fusion/iterator/prior.hpp>
     
    - + 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/iterators/metafunctions/value_of.html b/doc/html/fusion/iterators/metafunctions/value_of.html index 42a79d68..1422687a 100644 --- a/doc/html/fusion/iterators/metafunctions/value_of.html +++ b/doc/html/fusion/iterators/metafunctions/value_of.html @@ -3,7 +3,7 @@ value_of - + @@ -26,14 +26,14 @@
    - + Description

    Returns the type stored at the position of an iterator.

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.11. Parameters

    +

    Table 1.11. Parameters

    @@ -59,7 +59,7 @@ - +
    Description
    II Model of Forward @@ -70,40 +70,40 @@
    - + 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
     #include <boost/fusion/iterator/value_of.hpp>
     
    - + 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/iterators/operators.html b/doc/html/fusion/iterators/operators.html index 707d5964..6e6bc780 100644 --- a/doc/html/fusion/iterators/operators.html +++ b/doc/html/fusion/iterators/operators.html @@ -3,7 +3,7 @@ Operators - + diff --git a/doc/html/fusion/iterators/operators/operator_equality.html b/doc/html/fusion/iterators/operators/operator_equality.html index ed63d6e6..e4be64ee 100644 --- a/doc/html/fusion/iterators/operators/operator_equality.html +++ b/doc/html/fusion/iterators/operators/operator_equality.html @@ -4,7 +4,7 @@ Operator == - + Operator ==
    - + Description

    Compares 2 iterators for equality.

    - + Synopsis
    @@ -49,7 +49,7 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.9. Parameters

    +

    Table 1.9. Parameters

    @@ -63,7 +63,7 @@
    -i, j +i, j Any fusion iterators Operation's @@ -72,7 +72,7 @@
    - + Expression Semantics
    @@ -80,15 +80,15 @@ 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
    diff --git a/doc/html/fusion/iterators/operators/operator_inequality.html b/doc/html/fusion/iterators/operators/operator_inequality.html
    index c6328841..8ccd1d1e 100644
    --- a/doc/html/fusion/iterators/operators/operator_inequality.html
    +++ b/doc/html/fusion/iterators/operators/operator_inequality.html
    @@ -4,7 +4,7 @@
      Operator
             !=
     
    -
    +
     
     
      Operator
             !=
     
    - + Description

    Compares 2 iterators for inequality.

    - + Synopsis
    @@ -48,7 +48,7 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.10. Parameters

    +

    Table 1.10. Parameters

    @@ -62,7 +62,7 @@
    -i, j +i, j Any fusion iterators Operation's @@ -71,20 +71,20 @@
    - + 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
    diff --git a/doc/html/fusion/iterators/operators/operator_unary_star.html b/doc/html/fusion/iterators/operators/operator_unary_star.html
    index 33199e55..c80293a3 100644
    --- a/doc/html/fusion/iterators/operators/operator_unary_star.html
    +++ b/doc/html/fusion/iterators/operators/operator_unary_star.html
    @@ -4,7 +4,7 @@
      Operator
             *
     
    -
    +
     
     
     
    @@ -30,24 +30,24 @@
             *"> Operator
             *
     
    - + Description

    Dereferences an iterator.

    - + 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

    @@ -60,7 +60,7 @@ - +
    Description
    ii Model of Forward @@ -71,7 +71,7 @@
    - + Expression Semantics
    @@ -79,31 +79,31 @@ *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
     #include <boost/fusion/iterator/deref.hpp>
     
    - + 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 0050bee6..0118fc89 100644 --- a/doc/html/fusion/notes.html +++ b/doc/html/fusion/notes.html @@ -3,10 +3,10 @@ Notes - + - + @@ -20,36 +20,36 @@

    -PrevUpHomeNext +PrevUpHomeNext

    - + Recursive Inlined Functions

    - An interesting peculiarity of functions like at when applied to a at when applied to a Forward - Sequence like list is that what could have been + 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

    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

    @@ -68,7 +68,7 @@

    - For example, the fusion result_of::begin metafunction + For example, the fusion result_of::begin metafunction is implemented as follows:

    @@ -86,22 +86,22 @@
         

    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

    @@ -113,13 +113,13 @@ and MPL on account 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 @@ -129,51 +129,51 @@ are sequences that do not actually contain data, but instead impart an alternative 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

    - 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 @@ -182,38 +182,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

    - 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: @@ -223,11 +223,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 @@ -235,11 +235,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).

    @@ -249,7 +249,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html index 6db1b1f6..dd298da5 100644 --- a/doc/html/fusion/organization.html +++ b/doc/html/fusion/organization.html @@ -3,7 +3,7 @@ Organization - + @@ -34,7 +34,7 @@ The library is organized in three layers:

    - + Layers

    @@ -50,7 +50,7 @@ against.

    - + Directory

      @@ -76,7 +76,7 @@
      • adapted -
          +
          • array
          • @@ -93,7 +93,7 @@
          • container -
              +
              • list
              • @@ -125,7 +125,7 @@
              • view -
                  +
                  • filter_view
                  • @@ -159,11 +159,11 @@

                  - + 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

                  @@ -174,13 +174,13 @@

    The first includes all sequences. The second includes all of sequence containers. - The third includes only list - [3] + The third 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 bfcc85b5..edafa8cd 100644 --- a/doc/html/fusion/preface.html +++ b/doc/html/fusion/preface.html @@ -3,7 +3,7 @@ Preface - + @@ -29,10 +29,10 @@ Algorithms + Data Structures = Programs.

    - --Niklaus Wirth + --Niklaus Wirth

    - + Description

    @@ -50,7 +50,7 @@ of compile time metaprogramming with runtime programming.

    - + Motivation

    @@ -76,7 +76,7 @@ an instant AHA! moment.

    - + How to use this manual

    @@ -84,7 +84,7 @@ icons precede some text to indicate:

    -

    Table 1.1. Icons

    +

    Table 1.1. Icons

    @@ -130,7 +130,7 @@ Tools.

    - + Support

    diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html index cc0940d7..61ae0b8b 100644 --- a/doc/html/fusion/quick_start.html +++ b/doc/html/fusion/quick_start.html @@ -3,7 +3,7 @@ Quick Start - + @@ -27,39 +27,39 @@ Quick Start

    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] + [1] :

     #include <boost/fusion/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 as XML

    @@ -91,38 +91,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 + for_each is generic. With + print_xml, you can use it to print just about any Fusion Sequence.

    - + 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:

    @@ -135,36 +135,36 @@
     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

    Ok, moving on...

    - Apart from vector, fusion has a couple + 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 + We have list, set, map, plus a multitude of views that provide various ways to present the sequences.

    - Fusion's map associate types with elements. - It can be used as a cleverer replacement of the struct. + Fusion's map associate types with elements. + It can be used as a cleverer replacement of the struct. Example:

    @@ -174,32 +174,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:

    @@ -215,17 +215,17 @@
     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

    @@ -236,14 +236,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 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 ef4f7188..3655c26e 100644 --- a/doc/html/fusion/references.html +++ b/doc/html/fusion/references.html @@ -3,7 +3,7 @@ References - + diff --git a/doc/html/fusion/sequences.html b/doc/html/fusion/sequences.html index b8cbb944..b6cb39fd 100644 --- a/doc/html/fusion/sequences.html +++ b/doc/html/fusion/sequences.html @@ -3,7 +3,7 @@ Sequences - + @@ -66,22 +66,97 @@
    Intrinsics
    Functions
    +
    +
    begin
    +
    end
    +
    empty
    +
    front
    +
    back
    +
    size
    +
    at
    +
    at_c
    +
    has_key
    +
    at_key
    +
    Metafunctions
    +
    +
    begin
    +
    end
    +
    empty
    +
    front
    +
    back
    +
    size
    +
    at
    +
    at_c
    +
    value_at
    +
    value_at_c
    +
    has_key
    +
    at_key
    +
    value_at_key
    +
    Generation
    Functions
    +
    +
    make_list
    +
    make_cons
    +
    make_vector
    +
    make_set
    +
    make_map
    +
    Tiers
    +
    list_tie
    +
    vector_tie
    +
    MetaFunctions
    +
    +
    make_list
    +
    make_cons
    +
    make_vector
    +
    make_set
    +
    make_map
    +
    list_tie
    +
    vector_tie
    +
    Conversion
    Functions
    +
    +
    as_list
    +
    as_vector
    +
    as_set
    +
    as_map
    +
    Metafunctions
    +
    +
    as_list
    +
    as_vector
    +
    as_set
    +
    as_map
    +
    Operators
    I/O
    +
    +
    in
    +
    out
    +
    Comparison
    +
    +
    equal
    +
    not + equal
    +
    less + than
    +
    less + than equal
    +
    greater + than
    +
    greater + than equal
    +

    @@ -95,7 +170,7 @@ type that can be used to iterate through the Sequence's elements.

    - + Header

    diff --git a/doc/html/fusion/sequences/adapted.html b/doc/html/fusion/sequences/adapted.html
    index cd502cc0..7eeeee94 100644
    --- a/doc/html/fusion/sequences/adapted.html
    +++ b/doc/html/fusion/sequences/adapted.html
    @@ -3,7 +3,7 @@
     
     Adapted
     
    -
    +
     
     
     
    @@ -33,18 +33,18 @@
     
    boost::variant

    - 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 + 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 - [4] + [4] .

    - + Header

    @@ -52,7 +52,7 @@
     


    -

    [4] +

    [4] Fusion sequences may also be adapted as fully conforming MPL sequences (see Intrinsics). That way, we can have 2-way adaptation to and from MPL diff --git a/doc/html/fusion/sequences/adapted/boost__array.html b/doc/html/fusion/sequences/adapted/boost__array.html index d97de732..e18a3c93 100644 --- a/doc/html/fusion/sequences/adapted/boost__array.html +++ b/doc/html/fusion/sequences/adapted/boost__array.html @@ -3,7 +3,7 @@ boost::array - + @@ -26,41 +26,41 @@

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

    - + Header
     #include <boost/fusion/sequence/adapted/array.hpp>
     
    - + Model of
    - + Example
     boost::array<int,3> arr = {{1,2,3}};
     
    -std::cout << *begin(arr) << std::endl;
    -std::cout << *next(begin(arr)) << std::endl;
    -std::cout << *advance_c<2>(begin(arr)) << std::endl;
    -std::cout << *prior(end(arr)) << std::endl;
    -std::cout << at_c<2>(arr) << std::endl;
    +std::cout << *begin(arr) << std::endl;
    +std::cout << *next(begin(arr)) << std::endl;
    +std::cout << *advance_c<2>(begin(arr)) << std::endl;
    +std::cout << *prior(end(arr)) << std::endl;
    +std::cout << at_c<2>(arr) << std::endl;
     
    - + See also

    diff --git a/doc/html/fusion/sequences/adapted/boost__tuple.html b/doc/html/fusion/sequences/adapted/boost__tuple.html index 4b280da3..80f25a88 100644 --- a/doc/html/fusion/sequences/adapted/boost__tuple.html +++ b/doc/html/fusion/sequences/adapted/boost__tuple.html @@ -3,7 +3,7 @@ boost::tuple - + @@ -26,27 +26,27 @@

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

    - + Header
     #include <boost/fusion/sequence/adapted/boost_tuple.hpp>
     
    - + Model of
    - + Example
    @@ -55,7 +55,7 @@
     std::cout << *boost::fusion::next(boost::fusion::begin(example_tuple)) << '\n';
     
    - + See also

    diff --git a/doc/html/fusion/sequences/adapted/boost__variant.html b/doc/html/fusion/sequences/adapted/boost__variant.html index 07f77105..080344f6 100644 --- a/doc/html/fusion/sequences/adapted/boost__variant.html +++ b/doc/html/fusion/sequences/adapted/boost__variant.html @@ -3,7 +3,7 @@ boost::variant - + @@ -26,8 +26,8 @@

    - This module provides adapters for boost::variant. - Including the module header makes boost::variant + This module provides adapters for boost::variant. + Including the module header makes boost::variant a fully conforming Forward Sequence. The variant acts as a sequence of the types that can be @@ -36,21 +36,21 @@ value of that type.

    - + Header
     #include <boost/fusion/sequence/adapted/variant.hpp>
     
    - + Model of
    - + Example
    @@ -60,7 +60,7 @@
     std::cout << example_variant << '\n';
     
    - + See also

    diff --git a/doc/html/fusion/sequences/adapted/mpl_sequence.html b/doc/html/fusion/sequences/adapted/mpl_sequence.html index 4f879cf3..b15c4cc2 100644 --- a/doc/html/fusion/sequences/adapted/mpl_sequence.html +++ b/doc/html/fusion/sequences/adapted/mpl_sequence.html @@ -3,7 +3,7 @@ mpl sequence - + @@ -31,14 +31,14 @@ sequences fully conforming fusion sequences.

    - + Header
     #include <boost/fusion/sequence/adapted/mpl.hpp>
     
    - + Model of
      @@ -62,21 +62,21 @@
    - + 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

    diff --git a/doc/html/fusion/sequences/adapted/std__pair.html b/doc/html/fusion/sequences/adapted/std__pair.html index 48a4ff9f..606cda22 100644 --- a/doc/html/fusion/sequences/adapted/std__pair.html +++ b/doc/html/fusion/sequences/adapted/std__pair.html @@ -3,7 +3,7 @@ std::pair - + @@ -26,44 +26,44 @@

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

    - + Header
     #include <boost/fusion/sequence/adapted/std_pair.hpp>
     
    - + Model of
    - + Example
     std::pair<int, std::string> p(123, "Hola!!!");
    -std::cout << at_c<0>(p) << std::endl;
    -std::cout << at_c<1>(p) << std::endl;
    +std::cout << at_c<0>(p) << std::endl;
    +std::cout << at_c<1>(p) << std::endl;
     std::cout << p << std::endl;
     
    - + See also

    - std::pair, - TR1 - and std::pair + std::pair, + TR1 + and std::pair

    diff --git a/doc/html/fusion/sequences/concepts.html b/doc/html/fusion/sequences/concepts.html index bb237688..bad9e691 100644 --- a/doc/html/fusion/sequences/concepts.html +++ b/doc/html/fusion/sequences/concepts.html @@ -3,7 +3,7 @@ Concepts - + @@ -40,7 +40,7 @@ Fusion Sequences are organized into a hierarchy of concepts.

    - + Traversal

    @@ -58,7 +58,7 @@ Sequence. These concepts pertain to sequence traversal.

    - + Associativity

    diff --git a/doc/html/fusion/sequences/concepts/associative_sequence.html b/doc/html/fusion/sequences/concepts/associative_sequence.html index 411cb77c..e67216b5 100644 --- a/doc/html/fusion/sequences/concepts/associative_sequence.html +++ b/doc/html/fusion/sequences/concepts/associative_sequence.html @@ -4,7 +4,7 @@ Associative Sequence - + Associative Sequence

    - + Description

    @@ -48,30 +48,30 @@

    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 Expressions
    @@ -94,34 +94,35 @@ - - + + - + - +
    has_key<K>(s)MPL - Boolean Constant. Convertible to bool.has_key<K>(s) +MPL + Boolean Constant. Convertible to bool.   Constant
    at_key<K>(s)at_key<K>(s) Any type   Constant
    at_key<K>(s) = oat_key<K>(s) = o Any type -s - is mutable and e = o, - where e is the first +s + is mutable and e = o, + where e is the first element in the sequence, is a valid expression. Constant
    - + Result Type Expressions
    @@ -136,32 +137,32 @@ -result_of::has_key<S, K>::type +result_of::has_key<S, K>::type Amortized constant time -result_of::at_key<S, K>::type +result_of::at_key<S, K>::type Amortized constant time -result_of::value_at_key<S, K>::type +result_of::value_at_key<S, K>::type Amortized constant time

    - note result_of::at_key<S, K> returns the actual type returned by - at_key<K>(s). In + note result_of::at_key<S, K> returns the actual type returned by + at_key<K>(s). In most cases, this is a reference. Hence, there is no way to know the exact - element type using result_of::at_key<S, K>.The element at K + element type using result_of::at_key<S, K>.The element at K may actually be a reference to begin with. For this purpose, you can use - result_of::value_at_key<S, N>. + result_of::value_at_key<S, N>.

    - + Expression Semantics
    @@ -176,30 +177,30 @@ -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. + 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. + element associated with the key K + in the sequence s; + see at.
    - + Models
    diff --git a/doc/html/fusion/sequences/concepts/bidirectional_sequence.html b/doc/html/fusion/sequences/concepts/bidirectional_sequence.html index 29dbc8dd..972f9c7c 100644 --- a/doc/html/fusion/sequences/concepts/bidirectional_sequence.html +++ b/doc/html/fusion/sequences/concepts/bidirectional_sequence.html @@ -4,7 +4,7 @@ Bidirectional Sequence - +Bidirectional Sequence
    - + Description

    @@ -42,7 +42,7 @@ Iterator.

    - + Refinement of
    @@ -53,26 +53,26 @@

    Notation

    -
    s
    +
    s
    A Forward Sequence
    -
    S
    +
    S
    A Forward Sequence type
    -
    o
    +
    o
    An arbitrary object
    -
    e
    +
    e
    A Sequence element
    - + Valid Expressions
    @@ -97,7 +97,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -113,27 +113,27 @@ - + - +
    begin(s)begin(s) Bidirectional IteratorConstant
    end(s)end(s) Bidirectional IteratorConstant
    back(s)back(s) Any type   Constant
    back(s) = oback(s) = o Any type -s - is mutable and e = o, - where e is the first +s + is mutable and e = o, + where e is the first element in the sequence, is a valid expression. Constant
    - + Result Type Expressions
    @@ -148,24 +148,24 @@ -result_of::begin<S>::type +result_of::begin<S>::type Amortized constant time -result_of::end<S>::type +result_of::end<S>::type Amortized constant time -result_of::back<S>::type +result_of::back<S>::type Amortized constant time
    - + Expression Semantics
    @@ -185,28 +185,28 @@ Semantics -back(s) +back(s) The - last element in the sequence; see back. + last element in the sequence; see back.
    - + Models
    diff --git a/doc/html/fusion/sequences/concepts/forward_sequence.html b/doc/html/fusion/sequences/concepts/forward_sequence.html index 96b2cdc2..e4217258 100644 --- a/doc/html/fusion/sequences/concepts/forward_sequence.html +++ b/doc/html/fusion/sequences/concepts/forward_sequence.html @@ -4,7 +4,7 @@ Forward Sequence - + @@ -30,7 +30,7 @@ Sequence">Forward Sequence
    - + Description

    @@ -43,26 +43,26 @@

    Notation

    -
    s
    +
    s
    A Forward Sequence
    -
    S
    +
    S
    A Forward Sequence type
    -
    o
    +
    o
    An arbitrary object
    -
    e
    +
    e
    A Sequence element
    - + Valid Expressions
    @@ -85,55 +85,57 @@ - + - + - - + + - - + + - + - +
    begin(s)begin(s) Forward Iterator   Constant
    end(s)end(s) Forward Iterator   Constant
    size(s)MPL - Integral Constant. Convertible to int.size(s) +MPL + Integral Constant. Convertible to int.   Constant
    empty(s)MPL - Boolean Constant. Convertible to bool.empty(s) +MPL + Boolean Constant. Convertible to bool.   Constant
    front(s)front(s) Any type   Constant
    front(s) = ofront(s) = o Any type -s - is mutable and e = o, - where e is the first +s + is mutable and e = o, + where e is the first element in the sequence, is a valid expression. Constant
    - + Result Type Expressions
    @@ -148,32 +150,32 @@ -result_of::begin<S>::type +result_of::begin<S>::type Amortized constant time -result_of::end<S>::type +result_of::end<S>::type Amortized constant time -result_of::size<S>::type +result_of::size<S>::type Unspecified -result_of::empty<S>::type +result_of::empty<S>::type Constant time -result_of::front<S>::type +result_of::front<S>::type Amortized constant time
    - + Expression Semantics
    @@ -188,37 +190,37 @@ -begin(s) +begin(s) An - iterator to the first element of the sequence; see begin. + iterator to the first element of the sequence; see begin. -end(s) +end(s) A - past-the-end iterator to the sequence; see end. + past-the-end iterator to the sequence; see end. -size(s) +size(s) The - size of the sequence; see size. + 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. + 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. + first element in the sequence; see front.
    - + Invariants

    @@ -226,41 +228,41 @@

    • -[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. + 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
    diff --git a/doc/html/fusion/sequences/concepts/random_access_sequence.html b/doc/html/fusion/sequences/concepts/random_access_sequence.html index 59829eeb..bb8d6f51 100644 --- a/doc/html/fusion/sequences/concepts/random_access_sequence.html +++ b/doc/html/fusion/sequences/concepts/random_access_sequence.html @@ -4,7 +4,7 @@ Random Access Sequence - +Random Access Sequence
    - + Description

    @@ -43,7 +43,7 @@ sequence elements.

    - + Refinement of
    @@ -55,30 +55,30 @@

    Notation

    -
    s
    +
    s
    A Random Access Sequence
    -
    S
    +
    S
    A Random Access Sequence type
    -
    N
    +
    N
    An integral constant
    -
    o
    +
    o
    An arbitrary object
    -
    e
    +
    e
    A Sequence element
    - + Valid Expressions
    @@ -103,7 +103,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -119,27 +119,27 @@ - + - +
    begin(s)begin(s) Random Access IteratorConstant
    end(s)end(s) Random Access IteratorConstant
    at<N>(s)at<N>(s) Any type   Constant
    at<N>(s) = oat<N>(s) = o Any type -s - is mutable and e = o, - where e is the first +s + is mutable and e = o, + where e is the first element in the sequence, is a valid expression. Constant
    - + Result Type Expressions
    @@ -154,37 +154,37 @@ -result_of::begin<S>::type +result_of::begin<S>::type Amortized constant time -result_of::end<S>::type +result_of::end<S>::type Amortized constant time -result_of::at<S, N>::type +result_of::at<S, N>::type Amortized constant time -result_of::value_at<S, N>::type +result_of::value_at<S, N>::type Amortized constant time

    - note result_of::at<S, N> returns the actual type returned by - at<N>(s). In + note result_of::at<S, N> returns the actual type returned by + at<N>(s). In most cases, this is a reference. Hence, there is no way to know the exact - element type using result_of::at<S, N>.The element at N + element type using result_of::at<S, N>.The element at N may actually be a reference to begin with. For this purpose, you can use - result_of::value_at<S, N>. + result_of::value_at<S, N>.

    - + Expression Semantics
    @@ -204,28 +204,28 @@ Semantics -at<N>(s) +at<N>(s) The - Nth element from the beginning of the sequence; see at. + Nth element from the beginning of the sequence; see at.
    - + Models
    diff --git a/doc/html/fusion/sequences/containers.html b/doc/html/fusion/sequences/containers.html index ea5044ed..3d57eb13 100644 --- a/doc/html/fusion/sequences/containers.html +++ b/doc/html/fusion/sequences/containers.html @@ -3,7 +3,7 @@ Containers - +STL.

    - + Header

    diff --git a/doc/html/fusion/sequences/containers/cons.html b/doc/html/fusion/sequences/containers/cons.html
    index 28d07d89..539b3016 100644
    --- a/doc/html/fusion/sequences/containers/cons.html
    +++ b/doc/html/fusion/sequences/containers/cons.html
    @@ -3,7 +3,7 @@
     
     cons
     
    -
    +
     
     
     
    @@ -26,29 +26,29 @@
     
     
    - + Description

    - cons is a simple 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 + 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 Inlined Functions).

    - + Header
     #include <boost/fusion/sequence/container/list/cons.hpp>
     
    - + Synopsis
    @@ -56,7 +56,7 @@
     struct cons;
     
    - + Template parameters
    @@ -73,21 +73,21 @@
    - + - + - +
    CarCar Head type  
    CdrCdr Tail typenilnil
    - + Model of
    - + Expression Semantics
    @@ -150,71 +150,71 @@ -nil() +nil() Creates an empty list. -C() +C() Creates a cons with default constructed elements. -C(car) +C(car) Creates - a cons with car head + a cons with car head and default constructed tail. -C(car, - cdr) +C(car, + cdr) Creates - a cons with car head - and cdr tail. + a cons with car head + and cdr tail. -C(s) +C(s) Copy constructs a cons from a Forward - Sequence, s. + Sequence, s. -l = - s +l = + s Assigns - to a cons, l, from + to a cons, l, from a Forward - Sequence, s. + Sequence, s. -at<N>(l) +at<N>(l) The - Nth element from the beginning of the sequence; see at. + Nth element from the beginning of the sequence; see at.

    - note at<N>(l) is + note at<N>(l) is provided for convenience and compatibility with the original Boost.Tuple - library, despite cons being + library, despite cons being a Forward Sequence - only (at is supposed to + only (at is supposed to be a Random - Access Sequence requirement). The runtime complexity of at is constant (see Recursive + Access Sequence requirement). The runtime complexity of at is constant (see Recursive Inlined Functions).

    - + Example
     cons<int, cons<float> > l(12, cons<float>(5.5f));
    -std::cout << at<0>(l) << std::endl;
    -std::cout << at<1>(l) << std::endl;
    +std::cout << at<0>(l) << std::endl;
    +std::cout << at<1>(l) << std::endl;
     
    diff --git a/doc/html/fusion/sequences/containers/list.html b/doc/html/fusion/sequences/containers/list.html index 52422a6b..a2e02bfe 100644 --- a/doc/html/fusion/sequences/containers/list.html +++ b/doc/html/fusion/sequences/containers/list.html @@ -3,7 +3,7 @@ list - + @@ -26,19 +26,19 @@
    - + Description

    - list is a list is a Forward - Sequence of heterogenous typed data built on top of cons. It is more efficient than - vector + 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).

    - + Header
    @@ -46,7 +46,7 @@
     #include <boost/fusion/sequence/container/list/list_forward.hpp>
     
    - + Synopsis
    @@ -60,24 +60,24 @@
     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
    @@ -94,14 +94,14 @@
    -T0...TN +T0...TN Element types unspecified-type
    - + Model of
    - + Expression Semantics
    @@ -155,58 +155,58 @@ -L() +L() Creates a list with default constructed elements. -L(e0, e1,... - en) +L(e0, e1,... + en) Creates - a list with elements e0...en. + a list with elements e0...en. -L(s) +L(s) Copy constructs a list from a Forward - Sequence, s. + Sequence, s. -l = - s +l = + s Assigns - to a list, l, from + to a list, l, from a Forward - Sequence, s. + Sequence, s. -at<N>(l) +at<N>(l) The - Nth element from the beginning of the sequence; see at. + Nth element from the beginning of the sequence; see at.

    - note at<n>(l) is + note at<n>(l) is provided for convenience and compatibility with the original Boost.Tuple - library, despite list being + library, despite list being a Forward Sequence - only (at is supposed to be a at is supposed to be a Random - Access Sequence requirement). The runtime complexity of at is constant (see Recursive + Access Sequence requirement). The runtime complexity of at is constant (see Recursive Inlined Functions).

    - + Example
     list<int, float> l(12, 5.5f);
    -std::cout << at<0>(l) << std::endl;
    -std::cout << at<1>(l) << std::endl;
    +std::cout << at<0>(l) << std::endl;
    +std::cout << at<1>(l) << std::endl;
     
    diff --git a/doc/html/fusion/sequences/containers/map.html b/doc/html/fusion/sequences/containers/map.html index 734de514..2a003c8f 100644 --- a/doc/html/fusion/sequences/containers/map.html +++ b/doc/html/fusion/sequences/containers/map.html @@ -3,7 +3,7 @@ map - + @@ -26,14 +26,14 @@
    - + Description

    map is an Associative Sequence of heteregenous typed data elements. Each element is a - key/data pair (see fusion::pair) + key/data 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 @@ -41,14 +41,14 @@ Functions).

    - + Header
     #include <boost/fusion/sequence/container/map.hpp>
     
    - + Synopsis
    @@ -62,24 +62,24 @@
     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
    @@ -96,14 +96,14 @@
    -T0...TN +T0...TN Element types unspecified-type
    - + Model of
      @@ -116,19 +116,19 @@

      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 @@ -137,7 +137,7 @@
      - + Expression Semantics
      @@ -160,50 +160,50 @@ -M() +M() Creates a map with default constructed elements. -M(e0, e1,... - en) +M(e0, e1,... + en) Creates - a map with element pairs e0...en. + a map with element pairs e0...en. -M(s) +M(s) Copy constructs a map from a Forward - Sequence s. + Sequence s. -m = - s +m = + s Assigns - to a map, m, from + to a map, m, from a Forward - Sequence s. + Sequence s.
    - + 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<int>(m) << std::endl;
    -std::cout << at<double>(m) << std::endl;
    +std::cout << at<int>(m) << std::endl;
    +std::cout << at<double>(m) << std::endl;
     
    diff --git a/doc/html/fusion/sequences/containers/set.html b/doc/html/fusion/sequences/containers/set.html index 640bf5c4..21c24be6 100644 --- a/doc/html/fusion/sequences/containers/set.html +++ b/doc/html/fusion/sequences/containers/set.html @@ -3,7 +3,7 @@ set - + @@ -26,7 +26,7 @@
    - + Description

    @@ -39,14 +39,14 @@ Functions).

    - + Header
     #include <boost/fusion/sequence/container/set.hpp>
     
    - + Synopsis
    @@ -60,24 +60,24 @@
     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
    @@ -94,14 +94,14 @@
    -T0...TN +T0...TN Element types unspecified-type
    - + Model of
      @@ -114,19 +114,19 @@

      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 @@ -135,7 +135,7 @@
      - + Expression Semantics
      @@ -158,44 +158,44 @@ -S() +S() Creates a set with default constructed elements. -S(e0, e1,... - en) +S(e0, e1,... + en) Creates - a set with elements e0...en. + a set with elements e0...en. -S(fs) +S(fs) Copy constructs a set from a Forward - Sequence fs. + Sequence fs. -s = - fs +s = + fs Assigns - to a set, s, from + to a set, s, from a Forward - Sequence fs. + Sequence fs.
    - + 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/sequences/containers/vector.html b/doc/html/fusion/sequences/containers/vector.html index 5c9f7638..2232e43e 100644 --- a/doc/html/fusion/sequences/containers/vector.html +++ b/doc/html/fusion/sequences/containers/vector.html @@ -3,7 +3,7 @@ vector - + @@ -26,20 +26,20 @@
    - + Description

    - vector is a 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
    @@ -54,11 +54,11 @@
     #include <boost/fusion/sequence/container/vector/vector50.hpp>
     
    - + Synopsis

    - Numbered forms + Numbered forms

     template <>
    @@ -79,7 +79,7 @@
     struct vectorN;
     

    - Variadic form + Variadic form

     template <
    @@ -98,24 +98,24 @@
     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
    @@ -132,14 +132,14 @@
    -T0...TN +T0...TN Element types unspecified
    - + Model of
    - + Expression Semantics
    @@ -190,42 +190,42 @@ -V() +V() Creates a vector with default constructed elements. -V(e0, e1,... - en) +V(e0, e1,... + en) Creates - a vector with elements e0...en. + a vector with elements e0...en. -V(s) +V(s) Copy constructs a vector from a Forward - Sequence, s. + Sequence, s. -v = - s +v = + s Assigns - to a vector, v, from + to a vector, v, from a Forward - Sequence, s. + Sequence, s.
    - + Example
     vector<int, float> v(12, 5.5f);
    -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;
     
    diff --git a/doc/html/fusion/sequences/conversion.html b/doc/html/fusion/sequences/conversion.html index 86461af0..976f2743 100644 --- a/doc/html/fusion/sequences/conversion.html +++ b/doc/html/fusion/sequences/conversion.html @@ -3,7 +3,7 @@ Conversion - + @@ -27,14 +27,26 @@ Conversion

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

    - + Header

    diff --git a/doc/html/fusion/sequences/conversion/functions.html b/doc/html/fusion/sequences/conversion/functions.html
    index ad31a4c8..90dd0560 100644
    --- a/doc/html/fusion/sequences/conversion/functions.html
    +++ b/doc/html/fusion/sequences/conversion/functions.html
    @@ -3,7 +3,7 @@
     
     Functions
     
    -
    +
     
     
     
    diff --git a/doc/html/fusion/sequences/conversion/functions/as_list.html b/doc/html/fusion/sequences/conversion/functions/as_list.html
    index f2422ad0..99e07c10 100644
    --- a/doc/html/fusion/sequences/conversion/functions/as_list.html
    +++ b/doc/html/fusion/sequences/conversion/functions/as_list.html
    @@ -3,7 +3,7 @@
     
     as_list
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -46,7 +46,7 @@
     as_list(Sequence const& seq);
     
    - + Parameters
    @@ -61,14 +61,14 @@ - +
    Description
    seqseq An instance of Sequence The sequence to convert.
    - + Expression Semantics
    @@ -76,25 +76,25 @@ 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
     #include <boost/fusion/sequence/conversion/as_list.hpp>
     
    - + Example
    -as_list(make_vector('x', 123, "hello"))
    +as_list(make_vector('x', 123, "hello"))
     
    diff --git a/doc/html/fusion/sequences/conversion/functions/as_map.html b/doc/html/fusion/sequences/conversion/functions/as_map.html index c7dd4320..5c306f22 100644 --- a/doc/html/fusion/sequences/conversion/functions/as_map.html +++ b/doc/html/fusion/sequences/conversion/functions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -46,7 +46,7 @@
     as_map(Sequence const& seq);
     
    - + Parameters
    @@ -61,14 +61,14 @@ - +
    Description
    seqseq An instance of Sequence The sequence to convert.
    - + Expression Semantics
    @@ -76,32 +76,32 @@ 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
     #include <boost/fusion/sequence/conversion/as_map.hpp>
     
    - + 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/sequences/conversion/functions/as_set.html b/doc/html/fusion/sequences/conversion/functions/as_set.html index 2faadde7..bc76358e 100644 --- a/doc/html/fusion/sequences/conversion/functions/as_set.html +++ b/doc/html/fusion/sequences/conversion/functions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -46,7 +46,7 @@
     as_set(Sequence const& seq);
     
    - + Parameters
    @@ -61,14 +61,14 @@ - +
    Description
    seqseq An instance of Sequence The sequence to convert.
    - + Expression Semantics
    @@ -76,29 +76,29 @@ 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
     #include <boost/fusion/sequence/conversion/as_set.hpp>
     
    - + Example
    -as_set(make_vector('x', 123, "hello"))
    +as_set(make_vector('x', 123, "hello"))
     
    diff --git a/doc/html/fusion/sequences/conversion/functions/as_vector.html b/doc/html/fusion/sequences/conversion/functions/as_vector.html index 45ae6f08..3e8eeae2 100644 --- a/doc/html/fusion/sequences/conversion/functions/as_vector.html +++ b/doc/html/fusion/sequences/conversion/functions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -46,7 +46,7 @@
     as_vector(Sequence const& seq);
     
    - + Parameters
    @@ -61,14 +61,14 @@ - +
    Description
    seqseq An instance of Sequence The sequence to convert.
    - + Expression Semantics
    @@ -76,25 +76,25 @@ 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
     #include <boost/fusion/sequence/conversion/as_vector.hpp>
     
    - + Example
    -as_vector(make_list('x', 123, "hello"))
    +as_vector(make_list('x', 123, "hello"))
     
    diff --git a/doc/html/fusion/sequences/conversion/metafunctions.html b/doc/html/fusion/sequences/conversion/metafunctions.html index 9241e198..07397f1f 100644 --- a/doc/html/fusion/sequences/conversion/metafunctions.html +++ b/doc/html/fusion/sequences/conversion/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_list.html b/doc/html/fusion/sequences/conversion/metafunctions/as_list.html index f648890d..ccd7b83e 100644 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_list.html +++ b/doc/html/fusion/sequences/conversion/metafunctions/as_list.html @@ -3,7 +3,7 @@ as_list - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -41,7 +41,7 @@
     struct as_list;
     
    - + Parameters
    @@ -56,7 +56,7 @@ - + @@ -65,7 +65,7 @@
    Description
    SequenceSequence A fusion Sequence
    - + Expression Semantics
    @@ -73,26 +73,26 @@ 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
     #include <boost/fusion/sequence/conversion/as_list.hpp>
     
    - + Example
    -result_of::as_list<vector<char, int> >::type
    +result_of::as_list<vector<char, int> >::type
     
    diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_map.html b/doc/html/fusion/sequences/conversion/metafunctions/as_map.html index 6599797e..727def9e 100644 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_map.html +++ b/doc/html/fusion/sequences/conversion/metafunctions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -41,7 +41,7 @@
     struct as_map;
     
    - + Parameters
    @@ -56,7 +56,7 @@ - + @@ -65,7 +65,7 @@
    Description
    SequenceSequence A fusion Sequence
    - + Expression Semantics
    @@ -73,33 +73,33 @@ 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
     #include <boost/fusion/sequence/conversion/as_map.hpp>
     
    - + 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/sequences/conversion/metafunctions/as_set.html b/doc/html/fusion/sequences/conversion/metafunctions/as_set.html index a033a33b..810416b3 100644 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_set.html +++ b/doc/html/fusion/sequences/conversion/metafunctions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -41,7 +41,7 @@
     struct as_set;
     
    - + Parameters
    @@ -56,7 +56,7 @@ - + @@ -65,7 +65,7 @@
    Description
    SequenceSequence A fusion Sequence
    - + Expression Semantics
    @@ -73,30 +73,30 @@ 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
     #include <boost/fusion/sequence/conversion/as_set.hpp>
     
    - + Example
    -result_of::as_set<vector<char, int> >::type
    +result_of::as_set<vector<char, int> >::type
     
    diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html b/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html index 1f521126..a666e4e3 100644 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html +++ b/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -26,14 +26,14 @@
    - + Description

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

    - + Synopsis
    @@ -41,7 +41,7 @@
     struct as_vector;
     
    - + Parameters
    @@ -56,7 +56,7 @@ - + @@ -65,7 +65,7 @@
    Description
    SequenceSequence A fusion Sequence
    - + Expression Semantics
    @@ -73,26 +73,26 @@ 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
     #include <boost/fusion/sequence/conversion/as_vector.hpp>
     
    - + Example
    -result_of::as_vector<list<char, int> >::type
    +result_of::as_vector<list<char, int> >::type
     
    diff --git a/doc/html/fusion/sequences/generation.html b/doc/html/fusion/sequences/generation.html index ede641b2..9a7ca6fd 100644 --- a/doc/html/fusion/sequences/generation.html +++ b/doc/html/fusion/sequences/generation.html @@ -3,7 +3,7 @@ Generation - + @@ -27,13 +27,32 @@ Generation

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

    - + Header

    diff --git a/doc/html/fusion/sequences/generation/functions.html b/doc/html/fusion/sequences/generation/functions.html
    index 202070ae..fe7a10e8 100644
    --- a/doc/html/fusion/sequences/generation/functions.html
    +++ b/doc/html/fusion/sequences/generation/functions.html
    @@ -3,7 +3,7 @@
     
     Functions
     
    -
    +
     
     
     
    diff --git a/doc/html/fusion/sequences/generation/functions/list_tie.html b/doc/html/fusion/sequences/generation/functions/list_tie.html
    index a2abc5cf..294c0f27 100644
    --- a/doc/html/fusion/sequences/generation/functions/list_tie.html
    +++ b/doc/html/fusion/sequences/generation/functions/list_tie.html
    @@ -3,7 +3,7 @@
     
     list_tie
     
    -
    +
     
     
     
    @@ -26,34 +26,34 @@
     
     
    - + Description

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

    - + 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
    @@ -68,21 +68,21 @@ - + xN
    Description
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to list_tie + arguments to list_tie
    - + Expression Semantics
    @@ -90,21 +90,21 @@ 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
     #include <boost/fusion/sequence/generation/list_tie.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/functions/make_cons.html b/doc/html/fusion/sequences/generation/functions/make_cons.html
    index 509d1f7a..80a05980 100644
    --- a/doc/html/fusion/sequences/generation/functions/make_cons.html
    +++ b/doc/html/fusion/sequences/generation/functions/make_cons.html
    @@ -3,7 +3,7 @@
     
     make_cons
     
    -
    +
     
     
     
    @@ -26,29 +26,29 @@
     
     
    - + Description

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

    - + 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
    @@ -64,17 +64,17 @@ - + - + @@ -82,7 +82,7 @@
    carcar Instance - of Car + of Car The list's head
    cdrcdr Instance - of Cdr + of Cdr The list's tail (optional)
    - + Expression Semantics
    @@ -90,34 +90,34 @@ 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
     #include <boost/fusion/sequence/generation/make_cons.hpp>
     
    - + Example
     make_cons('x', make_cons(123))
     
    - + See also

    - boost::ref + boost::ref

    diff --git a/doc/html/fusion/sequences/generation/functions/make_list.html b/doc/html/fusion/sequences/generation/functions/make_list.html index 71730dfe..6bd9f948 100644 --- a/doc/html/fusion/sequences/generation/functions/make_list.html +++ b/doc/html/fusion/sequences/generation/functions/make_list.html @@ -3,7 +3,7 @@ make_list - + @@ -26,34 +26,34 @@
    - + Description

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

    - + 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
    @@ -68,21 +68,21 @@ - + xN
    Description
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to make_list + arguments to make_list
    - + Expression Semantics
    @@ -90,32 +90,32 @@ 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
     #include <boost/fusion/sequence/generation/make_list.hpp>
     
    - + Example
     make_list(123, "hello", 12.5)
     
    - + See also

    - boost::ref + boost::ref

    diff --git a/doc/html/fusion/sequences/generation/functions/make_map.html b/doc/html/fusion/sequences/generation/functions/make_map.html index a4747138..0e1388d4 100644 --- a/doc/html/fusion/sequences/generation/functions/make_map.html +++ b/doc/html/fusion/sequences/generation/functions/make_map.html @@ -3,7 +3,7 @@ make_map - + @@ -26,38 +26,38 @@
    - + Description

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

    - + 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 - [10] - 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 + [10] + 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
    @@ -73,31 +73,31 @@ - + KN - - + xN
    K0, +K0, K1,... - KN The key typesKeys associated with x0, x1,... xN +Keys associated with x0, x1,... xN
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to make_map + arguments to make_map
    - + Expression Semantics
    @@ -105,48 +105,48 @@ 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
     #include <boost/fusion/sequence/generation/make_map.hpp>
     
    - + Example
     make_map(
    -    make_pair<int>('X')
    -  , make_pair<double>("Men"))
    +    make_pair<int>('X')
    +  , make_pair<double>("Men"))
     
    - + See also

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



    -

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

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

    diff --git a/doc/html/fusion/sequences/generation/functions/make_set.html b/doc/html/fusion/sequences/generation/functions/make_set.html index 4faf5ca5..62ba710d 100644 --- a/doc/html/fusion/sequences/generation/functions/make_set.html +++ b/doc/html/fusion/sequences/generation/functions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -26,35 +26,35 @@
    make_set
    - + Description

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

    - + 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 - [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
    @@ -69,21 +69,21 @@ - + xN
    Description
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to make_set + arguments to make_set
    - + Expression Semantics
    @@ -91,42 +91,42 @@ 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
     #include <boost/fusion/sequence/generation/make_set.hpp>
     
    - + Example
     make_set(123, "hello", 12.5)
     
    - + See also

    - boost::ref + boost::ref



    -

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

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

    diff --git a/doc/html/fusion/sequences/generation/functions/make_vector.html b/doc/html/fusion/sequences/generation/functions/make_vector.html index 2a47ca3d..77db2226 100644 --- a/doc/html/fusion/sequences/generation/functions/make_vector.html +++ b/doc/html/fusion/sequences/generation/functions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -26,34 +26,34 @@
    make_vector
    - + Description

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

    - + 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
    @@ -68,21 +68,21 @@ - + xN
    Description
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to make_vector + arguments to make_vector
    - + Expression Semantics
    @@ -90,32 +90,32 @@ 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
     #include <boost/fusion/sequence/generation/make_vector.hpp>
     
    - + Example
     make_vector(123, "hello", 12.5)
     
    - + See also

    - boost::ref + boost::ref

    diff --git a/doc/html/fusion/sequences/generation/functions/tiers.html b/doc/html/fusion/sequences/generation/functions/tiers.html index c68508cd..9524e749 100644 --- a/doc/html/fusion/sequences/generation/functions/tiers.html +++ b/doc/html/fusion/sequences/generation/functions/tiers.html @@ -3,7 +3,7 @@ Tiers - + @@ -32,8 +32,8 @@ flavors.

    Example: @@ -41,14 +41,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)) - [11] + 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)) + [11] .

    @@ -57,7 +57,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;
     

    @@ -66,7 +66,7 @@ when calling functions which return sequences.

    - + Ignore

    @@ -77,13 +77,13 @@

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


    -

    [11] +

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

    diff --git a/doc/html/fusion/sequences/generation/functions/vector_tie.html b/doc/html/fusion/sequences/generation/functions/vector_tie.html index 5ac0f10c..c47e8001 100644 --- a/doc/html/fusion/sequences/generation/functions/vector_tie.html +++ b/doc/html/fusion/sequences/generation/functions/vector_tie.html @@ -3,7 +3,7 @@ vector_tie - + @@ -26,34 +26,34 @@
    vector_tie
    - + Description

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

    - + 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
    @@ -68,21 +68,21 @@ - + xN
    Description
    x0, +x0, x1,... - xN Instances - of T0, + of T0, T1,... - TN + TN The - arguments to vector_tie + arguments to vector_tie
    - + Expression Semantics
    @@ -90,21 +90,21 @@ 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
     #include <boost/fusion/sequence/generation/vector_tie.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/metafunctions.html b/doc/html/fusion/sequences/generation/metafunctions.html
    index 3143a7b0..c5cc4937 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions.html
    @@ -3,7 +3,7 @@
     
     MetaFunctions
     
    -
    +
     
     
     
    diff --git a/doc/html/fusion/sequences/generation/metafunctions/list_tie.html b/doc/html/fusion/sequences/generation/metafunctions/list_tie.html
    index 09a5b912..52b71219 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions/list_tie.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions/list_tie.html
    @@ -3,7 +3,7 @@
     
     list_tie
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -41,18 +41,18 @@
     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
    @@ -67,17 +67,17 @@ - + TN -
    Description
    T0, +T0, T1,... - TN Any typeThe arguments to list_tie +The arguments to list_tie
    - + Expression Semantics
    @@ -85,21 +85,21 @@ 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
     #include <boost/fusion/sequence/generation/list_tie.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_cons.html b/doc/html/fusion/sequences/generation/metafunctions/make_cons.html
    index e8c27aac..2fa7c98a 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions/make_cons.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions/make_cons.html
    @@ -3,7 +3,7 @@
     
     make_cons
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -41,7 +41,7 @@
     struct make_cons;
     
    - + Parameters
    @@ -57,15 +57,15 @@ - + - + @@ -73,7 +73,7 @@
    CarCar Any type The list's head type
    CdrCdr A - cons + cons The list's tail type (optional)
    - + Expression Semantics
    @@ -81,24 +81,24 @@ result_of::make_cons<Car, Cdr>::type

    - Return type: A cons with head element, Car, of type converted following the + Return type: A cons with head element, Car, of type converted following the rules for element - conversion, and tail, Cdr. + 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
     #include <boost/fusion/sequence/generation/make_cons.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_list.html b/doc/html/fusion/sequences/generation/metafunctions/make_list.html
    index 4f6024e6..be44aca3 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions/make_list.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions/make_list.html
    @@ -3,7 +3,7 @@
     
     make_list
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -41,18 +41,18 @@
     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
    @@ -67,17 +67,17 @@ - + TN -
    Description
    T0, +T0, T1,... - TN Any typeTemplate arguments to make_list +Template arguments to make_list
    - + Expression Semantics
    @@ -85,22 +85,22 @@ result_of::make_list<T0, T1,... TN>::type

    - Return type: A list with elements of types + 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
     #include <boost/fusion/sequence/generation/make_list.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_map.html b/doc/html/fusion/sequences/generation/metafunctions/make_map.html
    index d1afd7b8..fe576662 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions/make_map.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions/make_map.html
    @@ -3,7 +3,7 @@
     
     make_map
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -43,19 +43,19 @@
     struct make_map;
     

    - The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [13] - 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 + [13] + 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
    @@ -71,27 +71,27 @@ - + KN - - + TN -
    K0, +K0, K1,... - KN Any typeKeys associated with T0, T1,... TN +Keys associated with T0, T1,... TN
    T0, +T0, T1,... - TN Any typeData associated with keys K0, K1,... KN +Data associated with keys K0, K1,... KN
    - + Expression Semantics
    @@ -99,44 +99,44 @@ 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 + 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
     #include <boost/fusion/sequence/generation/make_map.hpp>
     
    - + Example
     result_of::make_map<int, double, char, double>::type
     
    - + See also

    - fusion::pair + fusion::pair



    -

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

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

    diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_set.html b/doc/html/fusion/sequences/generation/metafunctions/make_set.html index 5910a7d5..754de52b 100644 --- a/doc/html/fusion/sequences/generation/metafunctions/make_set.html +++ b/doc/html/fusion/sequences/generation/metafunctions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -26,14 +26,14 @@
    make_set
    - + Description

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

    - + Synopsis
    @@ -41,19 +41,19 @@
     struct make_set;
     

    - 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
    @@ -68,17 +68,17 @@ - + TN -
    Description
    T0, +T0, T1,... - TN Any typeThe arguments to make_set +The arguments to make_set
    - + Expression Semantics
    @@ -86,26 +86,26 @@ result_of::make_set<T0, T1,... TN>::type

    - Return type: A set with elements of types converted + 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
     #include <boost/fusion/sequence/generation/make_set.hpp>
     
    - + Example
    @@ -113,9 +113,9 @@
     


    -

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

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

    diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_vector.html b/doc/html/fusion/sequences/generation/metafunctions/make_vector.html index 15af0365..ef83d1f5 100644 --- a/doc/html/fusion/sequences/generation/metafunctions/make_vector.html +++ b/doc/html/fusion/sequences/generation/metafunctions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -26,14 +26,14 @@
    make_vector
    - + Description

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

    - + Synopsis
    @@ -41,18 +41,18 @@
     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
    @@ -67,17 +67,17 @@ - + TN -
    Description
    T0, +T0, T1,... - TN Any typeTemplate arguments to make_vector +Template arguments to make_vector
    - + Expression Semantics
    @@ -85,22 +85,22 @@ result_of::make_vector<T0, T1,... TN>::type

    - Return type: A vector with elements of types + 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
     #include <boost/fusion/sequence/generation/make_list.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html b/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html
    index e310bfac..bfe44947 100644
    --- a/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html
    +++ b/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html
    @@ -3,7 +3,7 @@
     
     vector_tie
     
    -
    +
     
     
     
    @@ -26,14 +26,14 @@
     
     
    - + Description

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

    - + Synopsis
    @@ -41,18 +41,18 @@
     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
    @@ -67,17 +67,17 @@ - + TN -
    Description
    T0, +T0, T1,... - TN Any typeThe arguments to vector_tie +The arguments to vector_tie
    - + Expression Semantics
    @@ -85,21 +85,21 @@ 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
     #include <boost/fusion/sequence/generation/vector_tie.hpp>
     
    - + Example
    diff --git a/doc/html/fusion/sequences/intrinsics.html b/doc/html/fusion/sequences/intrinsics.html
    index bb758b81..9df6eb40 100644
    --- a/doc/html/fusion/sequences/intrinsics.html
    +++ b/doc/html/fusion/sequences/intrinsics.html
    @@ -3,7 +3,7 @@
     
     Intrinsics
     
    -
    +
     
     
     
    @@ -27,7 +27,34 @@
     Intrinsics
     
     

    Intrinsics form the essential interface of Fusion _sequence_s. @@ -36,11 +63,11 @@ Intrinsic functions, unlike Algorithms, are not generic across the full Sequence repertoire. They need to be implemented for each Fusion Sequence - [5] + [5] .

    - + Header

    @@ -48,7 +75,7 @@
     


    -

    [5] +

    [5] In practice, many of intrinsic functions have default implementations that will work in majority of cases

    diff --git a/doc/html/fusion/sequences/intrinsics/functions.html b/doc/html/fusion/sequences/intrinsics/functions.html index 37df07d8..640d4768 100644 --- a/doc/html/fusion/sequences/intrinsics/functions.html +++ b/doc/html/fusion/sequences/intrinsics/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/sequences/intrinsics/functions/at.html b/doc/html/fusion/sequences/intrinsics/functions/at.html index 7123339a..eda46105 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/at.html +++ b/doc/html/fusion/sequences/intrinsics/functions/at.html @@ -3,7 +3,7 @@ at - + @@ -26,27 +26,27 @@
    - + Description

    Returns the N-th element from the beginning of the sequence.

    - + 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
    @@ -62,7 +62,7 @@ - + - + @@ -81,7 +81,7 @@
    seqseq Model of Random @@ -71,7 +71,7 @@ The sequence we wish to investigate.
    NN An MPL integral constant
    - + Expression Semantics
    @@ -89,38 +89,38 @@ 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
     #include <boost/fusion/sequence/intrinsic/at.hpp>
     
    - + 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/sequences/intrinsics/functions/at_c.html b/doc/html/fusion/sequences/intrinsics/functions/at_c.html index 93434c67..735dbda9 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/at_c.html +++ b/doc/html/fusion/sequences/intrinsics/functions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -26,27 +26,27 @@
    at_c
    - + Description

    Returns the N-th element from the beginning of the sequence.

    - + 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
    @@ -62,7 +62,7 @@ - + - +
    seqseq Model of Random @@ -71,7 +71,7 @@ The sequence we wish to investigate.
    NN An integral constant An index from the beginning of @@ -80,7 +80,7 @@
    - + Expression Semantics
    @@ -88,39 +88,39 @@ 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
     #include <boost/fusion/sequence/intrinsic/at_c.hpp>
     
    - + 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/sequences/intrinsics/functions/at_key.html b/doc/html/fusion/sequences/intrinsics/functions/at_key.html index d534ed7c..34f4c4ba 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/at_key.html +++ b/doc/html/fusion/sequences/intrinsics/functions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -26,27 +26,27 @@
    at_key
    - + Description

    Returns the element associated with a Key from the sequence.

    - + 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
    @@ -62,7 +62,7 @@ - + - + @@ -79,7 +79,7 @@
    seqseq Model of Associative @@ -71,7 +71,7 @@ The sequence we wish to investigate.
    KeyKey Any type The queried key.
    - + Expression Semantics
    @@ -87,34 +87,34 @@ 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
     #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     
    - + 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/sequences/intrinsics/functions/back.html b/doc/html/fusion/sequences/intrinsics/functions/back.html index 31022b75..32d6d6dd 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/back.html +++ b/doc/html/fusion/sequences/intrinsics/functions/back.html @@ -3,7 +3,7 @@ back - + @@ -26,27 +26,27 @@
    back
    - + Description

    Returns the last element in the sequence.

    - + 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
    @@ -61,7 +61,7 @@ - +
    Description
    seqseq Model of Bidirectional @@ -71,7 +71,7 @@
    - + Expression Semantics
    @@ -79,34 +79,34 @@ 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
     #include <boost/fusion/sequence/intrinsic/back.hpp>
     
    - + 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/sequences/intrinsics/functions/begin.html b/doc/html/fusion/sequences/intrinsics/functions/begin.html index 2a42fb86..c2a0336d 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/begin.html +++ b/doc/html/fusion/sequences/intrinsics/functions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -26,27 +26,27 @@
    begin
    - + Description

    Returns an iterator pointing to the first element in the sequence.

    - + 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
    @@ -61,7 +61,7 @@ - +
    Description
    seqseq Model of Forward @@ -72,7 +72,7 @@
    - + Expression Semantics
    @@ -80,41 +80,41 @@ begin(seq);

    - Return type: Return type: Forward - Iterator if seq + Iterator if seq is a Forward Sequence else, Bidirectional - Iterator if seq + Iterator if seq is a Bidirectional Sequence else, Random - Access Iterator if seq + 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
     #include <boost/fusion/sequence/intrinsic/begin.hpp>
     
    - + 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/sequences/intrinsics/functions/empty.html b/doc/html/fusion/sequences/intrinsics/functions/empty.html index 1c2608c2..18dae581 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/empty.html +++ b/doc/html/fusion/sequences/intrinsics/functions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -26,25 +26,25 @@
    empty
    - + 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
     template <typename Sequence>
    -typename result_of::empty<Sequence>::type
    +typename result_of::empty<Sequence>::type
     empty(Sequence const& seq);
     
    - + Parameters
    @@ -59,7 +59,7 @@ - +
    Description
    seqseq Model of Forward @@ -69,7 +69,7 @@
    - + Expression Semantics
    @@ -77,25 +77,25 @@ 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
     #include <boost/fusion/sequence/intrinsic/empty.hpp>
     
    - + 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/sequences/intrinsics/functions/end.html b/doc/html/fusion/sequences/intrinsics/functions/end.html index b5d4fa03..e6e72d93 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/end.html +++ b/doc/html/fusion/sequences/intrinsics/functions/end.html @@ -3,7 +3,7 @@ end - + @@ -26,27 +26,27 @@
    end
    - + Description

    Returns an iterator pointing to one element past the end of the sequence.

    - + 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
    @@ -61,7 +61,7 @@ - +
    Description
    seqseq Model of Forward @@ -72,7 +72,7 @@
    - + Expression Semantics
    @@ -80,41 +80,41 @@ end(seq);

    - Return type: Return type: Forward - Iterator if seq + Iterator if seq is a Forward Sequence else, Bidirectional - Iterator if seq + Iterator if seq is a Bidirectional Sequence else, Random - Access Iterator if seq + 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
     #include <boost/fusion/sequence/intrinsic/end.hpp>
     
    - + 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/sequences/intrinsics/functions/front.html b/doc/html/fusion/sequences/intrinsics/functions/front.html index 04b9c2ad..0d49a4a9 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/front.html +++ b/doc/html/fusion/sequences/intrinsics/functions/front.html @@ -3,7 +3,7 @@ front - + @@ -26,27 +26,27 @@
    front
    - + Description

    Returns the first element in the sequence.

    - + 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
    @@ -61,7 +61,7 @@ - +
    Description
    seqseq Model of Forward @@ -71,7 +71,7 @@
    - + Expression Semantics
    @@ -79,34 +79,34 @@ 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
     #include <boost/fusion/sequence/intrinsic/front.hpp>
     
    - + 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/sequences/intrinsics/functions/has_key.html b/doc/html/fusion/sequences/intrinsics/functions/has_key.html index a6563e3d..7212017e 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/has_key.html +++ b/doc/html/fusion/sequences/intrinsics/functions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -26,26 +26,26 @@
    has_key
    - + 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
     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
    @@ -61,7 +61,7 @@ - + - + @@ -78,7 +78,7 @@
    seqseq Model of Associative @@ -70,7 +70,7 @@ The sequence we wish to investigate.
    KeyKey Any type The queried key.
    - + Expression Semantics
    @@ -86,25 +86,25 @@ 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
     #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     
    - + 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/sequences/intrinsics/functions/size.html b/doc/html/fusion/sequences/intrinsics/functions/size.html index c6d4a132..000c6e4d 100644 --- a/doc/html/fusion/sequences/intrinsics/functions/size.html +++ b/doc/html/fusion/sequences/intrinsics/functions/size.html @@ -3,7 +3,7 @@ size - + @@ -26,24 +26,24 @@
    size
    - + Description

    - Returns a type convertible to int + Returns a type convertible to int that evaluates the number of elements in the sequence.

    - + Synopsis
     template <typename Sequence>
    -typename result_of::size<Sequence>::type
    +typename result_of::size<Sequence>::type
     size(Sequence const& seq);
     
    - + Parameters
    @@ -58,7 +58,7 @@ - +
    Description
    seqseq Model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,25 +76,25 @@ 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
     #include <boost/fusion/sequence/intrinsic/size.hpp>
     
    - + 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/sequences/intrinsics/metafunctions.html b/doc/html/fusion/sequences/intrinsics/metafunctions.html index eafb7ed6..f7b21dc8 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/at.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at.html index 2e2c610a..d592b28a 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/at.html @@ -3,7 +3,7 @@ at - + @@ -26,16 +26,16 @@
    at
    - + Description

    - Returns the result type of at - [6] + Returns the result type of at + [6] .

    - + Synopsis
    @@ -48,7 +48,7 @@
     };
     
    -

    Table 1.25. Parameters

    +

    Table 1.25. Parameters

    @@ -62,7 +62,7 @@ - + - + + MPL + Integral Constant +
    SeqSeq A model of Forward @@ -71,16 +71,18 @@ Argument sequence
    NN An - MPL Integral Constant Index of element
    - + Expression Semantics
    @@ -88,34 +90,34 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/at.hpp>
     
    - + 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&>));
     


    -

    [6] - 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 +

    [6] + 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/sequences/intrinsics/metafunctions/at_c.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html index 134b681f..7a33a522 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -26,16 +26,16 @@
    at_c
    - + Description

    - Returns the result type of at_c - [7] + Returns the result type of at_c + [7] .

    - + Synopsis
    @@ -48,7 +48,7 @@
     };
     
    -

    Table 1.26. Parameters

    +

    Table 1.26. Parameters

    @@ -62,7 +62,7 @@ - + - + @@ -80,7 +80,7 @@
    SeqSeq A model of Forward @@ -71,7 +71,7 @@ Argument sequence
    MM Positive integer index Index of element
    - + Expression Semantics
    @@ -88,34 +88,34 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/at.hpp>
     
    - + 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&>));
     


    -

    [7] - 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 +

    [7] + 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/sequences/intrinsics/metafunctions/at_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html index abbe3708..c1f395fe 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -26,16 +26,16 @@
    at_key
    - + Description

    - Returns the result type of at_key - [8] + Returns the result type of at_key + [8] .

    - + Synopsis
    @@ -48,7 +48,7 @@
     };
     
    -

    Table 1.30. Parameters

    +

    Table 1.30. Parameters

    @@ -62,7 +62,7 @@ - + - + @@ -80,7 +80,7 @@
    SeqSeq A model of Forward @@ -71,7 +71,7 @@ Argument sequence
    KeyKey Any type Key type
    - + Expression Semantics
    @@ -88,36 +88,36 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     
    - + 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&>));
     


    -

    [8] - 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 +

    [8] + 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/sequences/intrinsics/metafunctions/back.html b/doc/html/fusion/sequences/intrinsics/metafunctions/back.html index 3e975356..9641d60a 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/back.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/back.html @@ -3,7 +3,7 @@ back - + @@ -26,14 +26,14 @@
    back
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.23. Parameters

    +

    Table 1.23. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,26 +76,26 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/back.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/begin.html b/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html index 34131c86..72dbf953 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -26,14 +26,14 @@
    begin
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.19. Parameters

    +

    Table 1.19. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,28 +76,28 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/begin.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/empty.html b/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html index e00ffed1..8384a286 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -26,14 +26,14 @@
    empty
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.21. Parameters

    +

    Table 1.21. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,30 +76,31 @@ result_of::empty<Seq>::type

    - Return type: An MPL Integral Constant + 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/empty.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/end.html b/doc/html/fusion/sequences/intrinsics/metafunctions/end.html index b5e57e11..0c9aa1db 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/end.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/end.html @@ -3,7 +3,7 @@ end - + @@ -26,14 +26,14 @@
    end
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.20. Parameters

    +

    Table 1.20. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,28 +76,28 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/end.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/front.html b/doc/html/fusion/sequences/intrinsics/metafunctions/front.html index 8890c856..d742ebb8 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/front.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/front.html @@ -3,7 +3,7 @@ front - + @@ -26,14 +26,14 @@
    front
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.22. Parameters

    +

    Table 1.22. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,27 +76,27 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/front.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/has_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html index a15bd554..f999b484 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -26,14 +26,14 @@
    has_key
    - + Description

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

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.29. Parameters

    +

    Table 1.29. Parameters

    @@ -60,7 +60,7 @@ - + - + @@ -78,7 +78,7 @@
    SeqSeq A model of Forward @@ -69,7 +69,7 @@ Argument sequence
    KeyKey Any type Key type
    - + Expression Semantics
    @@ -86,29 +86,30 @@ result_of::has_key<Seq, Key>::type

    - Return type: An MPL Integral Constant. + 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/size.html b/doc/html/fusion/sequences/intrinsics/metafunctions/size.html index 57a1e6d6..d15ddd94 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/size.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/size.html @@ -3,7 +3,7 @@ size - + @@ -26,14 +26,14 @@
    size
    - + Description

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

    - + Synopsis
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.24. Parameters

    +

    Table 1.24. Parameters

    @@ -57,7 +57,7 @@ - +
    Description
    SeqSeq A model of Forward @@ -68,7 +68,7 @@
    - + Expression Semantics
    @@ -76,26 +76,27 @@ result_of::size<Seq>::type

    - Return type: An MPL Integral Constant. + Return type: An MPL + Integral Constant.

    - Semantics: Returns the number of elements - in Seq. + Semantics: Returns the number of elements + in Seq.

    - + Header
     #include <boost/fusion/sequence/intrinsic/size.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/value_at.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html index 7791e45b..f872fc3d 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html @@ -3,7 +3,7 @@ value_at - + @@ -26,14 +26,14 @@
    value_at
    - + Description

    Returns the actual type at a given index from the Sequence.

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.27. Parameters

    +

    Table 1.27. Parameters

    @@ -60,7 +60,7 @@ - + - + + MPL + Integral Constant +
    SeqSeq A model of Forward @@ -69,16 +69,18 @@ Argument sequence
    NN An - MPL Integral Constant Index of element
    - + Expression Semantics
    @@ -86,26 +88,26 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/value_at.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/value_at_c.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html index e36762f4..b75eacaa 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html @@ -3,7 +3,7 @@ value_at_c - + @@ -26,14 +26,14 @@
    value_at_c
    - + Description

    Returns the actual type at a given index from the Sequence.

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.28. Parameters

    +

    Table 1.28. Parameters

    @@ -60,7 +60,7 @@ - + - + @@ -78,7 +78,7 @@
    SeqSeq A model of Forward @@ -69,7 +69,7 @@ Argument sequence
    MM Positive integer index Index of element
    - + Expression Semantics
    @@ -86,26 +86,26 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/value_at.hpp>
     
    - + 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/sequences/intrinsics/metafunctions/value_at_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html index 05e2e0cd..9982c99e 100644 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html +++ b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html @@ -3,7 +3,7 @@ value_at_key - + @@ -26,14 +26,14 @@
    value_at_key
    - + Description

    Returns the actual element type associated with a Key from the Sequence.

    - + Synopsis
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.31. Parameters

    +

    Table 1.31. Parameters

    @@ -60,7 +60,7 @@ - + - + @@ -78,7 +78,7 @@
    SeqSeq A model of Forward @@ -69,7 +69,7 @@ Argument sequence
    KeyKey Any type Key type
    - + Expression Semantics
    @@ -86,27 +86,27 @@ 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.

    - + Header
     #include <boost/fusion/sequence/intrinsic/value_at_key.hpp>
     
    - + 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/sequences/operators.html b/doc/html/fusion/sequences/operators.html index ea5ab678..141ad2c4 100644 --- a/doc/html/fusion/sequences/operators.html +++ b/doc/html/fusion/sequences/operators.html @@ -3,7 +3,7 @@ Operators - + @@ -27,7 +27,24 @@ Operators
    I/O
    +
    +
    in
    +
    out
    +
    Comparison
    +
    +
    equal
    +
    not + equal
    +
    less + than
    +
    less + than equal
    +
    greater + than
    +
    greater + than equal
    +

    These operators, like the Algorithms, diff --git a/doc/html/fusion/sequences/operators/comparison.html b/doc/html/fusion/sequences/operators/comparison.html index 7ecdfbb3..d27d86f5 100644 --- a/doc/html/fusion/sequences/operators/comparison.html +++ b/doc/html/fusion/sequences/operators/comparison.html @@ -3,7 +3,7 @@ Comparison - + @@ -39,16 +39,16 @@ than equal

    - 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
    diff --git a/doc/html/fusion/sequences/operators/comparison/equal.html b/doc/html/fusion/sequences/operators/comparison/equal.html
    index c2efb6bd..82c5dd95 100644
    --- a/doc/html/fusion/sequences/operators/comparison/equal.html
    +++ b/doc/html/fusion/sequences/operators/comparison/equal.html
    @@ -3,7 +3,7 @@
     
     equal
     
    -
    +
     
     
     
    @@ -27,14 +27,14 @@
     
     
    - + Description

    Compare two sequences for equality.

    - + Synopsis
    @@ -43,7 +43,7 @@
     operator==(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -58,8 +58,8 @@ - + @@ -68,7 +68,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -76,16 +76,16 @@ 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.

    @@ -93,30 +93,30 @@ 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
     #include <boost/fusion/sequence/comparison/equal_to.hpp>
     
    - + 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/sequences/operators/comparison/greater_than.html b/doc/html/fusion/sequences/operators/comparison/greater_than.html index 9b78fc44..3336560e 100644 --- a/doc/html/fusion/sequences/operators/comparison/greater_than.html +++ b/doc/html/fusion/sequences/operators/comparison/greater_than.html @@ -4,7 +4,7 @@ greater than - +
    - + Synopsis
    @@ -43,7 +43,7 @@
     operator>(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -58,8 +58,8 @@ - + @@ -68,7 +68,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -76,16 +76,16 @@ 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.

    @@ -93,23 +93,23 @@ compile time error.

    - Semantics: Returns b < a. + Semantics: Returns b < a.

    - + Header
     #include <boost/fusion/sequence/comparison/less_equal.hpp>
     
    - + 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/sequences/operators/comparison/greater_than_equal.html b/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html index 01d5a45a..05a8319f 100644 --- a/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html +++ b/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html @@ -4,7 +4,7 @@ greater than equal - +
    - + Synopsis
    @@ -42,7 +42,7 @@
     operator>=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -57,8 +57,8 @@ - + @@ -67,7 +67,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -75,16 +75,16 @@ 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.

    @@ -92,23 +92,23 @@ compile time error.

    - Semantics: Returns !(a < b). + Semantics: Returns !(a < b).

    - + Header
     #include <boost/fusion/sequence/comparison/greater_equal.hpp>
     
    - + 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/sequences/operators/comparison/less_than.html b/doc/html/fusion/sequences/operators/comparison/less_than.html index f75e097d..b002a5cc 100644 --- a/doc/html/fusion/sequences/operators/comparison/less_than.html +++ b/doc/html/fusion/sequences/operators/comparison/less_than.html @@ -4,7 +4,7 @@ less than - +
    - + Synopsis
    @@ -43,7 +43,7 @@
     operator<(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -58,8 +58,8 @@ - + @@ -68,7 +68,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -76,16 +76,16 @@ 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.

    @@ -93,25 +93,25 @@ compile time error.

    - Semantics: Returns the lexicographical - comparison of between a - and b. + Semantics: Returns the lexicographical + comparison of between a + and b.

    - + Header
     #include <boost/fusion/sequence/comparison/less.hpp>
     
    - + 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/sequences/operators/comparison/less_than_equal.html b/doc/html/fusion/sequences/operators/comparison/less_than_equal.html index ad036f2a..1e149368 100644 --- a/doc/html/fusion/sequences/operators/comparison/less_than_equal.html +++ b/doc/html/fusion/sequences/operators/comparison/less_than_equal.html @@ -4,7 +4,7 @@ less than equal - +
    - + Synopsis
    @@ -43,7 +43,7 @@
     operator<=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -58,8 +58,8 @@ - + @@ -68,7 +68,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -76,16 +76,16 @@ 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.

    @@ -93,23 +93,23 @@ compile time error.

    - Semantics: Returns !(b < a). + Semantics: Returns !(b < a).

    - + Header
     #include <boost/fusion/sequence/comparison/less_equal.hpp>
     
    - + 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/sequences/operators/comparison/not_equal.html b/doc/html/fusion/sequences/operators/comparison/not_equal.html index bcd67051..7f96e9ed 100644 --- a/doc/html/fusion/sequences/operators/comparison/not_equal.html +++ b/doc/html/fusion/sequences/operators/comparison/not_equal.html @@ -4,7 +4,7 @@ not equal - + @@ -33,7 +33,7 @@ Compare two sequences for inequality.

    - + Synopsis
    @@ -42,7 +42,7 @@
     operator!=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -57,8 +57,8 @@ - + @@ -67,7 +67,7 @@
    Description
    a, - ba, + b Instances of Sequence
    - + Expression Semantics
    @@ -75,16 +75,16 @@ 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.

    @@ -92,25 +92,25 @@ compile time error.

    - Semantics: + Semantics:

    Returns !(a == b).

    - + Header
     #include <boost/fusion/sequence/comparison/not_equal_to.hpp>
     
    - + 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/sequences/operators/i_o.html b/doc/html/fusion/sequences/operators/i_o.html
    index 9e39d5d4..c86d5c97 100644
    --- a/doc/html/fusion/sequences/operators/i_o.html
    +++ b/doc/html/fusion/sequences/operators/i_o.html
    @@ -3,7 +3,7 @@
     
     I/O
     
    -
    +
     
     
     
    @@ -30,25 +30,25 @@
     
    out

    - The I/O operators: << - and >> work generically - on all Fusion sequences. The global operator<< has been overloaded for generic + 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>> + 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. + from generic input streams by recursively calling operator>> for each element.

    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 as: (1.0 2 Howdy folks!) + outputs the vector as: (1.0 2 Howdy folks!)

    The library defines three manipulators for changing the default behavior: @@ -56,23 +56,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.

    @@ -82,12 +82,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:

    @@ -97,8 +97,8 @@
               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(':');
    @@ -106,16 +106,16 @@
     

    reads the data into the _vector_s - i and j. + i and j.

    Note that extracting _sequence_s - with std::string or C-style string elements does + with std::string or C-style string elements does not generally work, since the streamed Sequence representation may not be unambiguously parseable.

    - + Header
    diff --git a/doc/html/fusion/sequences/operators/i_o/in.html b/doc/html/fusion/sequences/operators/i_o/in.html
    index 6920479a..6bf497f7 100644
    --- a/doc/html/fusion/sequences/operators/i_o/in.html
    +++ b/doc/html/fusion/sequences/operators/i_o/in.html
    @@ -3,7 +3,7 @@
     
     in
     
    -
    +
     
     
     
    @@ -26,7 +26,7 @@
     
     
    - + Description

    @@ -34,7 +34,7 @@ stream.

    - + Synopsis
    @@ -43,7 +43,7 @@
     operator>>(IStream& is, Sequence& seq);
     
    - + Parameters
    @@ -73,7 +73,7 @@
    - + Expression Semantics
    @@ -81,26 +81,26 @@ 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
     #include <boost/fusion/sequence/io/in.hpp>
     
    - + Example
    -vector<int, std::string, char> v;
    +vector<int, std::string, char> v;
     std::cin >> v;
     
    diff --git a/doc/html/fusion/sequences/operators/i_o/out.html b/doc/html/fusion/sequences/operators/i_o/out.html index 03cab0ab..10ddfd63 100644 --- a/doc/html/fusion/sequences/operators/i_o/out.html +++ b/doc/html/fusion/sequences/operators/i_o/out.html @@ -3,7 +3,7 @@ out - + @@ -26,7 +26,7 @@
    - + Description

    @@ -34,7 +34,7 @@ stream.

    - + Synopsis
    @@ -43,7 +43,7 @@
     operator<<(OStream& os, Sequence& seq);
     
    - + Parameters
    @@ -73,7 +73,7 @@
    - + Expression Semantics
    @@ -81,26 +81,26 @@ 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
     #include <boost/fusion/sequence/io/out.hpp>
     
    - + 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/sequences/views.html b/doc/html/fusion/sequences/views.html index c13c7c05..d7542b79 100644 --- a/doc/html/fusion/sequences/views.html +++ b/doc/html/fusion/sequences/views.html @@ -3,7 +3,7 @@ Views - + @@ -44,7 +44,7 @@ very cheap to copy and be passed around by value.

    - + Header

    diff --git a/doc/html/fusion/sequences/views/filter_view.html b/doc/html/fusion/sequences/views/filter_view.html
    index 3e68c60b..355cfcf9 100644
    --- a/doc/html/fusion/sequences/views/filter_view.html
    +++ b/doc/html/fusion/sequences/views/filter_view.html
    @@ -3,7 +3,7 @@
     
     filter_view
     
    -
    +
     
     
     
    @@ -26,25 +26,25 @@
     
     
    - + 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
     #include <boost/fusion/sequence/view/filter_view.hpp>
     
    - + Synopsis
    @@ -52,7 +52,7 @@
     struct filter_view;
     
    - + Template parameters
    @@ -69,7 +69,7 @@
    - + - +
    SequenceSequence A Forward @@ -78,16 +78,16 @@  
    PredPred Unary - Metafunction returning an mpl::bool_ + Metafunction returning an mpl::bool_  
    - + Model of
    - + Expression Semantics
    @@ -134,30 +134,30 @@ -F(s) +F(s) Creates - a filter_view given - a sequence, s. + a filter_view given + a sequence, s. -F(f) +F(f) Copy - constructs a filter_view - from another filter_view, - f. + constructs a filter_view + from another filter_view, + f. -f = - f2 +f = + f2 Assigns - to a filter_view, - f, from another - filter_view, f2. + to a filter_view, + f, from another + filter_view, f2.
    - + Example
    @@ -165,7 +165,7 @@
     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/sequences/views/iterator_range.html b/doc/html/fusion/sequences/views/iterator_range.html
    index d53044a3..70bf3661 100644
    --- a/doc/html/fusion/sequences/views/iterator_range.html
    +++ b/doc/html/fusion/sequences/views/iterator_range.html
    @@ -3,7 +3,7 @@
     
     iterator_range
     
    -
    +
     
     
     
    @@ -26,22 +26,22 @@
     
     
    - + Description

    - iterator_range presents + iterator_range presents a sub-range of its underlying sequence delimited by a pair of iterators.

    - + Header
     #include <boost/fusion/sequence/view/iterator_range.hpp>
     
    - + Synopsis
    @@ -49,7 +49,7 @@
     struct iterator_range;
     
    - + Template parameters
    @@ -66,14 +66,14 @@ -First +First A fusion Iterator   -Last +Last A fusion Iterator @@ -82,7 +82,7 @@
    - + Model of
    - + Expression Semantics
    @@ -131,43 +131,43 @@ -IR(f, l) +IR(f, l) Creates - an iterator_range - given iterators, f - and l. + an iterator_range + given iterators, f + and l. -IR(ir) +IR(ir) Copy - constructs an iterator_range - from another iterator_range, - ir. + constructs an iterator_range + from another iterator_range, + ir. -ir = - ir2 +ir = + ir2 Assigns - to a iterator_range, - ir, from another - iterator_range, - ir2. + to a iterator_range, + ir, from another + iterator_range, + ir2.
    - + 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/sequences/views/joint_view.html b/doc/html/fusion/sequences/views/joint_view.html
    index fd753d3b..81199a6c 100644
    --- a/doc/html/fusion/sequences/views/joint_view.html
    +++ b/doc/html/fusion/sequences/views/joint_view.html
    @@ -3,7 +3,7 @@
     
     joint_view
     
    -
    +
     
     
     
    @@ -26,22 +26,22 @@
     
     
    - + Description

    - joint_view presents a view + joint_view presents a view which is a concatenation of two sequences.

    - + Header
     #include <boost/fusion/sequence/view/joint_view.hpp>
     
    - + Synopsis
    @@ -49,7 +49,7 @@
     struct joint_view;
     
    - + Template parameters
    @@ -66,7 +66,7 @@ -Sequence1 +Sequence1 A Forward @@ -75,7 +75,7 @@   -Sequence2 +Sequence2 A Forward @@ -86,7 +86,7 @@
    - + Model of
    - + Expression Semantics
    @@ -135,39 +135,39 @@ -JV(s1, s2) +JV(s1, s2) Creates - a joint_view given - sequences, s1 and - s2. + a joint_view given + sequences, s1 and + s2. -JV(jv) +JV(jv) Copy - constructs a joint_view - from another joint_view, - jv. + constructs a joint_view + from another joint_view, + jv. -jv = - jv2 +jv = + jv2 Assigns - to a joint_view, - jv, from another - joint_view, jv2. + to a joint_view, + jv, from another + joint_view, jv2.
    - + 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/sequences/views/reverse_view.html b/doc/html/fusion/sequences/views/reverse_view.html index 883cd7df..e2692be0 100644 --- a/doc/html/fusion/sequences/views/reverse_view.html +++ b/doc/html/fusion/sequences/views/reverse_view.html @@ -3,7 +3,7 @@ reverse_view - + @@ -26,19 +26,19 @@

    - reverse_view presents a + 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
     #include <boost/fusion/sequence/view/reverse_view.hpp>
     
    - + Synopsis
    @@ -46,7 +46,7 @@
     struct reverse_view;
     
    - + Template parameters
    @@ -62,7 +62,7 @@ Default -Sequence +Sequence A Bidirectional @@ -72,7 +72,7 @@
    - + Model of
    - + Expression Semantics
    @@ -118,34 +118,34 @@ -RV(s) +RV(s) Creates - a unary reverse_view - given sequence, s. + a unary reverse_view + given sequence, s. -RV(rv) +RV(rv) Copy - constructs a reverse_view - from another reverse_view, - rv. + constructs a reverse_view + from another reverse_view, + rv. -rv = - rv2 +rv = + rv2 Assigns - to a reverse_view, - rv, from another - reverse_view, rv2. + to a reverse_view, + rv, from another + reverse_view, rv2.
    - + 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/sequences/views/single_view.html b/doc/html/fusion/sequences/views/single_view.html
    index fd8bb4cf..69d4fb9d 100644
    --- a/doc/html/fusion/sequences/views/single_view.html
    +++ b/doc/html/fusion/sequences/views/single_view.html
    @@ -3,7 +3,7 @@
     
     single_view
     
    -
    +
     
     
     
    @@ -26,18 +26,18 @@
     
     

    - single_view is a view into + single_view is a view into a value as a single element sequence.

    - + Header
     #include <boost/fusion/sequence/view/single_view.hpp>
     
    - + Synopsis
    @@ -45,7 +45,7 @@
     struct single_view;
     
    - + Template parameters
    @@ -61,14 +61,14 @@ Default -T +T Any type  
    - + Model of
    - + Expression Semantics
    @@ -113,30 +113,30 @@ -S(x) +S(x) Creates - a single_view from - x. + a single_view from + x. -S(s) +S(s) Copy - constructs a single_view - from another single_view, - s. + constructs a single_view + from another single_view, + s. -s = - s2 +s = + s2 Assigns - to a single_view, - s, from another - single_view, s2. + to a single_view, + s, from another + single_view, s2.
    - + Example
    diff --git a/doc/html/fusion/sequences/views/transform_view.html b/doc/html/fusion/sequences/views/transform_view.html
    index c557b852..0c956438 100644
    --- a/doc/html/fusion/sequences/views/transform_view.html
    +++ b/doc/html/fusion/sequences/views/transform_view.html
    @@ -3,7 +3,7 @@
     
     transform_view
     
    -
    +
     
     
     
    @@ -26,40 +26,40 @@
     
     

    - transform_view presents - a transformed view of its underlying sequence given a unary transform_view presents + a transformed view of its underlying sequence given a unary Polymorphic - Function Object. The transform_view + Function Object. The transform_view inherits the traversal characteristics (see Sequence Traversal Concept) of its underlying sequence.

    - + Header
     #include <boost/fusion/sequence/view/transform_view.hpp>
     
    - + Synopsis

    - Unary Version + Unary Version

     template <typename Sequence, typename F>
     struct transform_view;
     

    - Binary Version + Binary Version

     template <typename Sequence1, typename Sequence2, typename F>
     struct transform_view;
     
    - + Template parameters
    @@ -76,7 +76,7 @@ -Sequence +Sequence A Forward @@ -85,7 +85,7 @@   -Sequence1 +Sequence1 A Forward @@ -94,7 +94,7 @@   -Sequence2 +Sequence2 A Forward @@ -103,9 +103,9 @@   -F +F A - Polymorphic Function Object @@ -114,7 +114,7 @@
    - + Model of
    • @@ -131,45 +131,45 @@

      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
      -
      f
      +
      f
      - An instance of F + An instance of F
      -
      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 Semantics
      @@ -196,44 +196,44 @@ -UTV(s, f) +UTV(s, f) Creates - a unary transform_view - given sequence, s - and unary transform_view + given sequence, s + and unary Polymorphic - Function Object, f. + Function Object, f. -BTV(s1, s2, f) +BTV(s1, s2, f) Creates - a binary transform_view - given sequences, s1 - and s2 and unary - transform_view + given sequences, s1 + and s2 and unary + Polymorphic Function - Object, f. + Object, f. -TV(tv) +TV(tv) Copy - constructs a transform_view - from another transform_view, - tv. + constructs a transform_view + from another transform_view, + tv. -tv = - tv2 +tv = + tv2 Assigns - to a transform_view, - tv, from another - transform_view, - tv2. + to a transform_view, + tv, from another + transform_view, + tv2.
    - + Example
    @@ -252,7 +252,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/sequences/views/zip_view.html b/doc/html/fusion/sequences/views/zip_view.html
    index 8a53868b..28e1538c 100644
    --- a/doc/html/fusion/sequences/views/zip_view.html
    +++ b/doc/html/fusion/sequences/views/zip_view.html
    @@ -3,7 +3,7 @@
     
     zip_view
     
    -
    +
     
     
     
    @@ -26,25 +26,25 @@
     
     
    - + Description

    - zip_view presents a view + zip_view presents a view which iterates over a collection of _sequence_s - in parallel. A zip_view + in parallel. A zip_view is constructed from a Sequence of references to the component _sequence_s.

    - + Header
     #include <boost/fusion/sequence/view/zip_view.hpp>
     
    - + Synopsis
    @@ -52,7 +52,7 @@
     struct zip_view;
     
    - + Template parameters
    @@ -68,7 +68,7 @@ Default -Sequences +Sequences A Forward @@ -77,7 +77,7 @@
    - + Model of
    - + Expression Semantics
    @@ -122,36 +122,36 @@ -ZV(s) +ZV(s) Creates - a zip_view given + 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. + constructs a zip_view + from another zip_view, + zv. -zv1 = - zv2 +zv1 = + zv2 Assigns - to a zip_view, zv, from another zip_view, zv2. + to a zip_view, zv, from another zip_view, zv2.
    - + 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/fusion/support.html b/doc/html/fusion/support.html index c9eb40db..dfaeb458 100644 --- a/doc/html/fusion/support.html +++ b/doc/html/fusion/support.html @@ -3,7 +3,7 @@ Support - + diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html index d4a63a87..4046368a 100644 --- a/doc/html/fusion/support/category_of.html +++ b/doc/html/fusion/support/category_of.html @@ -3,7 +3,7 @@ category_of - + @@ -26,7 +26,7 @@

    - + Description

    @@ -36,7 +36,7 @@ Sequence Concepts).

    - + Synopsis

    @@ -50,7 +50,7 @@
     }
     

    - + Parameters

    @@ -65,14 +65,14 @@ - +
    Description
    TT Any type The type to query.

    - + Expression Semantics

    @@ -80,7 +80,7 @@ typedef traits::category_of<T>::type category;

    - Return type: + Return type:

    For Iterators, the return type is derived from one of: @@ -134,24 +134,24 @@ }}

    - Semantics: Establishes the conceptual classification + Semantics: Establishes the conceptual classification of a particular Sequence or Iterator.

    - + Header

     #include <boost/fusion/support/category_of.hpp>
     

    - + 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 962fdf50..a5b28c6a 100644 --- a/doc/html/fusion/support/deduce.html +++ b/doc/html/fusion/support/deduce.html @@ -3,7 +3,7 @@ deduce - + @@ -26,7 +26,7 @@

    - + Description

    @@ -34,19 +34,19 @@ 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

     #include <boost/fusion/support/deduce.hpp>
     

    - + Synopsis

    @@ -60,7 +60,7 @@
     }
     

    - + Example

    @@ -81,10 +81,10 @@
     }
     

    - + See also

    - + diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html index 153ad329..14960de0 100644 --- a/doc/html/fusion/support/deduce_sequence.html +++ b/doc/html/fusion/support/deduce_sequence.html @@ -3,7 +3,7 @@ deduce_sequence - + @@ -26,7 +26,7 @@

    - + Description

    @@ -39,14 +39,14 @@ original type as its argument.

    - + Header

     #include <boost/fusion/support/deduce_sequence.hpp>
     

    - + Synopsis

    @@ -60,7 +60,7 @@
     }
     

    - + Example

    @@ -75,18 +75,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

    - +
    diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html index 26d561ba..c650ee29 100644 --- a/doc/html/fusion/support/is_sequence.html +++ b/doc/html/fusion/support/is_sequence.html @@ -3,7 +3,7 @@ is_sequence - + @@ -26,18 +26,18 @@

    - + 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

    @@ -51,7 +51,7 @@
     }
     

    - + Parameters

    @@ -66,14 +66,14 @@ - +
    Description
    TT Any type The type to query.

    - + Expression Semantics

    @@ -81,32 +81,33 @@ typedef traits::is_sequence<T>::type c;

    - Return type: An MPL Boolean Constant. + 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

     #include <boost/fusion/support/is_sequence.hpp>
     

    - + 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 33e07948..08bfb18c 100644 --- a/doc/html/fusion/support/is_view.html +++ b/doc/html/fusion/support/is_view.html @@ -3,7 +3,7 @@ is_view - + @@ -26,21 +26,21 @@

    - + 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

    @@ -54,7 +54,7 @@
     }
     

    - + Parameters

    @@ -69,37 +69,38 @@ - +
    Description
    TT Any type The type to query.

    - + Expression Semantics

     typedef traits::is_view<T>::type c;
     

    - Return type: An MPL Boolean Constant. + 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

     #include <boost/fusion/support/is_view.hpp>
     

    - + Example

    @@ -108,8 +109,8 @@
     
     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 b13de593..0cd9bfc8 100644 --- a/doc/html/fusion/support/pair.html +++ b/doc/html/fusion/support/pair.html @@ -3,7 +3,7 @@ pair - + @@ -26,18 +26,18 @@

    - + 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

    @@ -61,7 +61,7 @@
     make_pair(Second const &);
     

    - + Template parameters

    @@ -88,36 +88,36 @@

    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

    @@ -131,81 +131,81 @@ - + - + - + - + + a pair given value for the second type, s. - + + constructs a pair from another pair, p2. - + + a pair, p1, from another pair, p2. - - + + - - + + - + - +
    P::first_typeP::first_type The type - of the first template parameter, F, - equivalent to result_of::first<P>::type. + of the first template parameter, F, + equivalent to result_of::first<P>::type.
    P::second_typeP::second_type The type - of the second template parameter, S, - equivalent to result_of::second<P>::type. + of the second template parameter, S, + equivalent to result_of::second<P>::type.
    P()P() Default construction.
    P(s)P(s) Construct - a pair given value for the second type, s.
    P(p2)P(p2) Copy - constructs a pair from another pair, p2.
    p = - p2p = + p2 Assigns - a pair, p1, from another pair, p2.
    make_pair<F>(s) Make a pair given the first - type, F, and a value - for the second type, s. - The second type assumes the type of s + type, F, and a value + for the second type, s. + The second type assumes the type of s
    o << - pOutput p to output stream, o.o << + pOutput p to output stream, o.
    i >> - pInput p from input stream, i.i >> + pInput p from input stream, i.
    p == - p2p == + p2 Tests two pairs for equality.
    p != - p2p != + p2 Tests two pairs for inequality.

    - + Header

     #include <boost/fusion/support/pair.hpp>
     

    - + Example

    diff --git a/doc/html/fusion/support/tag_of.html b/doc/html/fusion/support/tag_of.html
    index c9eda41b..80dd82cb 100644
    --- a/doc/html/fusion/support/tag_of.html
    +++ b/doc/html/fusion/support/tag_of.html
    @@ -3,7 +3,7 @@
     
     tag_of
     
    -
    +
     
     
     
    @@ -26,7 +26,7 @@
     
     

    - + Description

    @@ -40,7 +40,7 @@ conforming sequences.

    - + Synopsis

    @@ -54,7 +54,7 @@
     }
     

    - + Parameters

    @@ -69,42 +69,42 @@ - +
    Description
    TT Any type The type to query.

    - + 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

     #include <boost/fusion/support/tag_of.hpp>
     

    - + 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/tuples.html b/doc/html/fusion/tuples.html
    index ce036073..524c8fe7 100644
    --- a/doc/html/fusion/tuples.html
    +++ b/doc/html/fusion/tuples.html
    @@ -3,7 +3,7 @@
     
     Tuples
     
    -
    +
     
     
     
    @@ -43,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/tuples/class_template_tuple.html b/doc/html/fusion/tuples/class_template_tuple.html index 5d7b7d5a..e62eebda 100644 --- a/doc/html/fusion/tuples/class_template_tuple.html +++ b/doc/html/fusion/tuples/class_template_tuple.html @@ -3,7 +3,7 @@ Class template tuple - + @@ -44,11 +44,11 @@ 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

    @@ -60,7 +60,7 @@
     class tuple;
     

    - + Header

    diff --git a/doc/html/fusion/tuples/class_template_tuple/construction.html b/doc/html/fusion/tuples/class_template_tuple/construction.html
    index e0195acd..73e48b73 100644
    --- a/doc/html/fusion/tuples/class_template_tuple/construction.html
    +++ b/doc/html/fusion/tuples/class_template_tuple/construction.html
    @@ -3,7 +3,7 @@
     
     Construction
     
    -
    +
     
     
     
    @@ -27,7 +27,7 @@
     
     
    - + Description

    @@ -38,33 +38,33 @@ in this section.

    - + 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 element + The type of the ith element of a tuple
    -
    Pi
    +
    Pi
    - The type of the ith parameter + The type of the ith parameter
    @@ -72,48 +72,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/tuples/class_template_tuple/element_access.html b/doc/html/fusion/tuples/class_template_tuple/element_access.html index 9226232f..0de1e5fb 100644 --- a/doc/html/fusion/tuples/class_template_tuple/element_access.html +++ b/doc/html/fusion/tuples/class_template_tuple/element_access.html @@ -4,7 +4,7 @@ Element access - +Element access
    - + 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
    @@ -48,38 +48,38 @@
     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/tuples/class_template_tuple/relational_operators.html b/doc/html/fusion/tuples/class_template_tuple/relational_operators.html index 37cdfae1..d5f31ca3 100644 --- a/doc/html/fusion/tuples/class_template_tuple/relational_operators.html +++ b/doc/html/fusion/tuples/class_template_tuple/relational_operators.html @@ -4,7 +4,7 @@ Relational operators - +Relational operators
    - + Description

    @@ -38,33 +38,33 @@ Tuple provides the standard boolean relational operators.

    - + 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 element + The type of the ith element of a tuple
    -
    Pi
    +
    Pi
    - The type of the ith parameter + The type of the ith parameter
    @@ -76,23 +76,23 @@ consttuple<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,
    @@ -102,18 +102,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,
    @@ -123,16 +123,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,
    @@ -142,16 +142,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,
    @@ -161,17 +161,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,
    @@ -181,16 +181,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/tuples/class_template_tuple/tuple_creation_functions.html b/doc/html/fusion/tuples/class_template_tuple/tuple_creation_functions.html index 9a036f7a..d771af6f 100644 --- a/doc/html/fusion/tuples/class_template_tuple/tuple_creation_functions.html +++ b/doc/html/fusion/tuples/class_template_tuple/tuple_creation_functions.html @@ -4,7 +4,7 @@ Tuple creation functions - + @@ -30,17 +30,17 @@ creation functions">Tuple creation functions
    - + 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
    @@ -48,22 +48,22 @@
     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/tuples/class_template_tuple/tuple_helper_classes.html b/doc/html/fusion/tuples/class_template_tuple/tuple_helper_classes.html index fbd6ab43..889d1d44 100644 --- a/doc/html/fusion/tuples/class_template_tuple/tuple_helper_classes.html +++ b/doc/html/fusion/tuples/class_template_tuple/tuple_helper_classes.html @@ -4,7 +4,7 @@ Tuple helper classes - +Tuple helper classes
    - + Description

    @@ -40,37 +40,38 @@ tuple size, and the element types.

    - + 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 Integral Constant + 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/tuples/pairs.html b/doc/html/fusion/tuples/pairs.html index ad6503e6..62c8e6f3 100644 --- a/doc/html/fusion/tuples/pairs.html +++ b/doc/html/fusion/tuples/pairs.html @@ -3,7 +3,7 @@ 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

     tuple_size<std::pair<T1, T2> >::value
     

    - Type: An MPL Integral Constant + 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

    @@ -77,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/index.html b/doc/html/index.html index 3c3cad25..705d86ed 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,7 +3,7 @@ Chapter 1. Fusion 2.0 - + @@ -30,7 +30,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)

    @@ -136,43 +136,185 @@
    Intrinsics
    Functions
    +
    +
    begin
    +
    end
    +
    empty
    +
    front
    +
    back
    +
    size
    +
    at
    +
    at_c
    +
    has_key
    +
    at_key
    +
    Metafunctions
    +
    +
    begin
    +
    end
    +
    empty
    +
    front
    +
    back
    +
    size
    +
    at
    +
    at_c
    +
    value_at
    +
    value_at_c
    +
    has_key
    +
    at_key
    +
    value_at_key
    +
    Generation
    Functions
    +
    +
    make_list
    +
    make_cons
    +
    make_vector
    +
    make_set
    +
    make_map
    +
    Tiers
    +
    list_tie
    +
    vector_tie
    +
    MetaFunctions
    +
    +
    make_list
    +
    make_cons
    +
    make_vector
    +
    make_set
    +
    make_map
    +
    list_tie
    +
    vector_tie
    +
    Conversion
    Functions
    +
    +
    as_list
    +
    as_vector
    +
    as_set
    +
    as_map
    +
    Metafunctions
    +
    +
    as_list
    +
    as_vector
    +
    as_set
    +
    as_map
    +
    Operators
    I/O
    +
    +
    in
    +
    out
    +
    Comparison
    +
    +
    equal
    +
    not + equal
    +
    less + than
    +
    less + than equal
    +
    greater + than
    +
    greater + than equal
    +
    Algorithms
    -
    Concepts
    -
    Polymorphic Function - Object
    Iteration
    Functions
    +
    +
    fold
    +
    accumulate
    +
    for_each
    +
    Metafunctions
    +
    +
    fold
    +
    accumulate
    +
    for_each
    +
    Query
    Functions
    +
    +
    any
    +
    all
    +
    none
    +
    find
    +
    find_if
    +
    count
    +
    count_if
    +
    Metafunctions
    +
    +
    any
    +
    all
    +
    none
    +
    find
    +
    find_if
    +
    count
    +
    count_if
    +
    Transformation
    Functions
    +
    +
    filter
    +
    filter_if
    +
    transform
    +
    replace
    +
    replace_if
    +
    remove
    +
    remove_if
    +
    reverse
    +
    clear
    +
    erase
    +
    erase_key
    +
    insert
    +
    insert_range
    +
    join
    +
    zip
    +
    pop_back
    +
    pop_front
    +
    push_back
    +
    push_front
    +
    Metafunctions
    +
    +
    filter
    +
    filter_if
    +
    transform
    +
    replace
    +
    replace_if
    +
    remove
    +
    remove_if
    +
    reverse
    +
    clear
    +
    erase
    +
    erase_key
    +
    insert
    +
    insert_range
    +
    join
    +
    zip
    +
    pop_back
    +
    pop_front
    +
    push_back
    +
    push_front
    +
    Tuples
    @@ -192,6 +334,63 @@
    Pairs
    Extension
    +
    Functional
    +
    +
    Concepts
    +
    +
    Callable Object
    +
    Polymorphic Function + Object
    +
    Deferred + Callable Object
    +
    +
    Invocation
    +
    +
    Functions
    +
    +
    invoke
    +
    invoke_procedure
    +
    invoke_function_object
    +
    +
    Metafunctions
    +
    +
    invoke
    +
    invoke_procedure
    +
    invoke_function_object
    +
    +
    +
    Adapters
    +
    +
    fused
    +
    fused_procedure
    +
    fused_function_object
    +
    unfused_generic
    +
    unfused_lvalue_args
    +
    unfused_rvalue_args
    +
    unfused_typed
    +
    +
    Generation
    +
    +
    Functions
    +
    +
    make_fused
    +
    make_fused_procedure
    +
    make_fused_function_object
    +
    make_unfused_generic
    +
    make_unfused_lvalue_args
    +
    make_unfused_rvalue_args
    +
    +
    Metafunctions
    +
    +
    make_fused
    +
    make_fused_procedure
    +
    make_fused_function_object
    +
    make_unfused_generic
    +
    make_unfused_lvalue_args
    +
    make_unfused_rvalue_args
    +
    +
    +
    Notes
    Change log
    Acknowledgements
    @@ -200,7 +399,7 @@
    - +

    Last revised: February 07, 2007 at 22:55:21 GMT

    Last revised: February 15, 2007 at 23:05:16 GMT