From 58b2bccbe4acf2f1c5d93ce318a616d1649345bf Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Tue, 6 Nov 2007 11:40:27 +0000 Subject: [PATCH] Regenerating/reorganizing docs [SVN r40828] --- doc/adapted.qbk | 6 + doc/{algorithms.qbk => algorithm.qbk} | 141 +- doc/container.qbk | 1213 ++++++++++++++++- doc/extension.qbk | 3 + doc/functional.qbk | 12 + doc/fusion.qbk | 180 +-- doc/html/fusion/acknowledgements.html | 53 - doc/html/fusion/algorithms.html | 110 -- doc/html/fusion/algorithms/concepts.html | 41 - doc/html/fusion/algorithms/concepts/poly.html | 96 -- doc/html/fusion/algorithms/iteration.html | 54 - .../algorithms/iteration/functions.html | 44 - .../iteration/functions/accumulate.html | 198 --- .../algorithms/iteration/functions/fold.html | 198 --- .../iteration/functions/for_each.html | 174 --- .../algorithms/iteration/metafunctions.html | 44 - .../iteration/metafunctions/accumulate.html | 176 --- .../iteration/metafunctions/fold.html | 176 --- .../iteration/metafunctions/for_each.html | 158 --- doc/html/fusion/algorithms/query.html | 53 - .../fusion/algorithms/query/functions.html | 48 - .../algorithms/query/functions/all.html | 177 --- .../algorithms/query/functions/any.html | 177 --- .../algorithms/query/functions/count.html | 164 --- .../algorithms/query/functions/count_if.html | 163 --- .../algorithms/query/functions/find.html | 169 --- .../algorithms/query/functions/find_if.html | 173 --- .../algorithms/query/functions/none.html | 177 --- .../algorithms/query/metafunctions.html | 48 - .../algorithms/query/metafunctions/all.html | 161 --- .../algorithms/query/metafunctions/any.html | 161 --- .../algorithms/query/metafunctions/count.html | 156 --- .../query/metafunctions/count_if.html | 156 --- .../algorithms/query/metafunctions/find.html | 157 --- .../query/metafunctions/find_if.html | 159 --- .../algorithms/query/metafunctions/none.html | 161 --- .../fusion/algorithms/transformation.html | 66 - .../algorithms/transformation/functions.html | 60 - .../transformation/functions/clear.html | 140 -- .../transformation/functions/erase.html | 208 --- .../transformation/functions/erase_key.html | 167 --- .../transformation/functions/filter.html | 164 --- .../transformation/functions/filter_if.html | 167 --- .../transformation/functions/insert.html | 185 --- .../functions/insert_range.html | 188 --- .../transformation/functions/join.html | 166 --- .../transformation/functions/pop_back.html | 142 -- .../transformation/functions/pop_front.html | 142 -- .../transformation/functions/push_back.html | 163 --- .../transformation/functions/push_front.html | 164 --- .../transformation/functions/remove.html | 164 --- .../transformation/functions/remove_if.html | 166 --- .../transformation/functions/replace.html | 185 --- .../transformation/functions/replace_if.html | 194 --- .../transformation/functions/reverse.html | 141 -- .../transformation/functions/transform.html | 292 ---- .../transformation/functions/zip.html | 153 --- .../transformation/metafunctions.html | 60 - .../transformation/metafunctions/clear.html | 134 -- .../transformation/metafunctions/erase.html | 191 --- .../metafunctions/erase_key.html | 158 --- .../transformation/metafunctions/filter.html | 160 --- .../metafunctions/filter_if.html | 161 --- .../transformation/metafunctions/insert.html | 179 --- .../metafunctions/insert_range.html | 181 --- .../transformation/metafunctions/join.html | 93 -- .../metafunctions/pop_back.html | 138 -- .../metafunctions/pop_front.html | 138 -- .../metafunctions/push_back.html | 159 --- .../metafunctions/push_front.html | 159 --- .../transformation/metafunctions/remove.html | 160 --- .../metafunctions/remove_if.html | 161 --- .../transformation/metafunctions/replace.html | 157 --- .../metafunctions/replace_if.html | 178 --- .../transformation/metafunctions/reverse.html | 137 -- .../metafunctions/transform.html | 292 ---- .../transformation/metafunctions/zip.html | 100 -- doc/html/fusion/change_log.html | 55 - doc/html/fusion/extension.html | 536 -------- doc/html/fusion/functional.html | 165 --- doc/html/fusion/functional/adapters.html | 52 - .../fusion/functional/adapters/fused.html | 249 ---- .../adapters/fused_function_object.html | 272 ---- .../functional/adapters/fused_procedure.html | 269 ---- .../functional/adapters/unfused_generic.html | 298 ---- .../adapters/unfused_lvalue_args.html | 266 ---- .../adapters/unfused_rvalue_args.html | 266 ---- .../functional/adapters/unfused_typed.html | 347 ----- doc/html/fusion/functional/concepts.html | 48 - .../fusion/functional/concepts/callable.html | 64 - .../functional/concepts/def_callable.html | 146 -- doc/html/fusion/functional/concepts/poly.html | 160 --- .../functional/concepts/reg_callable.html | 141 -- doc/html/fusion/functional/generation.html | 43 - .../functional/generation/functions.html | 54 - .../generation/functions/mk_fused.html | 158 --- .../generation/functions/mk_fused_fobj.html | 174 --- .../generation/functions/mk_fused_proc.html | 154 --- .../functions/mk_unfused_genrc.html | 181 --- .../functions/mk_unfused_lvargs.html | 172 --- .../functions/mk_unfused_rvargs.html | 170 --- .../functional/generation/metafunctions.html | 55 - .../generation/metafunctions/mk_fused.html | 79 -- .../metafunctions/mk_fused_fobj.html | 80 -- .../metafunctions/mk_fused_proc.html | 80 -- .../metafunctions/mk_unfused_genrc.html | 80 -- .../metafunctions/mk_unfused_lvargs.html | 80 -- .../metafunctions/mk_unfused_rvargs.html | 79 -- doc/html/fusion/functional/invocation.html | 44 - .../functional/invocation/functions.html | 46 - .../invocation/functions/invoke.html | 192 --- .../invocation/functions/invoke_fobj.html | 209 --- .../invocation/functions/invoke_proc.html | 201 --- .../functional/invocation/metafunctions.html | 47 - .../invocation/metafunctions/invoke.html | 73 - .../invocation/metafunctions/invoke_fobj.html | 78 -- .../invocation/metafunctions/invoke_proc.html | 78 -- doc/html/fusion/introduction.html | 141 -- doc/html/fusion/iterators.html | 94 -- doc/html/fusion/iterators/concepts.html | 61 - .../concepts/bidirectional_iterator.html | 320 ----- .../iterators/concepts/forward_iterator.html | 577 -------- .../concepts/random_access_iterator.html | 297 ---- doc/html/fusion/iterators/functions.html | 53 - .../fusion/iterators/functions/advance.html | 161 --- .../fusion/iterators/functions/advance_c.html | 160 --- .../fusion/iterators/functions/deref.html | 137 -- .../fusion/iterators/functions/distance.html | 135 -- doc/html/fusion/iterators/functions/next.html | 137 -- .../fusion/iterators/functions/prior.html | 136 -- doc/html/fusion/iterators/metafunctions.html | 50 - .../iterators/metafunctions/advance.html | 165 --- .../iterators/metafunctions/advance_c.html | 164 --- .../fusion/iterators/metafunctions/deref.html | 143 -- .../iterators/metafunctions/distance.html | 143 -- .../iterators/metafunctions/equal_to.html | 141 -- .../fusion/iterators/metafunctions/next.html | 138 -- .../fusion/iterators/metafunctions/prior.html | 141 -- .../iterators/metafunctions/value_of.html | 141 -- doc/html/fusion/iterators/operators.html | 52 - .../operators/operator_equality.html | 129 -- .../operators/operator_inequality.html | 125 -- .../operators/operator_unary_star.html | 141 -- doc/html/fusion/notes.html | 257 ---- doc/html/fusion/organization.html | 205 --- doc/html/fusion/preface.html | 226 --- doc/html/fusion/quick_start.html | 261 ---- doc/html/fusion/references.html | 68 - doc/html/fusion/sequences.html | 115 -- doc/html/fusion/sequences/adapted.html | 73 - .../sequences/adapted/boost__array.html | 80 -- .../sequences/adapted/boost__tuple.html | 76 -- .../sequences/adapted/boost__variant.html | 80 -- .../sequences/adapted/mpl_sequence.html | 96 -- .../fusion/sequences/adapted/std__pair.html | 79 -- doc/html/fusion/sequences/concepts.html | 81 -- .../concepts/associative_sequence.html | 328 ----- .../concepts/bidirectional_sequence.html | 344 ----- .../sequences/concepts/forward_sequence.html | 471 ------- .../concepts/random_access_sequence.html | 373 ----- doc/html/fusion/sequences/containers.html | 59 - .../fusion/sequences/containers/cons.html | 321 ----- .../fusion/sequences/containers/list.html | 289 ---- doc/html/fusion/sequences/containers/map.html | 278 ---- doc/html/fusion/sequences/containers/set.html | 270 ---- .../fusion/sequences/containers/vector.html | 300 ---- doc/html/fusion/sequences/conversion.html | 54 - .../sequences/conversion/functions.html | 45 - .../conversion/functions/as_list.html | 133 -- .../conversion/functions/as_map.html | 140 -- .../conversion/functions/as_set.html | 137 -- .../conversion/functions/as_vector.html | 133 -- .../sequences/conversion/metafunctions.html | 45 - .../conversion/metafunctions/as_list.html | 129 -- .../conversion/metafunctions/as_map.html | 136 -- .../conversion/metafunctions/as_set.html | 133 -- .../conversion/metafunctions/as_vector.html | 129 -- doc/html/fusion/sequences/generation.html | 53 - .../sequences/generation/functions.html | 50 - .../generation/functions/list_tie.html | 144 -- .../generation/functions/make_cons.html | 163 --- .../generation/functions/make_list.html | 149 -- .../generation/functions/make_map.html | 191 --- .../generation/functions/make_set.html | 161 --- .../generation/functions/make_vector.html | 149 -- .../generation/functions/map_tie.html | 170 --- .../sequences/generation/functions/tiers.html | 101 -- .../generation/functions/vector_tie.html | 144 -- .../sequences/generation/metafunctions.html | 49 - .../generation/metafunctions/list_tie.html | 141 -- .../generation/metafunctions/make_cons.html | 150 -- .../generation/metafunctions/make_list.html | 142 -- .../generation/metafunctions/make_map.html | 185 --- .../generation/metafunctions/make_set.html | 154 --- .../generation/metafunctions/make_vector.html | 142 -- .../generation/metafunctions/map_tie.html | 166 --- .../generation/metafunctions/vector_tie.html | 141 -- doc/html/fusion/sequences/intrinsics.html | 67 - .../sequences/intrinsics/functions.html | 52 - .../sequences/intrinsics/functions/at.html | 169 --- .../sequences/intrinsics/functions/at_c.html | 169 --- .../intrinsics/functions/at_key.html | 164 --- .../sequences/intrinsics/functions/back.html | 145 -- .../sequences/intrinsics/functions/begin.html | 151 -- .../sequences/intrinsics/functions/empty.html | 134 -- .../sequences/intrinsics/functions/end.html | 151 -- .../sequences/intrinsics/functions/front.html | 145 -- .../intrinsics/functions/has_key.html | 154 --- .../sequences/intrinsics/functions/size.html | 133 -- .../sequences/intrinsics/functions/swap.html | 135 -- .../sequences/intrinsics/metafunctions.html | 55 - .../intrinsics/metafunctions/at.html | 166 --- .../intrinsics/metafunctions/at_c.html | 165 --- .../intrinsics/metafunctions/at_key.html | 167 --- .../intrinsics/metafunctions/back.html | 133 -- .../intrinsics/metafunctions/begin.html | 135 -- .../intrinsics/metafunctions/empty.html | 138 -- .../intrinsics/metafunctions/end.html | 135 -- .../intrinsics/metafunctions/front.html | 134 -- .../intrinsics/metafunctions/has_key.html | 158 --- .../intrinsics/metafunctions/size.html | 135 -- .../intrinsics/metafunctions/swap.html | 124 -- .../intrinsics/metafunctions/value_at.html | 155 --- .../intrinsics/metafunctions/value_at_c.html | 154 --- .../metafunctions/value_at_key.html | 155 --- doc/html/fusion/sequences/operators.html | 48 - .../sequences/operators/comparison.html | 68 - .../sequences/operators/comparison/equal.html | 154 --- .../operators/comparison/greater_than.html | 148 -- .../comparison/greater_than_equal.html | 147 -- .../operators/comparison/less_than.html | 150 -- .../operators/comparison/less_than_equal.html | 148 -- .../operators/comparison/not_equal.html | 150 -- doc/html/fusion/sequences/operators/i_o.html | 135 -- .../fusion/sequences/operators/i_o/in.html | 151 -- .../fusion/sequences/operators/i_o/out.html | 150 -- doc/html/fusion/sequences/views.html | 64 - .../fusion/sequences/views/filter_view.html | 244 ---- .../sequences/views/iterator_range.html | 258 ---- .../fusion/sequences/views/joint_view.html | 245 ---- .../fusion/sequences/views/reverse_view.html | 216 --- .../fusion/sequences/views/single_view.html | 208 --- .../sequences/views/transform_view.html | 383 ------ doc/html/fusion/sequences/views/zip_view.html | 230 ---- doc/html/fusion/support.html | 51 - doc/html/fusion/support/category_of.html | 192 --- doc/html/fusion/support/deduce.html | 99 -- doc/html/fusion/support/deduce_sequence.html | 101 -- doc/html/fusion/support/is_sequence.html | 146 -- doc/html/fusion/support/is_view.html | 150 -- doc/html/fusion/support/pair.html | 337 ----- doc/html/fusion/support/tag_of.html | 146 -- doc/html/fusion/tuples.html | 65 - .../fusion/tuples/class_template_tuple.html | 80 -- .../class_template_tuple/construction.html | 130 -- .../class_template_tuple/element_access.html | 95 -- .../relational_operators.html | 207 --- .../tuple_creation_functions.html | 80 -- .../tuple_helper_classes.html | 87 -- doc/html/fusion/tuples/pairs.html | 108 -- doc/organization.qbk | 5 +- doc/quick_start.qbk | 2 + doc/sequence.qbk | 1191 +--------------- doc/support.qbk | 7 + doc/view.qbk | 8 + 265 files changed, 1465 insertions(+), 39759 deletions(-) rename doc/{algorithms.qbk => algorithm.qbk} (95%) delete mode 100644 doc/html/fusion/acknowledgements.html delete mode 100644 doc/html/fusion/algorithms.html delete mode 100644 doc/html/fusion/algorithms/concepts.html delete mode 100644 doc/html/fusion/algorithms/concepts/poly.html delete mode 100644 doc/html/fusion/algorithms/iteration.html delete mode 100644 doc/html/fusion/algorithms/iteration/functions.html delete mode 100644 doc/html/fusion/algorithms/iteration/functions/accumulate.html delete mode 100644 doc/html/fusion/algorithms/iteration/functions/fold.html delete mode 100644 doc/html/fusion/algorithms/iteration/functions/for_each.html delete mode 100644 doc/html/fusion/algorithms/iteration/metafunctions.html delete mode 100644 doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html delete mode 100644 doc/html/fusion/algorithms/iteration/metafunctions/fold.html delete mode 100644 doc/html/fusion/algorithms/iteration/metafunctions/for_each.html delete mode 100644 doc/html/fusion/algorithms/query.html delete mode 100644 doc/html/fusion/algorithms/query/functions.html delete mode 100644 doc/html/fusion/algorithms/query/functions/all.html delete mode 100644 doc/html/fusion/algorithms/query/functions/any.html delete mode 100644 doc/html/fusion/algorithms/query/functions/count.html delete mode 100644 doc/html/fusion/algorithms/query/functions/count_if.html delete mode 100644 doc/html/fusion/algorithms/query/functions/find.html delete mode 100644 doc/html/fusion/algorithms/query/functions/find_if.html delete mode 100644 doc/html/fusion/algorithms/query/functions/none.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/all.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/any.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/count.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/count_if.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/find.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/find_if.html delete mode 100644 doc/html/fusion/algorithms/query/metafunctions/none.html delete mode 100644 doc/html/fusion/algorithms/transformation.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/clear.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/erase.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/erase_key.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/filter.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/filter_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/insert.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/insert_range.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/join.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/pop_back.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/pop_front.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/push_back.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/push_front.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/remove.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/remove_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/replace.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/replace_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/reverse.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/transform.html delete mode 100644 doc/html/fusion/algorithms/transformation/functions/zip.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/clear.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/erase.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/filter.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/insert.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/join.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/push_back.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/push_front.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/remove.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/replace.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/reverse.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/transform.html delete mode 100644 doc/html/fusion/algorithms/transformation/metafunctions/zip.html delete mode 100644 doc/html/fusion/change_log.html delete mode 100644 doc/html/fusion/extension.html delete mode 100644 doc/html/fusion/functional.html delete mode 100644 doc/html/fusion/functional/adapters.html delete mode 100644 doc/html/fusion/functional/adapters/fused.html delete mode 100644 doc/html/fusion/functional/adapters/fused_function_object.html delete mode 100644 doc/html/fusion/functional/adapters/fused_procedure.html delete mode 100644 doc/html/fusion/functional/adapters/unfused_generic.html delete mode 100644 doc/html/fusion/functional/adapters/unfused_lvalue_args.html delete mode 100644 doc/html/fusion/functional/adapters/unfused_rvalue_args.html delete mode 100644 doc/html/fusion/functional/adapters/unfused_typed.html delete mode 100644 doc/html/fusion/functional/concepts.html delete mode 100644 doc/html/fusion/functional/concepts/callable.html delete mode 100644 doc/html/fusion/functional/concepts/def_callable.html delete mode 100644 doc/html/fusion/functional/concepts/poly.html delete mode 100644 doc/html/fusion/functional/concepts/reg_callable.html delete mode 100644 doc/html/fusion/functional/generation.html delete mode 100644 doc/html/fusion/functional/generation/functions.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_fused.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_fused_fobj.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_fused_proc.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html delete mode 100644 doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_fused.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html delete mode 100644 doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html delete mode 100644 doc/html/fusion/functional/invocation.html delete mode 100644 doc/html/fusion/functional/invocation/functions.html delete mode 100644 doc/html/fusion/functional/invocation/functions/invoke.html delete mode 100644 doc/html/fusion/functional/invocation/functions/invoke_fobj.html delete mode 100644 doc/html/fusion/functional/invocation/functions/invoke_proc.html delete mode 100644 doc/html/fusion/functional/invocation/metafunctions.html delete mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke.html delete mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html delete mode 100644 doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html delete mode 100644 doc/html/fusion/introduction.html delete mode 100644 doc/html/fusion/iterators.html delete mode 100644 doc/html/fusion/iterators/concepts.html delete mode 100644 doc/html/fusion/iterators/concepts/bidirectional_iterator.html delete mode 100644 doc/html/fusion/iterators/concepts/forward_iterator.html delete mode 100644 doc/html/fusion/iterators/concepts/random_access_iterator.html delete mode 100644 doc/html/fusion/iterators/functions.html delete mode 100644 doc/html/fusion/iterators/functions/advance.html delete mode 100644 doc/html/fusion/iterators/functions/advance_c.html delete mode 100644 doc/html/fusion/iterators/functions/deref.html delete mode 100644 doc/html/fusion/iterators/functions/distance.html delete mode 100644 doc/html/fusion/iterators/functions/next.html delete mode 100644 doc/html/fusion/iterators/functions/prior.html delete mode 100644 doc/html/fusion/iterators/metafunctions.html delete mode 100644 doc/html/fusion/iterators/metafunctions/advance.html delete mode 100644 doc/html/fusion/iterators/metafunctions/advance_c.html delete mode 100644 doc/html/fusion/iterators/metafunctions/deref.html delete mode 100644 doc/html/fusion/iterators/metafunctions/distance.html delete mode 100644 doc/html/fusion/iterators/metafunctions/equal_to.html delete mode 100644 doc/html/fusion/iterators/metafunctions/next.html delete mode 100644 doc/html/fusion/iterators/metafunctions/prior.html delete mode 100644 doc/html/fusion/iterators/metafunctions/value_of.html delete mode 100644 doc/html/fusion/iterators/operators.html delete mode 100644 doc/html/fusion/iterators/operators/operator_equality.html delete mode 100644 doc/html/fusion/iterators/operators/operator_inequality.html delete mode 100644 doc/html/fusion/iterators/operators/operator_unary_star.html delete mode 100644 doc/html/fusion/notes.html delete mode 100644 doc/html/fusion/organization.html delete mode 100644 doc/html/fusion/preface.html delete mode 100644 doc/html/fusion/quick_start.html delete mode 100644 doc/html/fusion/references.html delete mode 100644 doc/html/fusion/sequences.html delete mode 100644 doc/html/fusion/sequences/adapted.html delete mode 100644 doc/html/fusion/sequences/adapted/boost__array.html delete mode 100644 doc/html/fusion/sequences/adapted/boost__tuple.html delete mode 100644 doc/html/fusion/sequences/adapted/boost__variant.html delete mode 100644 doc/html/fusion/sequences/adapted/mpl_sequence.html delete mode 100644 doc/html/fusion/sequences/adapted/std__pair.html delete mode 100644 doc/html/fusion/sequences/concepts.html delete mode 100644 doc/html/fusion/sequences/concepts/associative_sequence.html delete mode 100644 doc/html/fusion/sequences/concepts/bidirectional_sequence.html delete mode 100644 doc/html/fusion/sequences/concepts/forward_sequence.html delete mode 100644 doc/html/fusion/sequences/concepts/random_access_sequence.html delete mode 100644 doc/html/fusion/sequences/containers.html delete mode 100644 doc/html/fusion/sequences/containers/cons.html delete mode 100644 doc/html/fusion/sequences/containers/list.html delete mode 100644 doc/html/fusion/sequences/containers/map.html delete mode 100644 doc/html/fusion/sequences/containers/set.html delete mode 100644 doc/html/fusion/sequences/containers/vector.html delete mode 100644 doc/html/fusion/sequences/conversion.html delete mode 100644 doc/html/fusion/sequences/conversion/functions.html delete mode 100644 doc/html/fusion/sequences/conversion/functions/as_list.html delete mode 100644 doc/html/fusion/sequences/conversion/functions/as_map.html delete mode 100644 doc/html/fusion/sequences/conversion/functions/as_set.html delete mode 100644 doc/html/fusion/sequences/conversion/functions/as_vector.html delete mode 100644 doc/html/fusion/sequences/conversion/metafunctions.html delete mode 100644 doc/html/fusion/sequences/conversion/metafunctions/as_list.html delete mode 100644 doc/html/fusion/sequences/conversion/metafunctions/as_map.html delete mode 100644 doc/html/fusion/sequences/conversion/metafunctions/as_set.html delete mode 100644 doc/html/fusion/sequences/conversion/metafunctions/as_vector.html delete mode 100644 doc/html/fusion/sequences/generation.html delete mode 100644 doc/html/fusion/sequences/generation/functions.html delete mode 100644 doc/html/fusion/sequences/generation/functions/list_tie.html delete mode 100644 doc/html/fusion/sequences/generation/functions/make_cons.html delete mode 100644 doc/html/fusion/sequences/generation/functions/make_list.html delete mode 100644 doc/html/fusion/sequences/generation/functions/make_map.html delete mode 100644 doc/html/fusion/sequences/generation/functions/make_set.html delete mode 100644 doc/html/fusion/sequences/generation/functions/make_vector.html delete mode 100644 doc/html/fusion/sequences/generation/functions/map_tie.html delete mode 100644 doc/html/fusion/sequences/generation/functions/tiers.html delete mode 100644 doc/html/fusion/sequences/generation/functions/vector_tie.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/list_tie.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/make_cons.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/make_list.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/make_map.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/make_set.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/make_vector.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/map_tie.html delete mode 100644 doc/html/fusion/sequences/generation/metafunctions/vector_tie.html delete mode 100644 doc/html/fusion/sequences/intrinsics.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/at.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/at_c.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/at_key.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/back.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/begin.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/empty.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/end.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/front.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/has_key.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/size.html delete mode 100644 doc/html/fusion/sequences/intrinsics/functions/swap.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/at.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/back.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/begin.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/empty.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/end.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/front.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/size.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/swap.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html delete mode 100644 doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html delete mode 100644 doc/html/fusion/sequences/operators.html delete mode 100644 doc/html/fusion/sequences/operators/comparison.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/equal.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/greater_than.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/greater_than_equal.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/less_than.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/less_than_equal.html delete mode 100644 doc/html/fusion/sequences/operators/comparison/not_equal.html delete mode 100644 doc/html/fusion/sequences/operators/i_o.html delete mode 100644 doc/html/fusion/sequences/operators/i_o/in.html delete mode 100644 doc/html/fusion/sequences/operators/i_o/out.html delete mode 100644 doc/html/fusion/sequences/views.html delete mode 100644 doc/html/fusion/sequences/views/filter_view.html delete mode 100644 doc/html/fusion/sequences/views/iterator_range.html delete mode 100644 doc/html/fusion/sequences/views/joint_view.html delete mode 100644 doc/html/fusion/sequences/views/reverse_view.html delete mode 100644 doc/html/fusion/sequences/views/single_view.html delete mode 100644 doc/html/fusion/sequences/views/transform_view.html delete mode 100644 doc/html/fusion/sequences/views/zip_view.html delete mode 100644 doc/html/fusion/support.html delete mode 100644 doc/html/fusion/support/category_of.html delete mode 100644 doc/html/fusion/support/deduce.html delete mode 100644 doc/html/fusion/support/deduce_sequence.html delete mode 100644 doc/html/fusion/support/is_sequence.html delete mode 100644 doc/html/fusion/support/is_view.html delete mode 100644 doc/html/fusion/support/pair.html delete mode 100644 doc/html/fusion/support/tag_of.html delete mode 100644 doc/html/fusion/tuples.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple/construction.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple/element_access.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple/relational_operators.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple/tuple_creation_functions.html delete mode 100644 doc/html/fusion/tuples/class_template_tuple/tuple_helper_classes.html delete mode 100644 doc/html/fusion/tuples/pairs.html diff --git a/doc/adapted.qbk b/doc/adapted.qbk index b4518a38..a43801a3 100644 --- a/doc/adapted.qbk +++ b/doc/adapted.qbk @@ -12,6 +12,7 @@ and from __mpl__ and Fusion]. [heading Header] #include + #include [section std::pair] @@ -21,6 +22,7 @@ makes `std::pair` a fully conforming __random_access_sequence__. [heading Header] #include + #include [heading Model of] @@ -47,6 +49,7 @@ header makes all __mpl__ sequences fully conforming fusion sequences. [heading Header] #include + #include [heading Model of] @@ -79,6 +82,7 @@ header makes `boost::array` a fully conforming __random_access_sequence__. [heading Header] #include + #include [heading Model of] @@ -107,6 +111,7 @@ header makes `boost::tuple` a fully conforming __forward_sequence__. [heading Header] #include + #include [heading Model of] @@ -134,6 +139,7 @@ being populated with a default constructed value of that type. [heading Header] #include + #include [heading Model of] diff --git a/doc/algorithms.qbk b/doc/algorithm.qbk similarity index 95% rename from doc/algorithms.qbk rename to doc/algorithm.qbk index 075fbe7b..a4071ed3 100644 --- a/doc/algorithms.qbk +++ b/doc/algorithm.qbk @@ -1,51 +1,54 @@ -[section Algorithms] +[section Algorithm] + [heading Lazy Evaluation] -Unlike __mpl__, Fusion algorithms are lazy and non sequence-type -preserving. What does that mean? It means that when you operate on a -sequence through a Fusion algorithm that returns a sequence, the sequence -returned may not be of the same class as the original. This is by design. -Runtime efficiency is given a high priority. Like __mpl__, and unlike -__stl__, fusion algorithms are functional in nature such that algorithms -are non mutating (no side effects). However, due to the high cost of -returning full sequences such as vectors and lists, /Views/ are returned -from Fusion algorithms instead. For example, the __transform__ algorithm -does not actually return a transformed version of the original sequence. -__transform__ returns a __transform_view__. This view holds a reference to -the original sequence plus the transform function. Iteration over the -__transform_view__ will apply the transform function over the sequence -elements on demand. This /lazy/ evaluation scheme allows us to chain as +Unlike __mpl__, Fusion algorithms are lazy and non sequence-type +preserving. What does that mean? It means that when you operate on a +sequence through a Fusion algorithm that returns a sequence, the sequence +returned may not be of the same class as the original. This is by design. +Runtime efficiency is given a high priority. Like __mpl__, and unlike +__stl__, fusion algorithms are functional in nature such that algorithms +are non mutating (no side effects). However, due to the high cost of +returning full sequences such as vectors and lists, /Views/ are returned +from Fusion algorithms instead. For example, the __transform__ algorithm +does not actually return a transformed version of the original sequence. +__transform__ returns a __transform_view__. This view holds a reference to +the original sequence plus the transform function. Iteration over the +__transform_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. [heading 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 that were once -sequence specific and need to be implemented N times over N different -sequences are now implemented only once. That is to say that Fusion -sequences are cheaply extensible. However, an important caveat is that the -result of a sequence extending operation like __push_back__ does not retain -the properties of the original sequence such as associativity of __set__s. -To regain the original sequence, __conversion__ functions are provided. You -may use one of the __conversion__ functions to convert back to the original +The /lazy/ evaluation scheme where __algorithms__ return __views__ also +allows operations such as __push_back__ to be totally generic. In Fusion, +__push_back__ is actually a generic algorithm that works on all sequences. +Given an input sequence `s` and a value `x`, Fusion's __push_back__ +algorithm simply returns a __joint_view__: a view that holds a reference to +the original sequence `s` and the value `x`. Functions that were once +sequence specific and need to be implemented N times over N different +sequences are now implemented only once. That is to say that Fusion +sequences are cheaply extensible. However, an important caveat is that the +result of a sequence extending operation like __push_back__ does not retain +the properties of the original sequence such as associativity of __set__s. +To regain the original sequence, __conversion__ functions are provided. You +may use one of the __conversion__ functions to convert back to the original sequence type. [heading Header] #include + #include [section Iteration] -The iteration algorithms provide the fundamental algorithms for traversing +The iteration algorithms provide the fundamental algorithms for traversing a sequence repeatedly applying an operation to its elements. [heading Header] #include + #include [section Functions] @@ -83,6 +86,7 @@ Linear, exactly `__result_of_size__::value` applications of `f`. [heading Header] #include + #include [heading Example] struct make_string @@ -135,6 +139,7 @@ Linear, exactly `__result_of_size__::value` applications of `f`. [heading Header] #include + #include [heading Example] struct make_string @@ -185,6 +190,7 @@ Linear, exactly `__result_of_size__::value` applications of `f`. [heading Header] #include + #include [heading Example] struct increment @@ -242,6 +248,7 @@ Linear, exactly `__result_of_size__::value` applications of `F`. [heading Header] #include + #include [endsect] @@ -281,6 +288,7 @@ Linear, exactly `__result_of_size__::value` applications of `F`. [heading Header] #include + #include [endsect] @@ -320,6 +328,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -333,6 +342,7 @@ The query algorithms provide support for searching and analyzing sequences. [heading Header] #include + #include [section Functions] @@ -368,6 +378,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] struct odd @@ -416,6 +427,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] struct odd @@ -464,6 +476,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] struct odd @@ -483,7 +496,7 @@ Linear. At most `__result_of_size__::value` comparisons. [section find] [heading Description] -Finds the first element of a given type within a sequence. +Finds the first element of a given type within a sequence. [heading Synopsis] template< @@ -518,6 +531,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] const __vector__ vec('a','0'); @@ -527,7 +541,7 @@ Linear. At most `__result_of_size__::value` comparisons. [endsect] [section find_if] -Finds the first element within a sequence with a type for which a given __mpl_lambda_expression__ evaluates to +Finds the first element within a sequence with a type for which a given __mpl_lambda_expression__ evaluates to `boost::mpl::true_`. [heading Description] @@ -556,7 +570,7 @@ Finds the first element within a sequence with a type for which a given __mpl_la [*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_`, +[*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. [heading Complexity] @@ -604,6 +618,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] const __vector__ vec(1.0,2,3); @@ -614,7 +629,7 @@ Linear. At most `__result_of_size__::value` comparisons. [section count_if] [heading Description] -Returns the number of elements within a sequence with a type for which a given unary function object evaluates to +Returns the number of elements within a sequence with a type for which a given unary function object evaluates to `true`. [heading Synopsis] @@ -644,6 +659,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2,3); @@ -689,6 +705,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -726,6 +743,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -763,6 +781,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -800,6 +819,7 @@ Linear, at most `__result_of_size__::value` comparisons. [heading Header] #include + #include [endsect] @@ -837,6 +857,7 @@ Linear. At most `__result_of_size__::value` comparisons. [heading Header] #include + #include [endsect] @@ -874,6 +895,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -911,6 +933,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -928,6 +951,7 @@ period during which you wish to use the results.] [heading Header] #include + #include [section Functions] @@ -952,7 +976,7 @@ For a given sequence, filter returns a new sequences containing only the element [heading Expression Semantics] __filter__(seq); -[*Return type]: A model of __forward_sequence__. +[*Return type]: A model of __forward_sequence__. [*Semantics]: Returns a sequence containing all the elements of `seq` of type `T`. Equivalent to `__filter_if__ >(seq)`. @@ -963,6 +987,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2,3,4); @@ -1003,6 +1028,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2,3.0,4.0); @@ -1063,6 +1089,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] struct triple @@ -1112,6 +1139,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__replace__(__make_vector__(1,2), 2, 3) == __make_vector__(1,3)); @@ -1144,7 +1172,7 @@ a new value. [*Return type]: A model of __forward_sequence__. -[*Semantics]: Returns a new sequence with all the elements of `seq`, +[*Semantics]: Returns a new sequence with all the elements of `seq`, with `new_value` assigned to each element for which `f` evaluates to `true`. [heading Complexity] @@ -1153,6 +1181,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] struct odd @@ -1189,7 +1218,7 @@ Returns a new sequence, with all the elements of the original sequence, except t [heading Expression Semantics] __remove__(seq); -[*Return type]: A model of __forward_sequence__. +[*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__ >(seq)`. @@ -1200,6 +1229,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2.0); @@ -1229,10 +1259,10 @@ function object evaluates to `true`. [heading Expression Semantics] __remove_if__(seq); -[*Return type]: A model of __forward_sequence__. +[*Return type]: A model of __forward_sequence__. [*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_`. +those elements with types for which `Pred` evaluates to `boost::mpl::true_`. Equivalent to `__filter__ >(seq)`. [heading Complexity] @@ -1241,6 +1271,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2.0); @@ -1277,6 +1308,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__reverse__(__make_vector__(1,2,3)) == __make_vector__(3,2,1)); @@ -1312,6 +1344,7 @@ Constant. [heading Header] #include + #include [heading Example] assert(__clear__(__make_vector__(1,2,3)) == __make_vector__()); @@ -1367,6 +1400,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1, 2.0, 'c'); @@ -1407,6 +1441,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__erase_key__(__make_map__('a', 'b')) == __make_map__('b')); @@ -1448,6 +1483,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2); @@ -1490,6 +1526,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] const __vector__ vec(1,2); @@ -1527,6 +1564,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] __vector__ v1(1, 'a'); @@ -1547,7 +1585,7 @@ Zips sequences together to form a single sequence, whos members are tuples of th ... typename SequenceN > - typename __result_of_zip__::type + typename __result_of_zip__::type zip(Sequence1 const& seq1, Sequence2 const& seq2, ... SequenceN const& seqN); [table Parameters @@ -1568,6 +1606,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] __vector__ v1(1, 'a'); @@ -1579,7 +1618,7 @@ Constant. Returns a view which is lazily evaluated. [section pop_back] [heading Description] -Returns a new sequence, with the last element of the original removed. +Returns a new sequence, with the last element of the original removed. [heading Synopsis] template< @@ -1605,6 +1644,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(___pop_back__(__make_vector__(1,2,3)) == __make_vector__(1,2)); @@ -1641,6 +1681,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__pop_front__(__make_vector__(1,2,3)) == __make_vector__(2,3)); @@ -1679,6 +1720,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__push_back__(__make_vector__(1,2,3),4) == __make_vector__(1,2,3,4)); @@ -1717,6 +1759,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] assert(__push_front__(__make_vector__(1,2,3),0) == __make_vector__(0,1,2,3)); @@ -1761,6 +1804,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -1798,6 +1842,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -1854,6 +1899,7 @@ Constant. Returns a view which is lazily evaluated. [heading Header] #include + #include [heading Example] struct triple @@ -1888,7 +1934,7 @@ Returns the result type of __replace__, given the types of the input sequence an [table Parameters [[Parameter][Requirement][Description]] [[`Sequence`][A model of __forward_sequence__][Operation's argument]] - [[`T`][Any type][The type of the search and replacement objects]] + [[`T`][Any type][The type of the search and replacement objects]] ] [heading Expression Semantics] @@ -1904,6 +1950,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -1942,6 +1989,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -1979,6 +2027,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2016,6 +2065,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2051,6 +2101,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2086,6 +2137,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2130,6 +2182,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2167,6 +2220,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2206,6 +2260,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2245,6 +2300,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2276,6 +2332,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2309,6 +2366,7 @@ Constant. [heading Header] #include + #include [endsect] @@ -2344,6 +2402,7 @@ Constant. [heading Header] #include + #include [endsect] diff --git a/doc/container.qbk b/doc/container.qbk index ea90d939..32db47eb 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -7,6 +7,7 @@ __views__. These containers are more or less counterparts of those in __stl__. [heading Header] #include + #include [section vector] @@ -20,14 +21,21 @@ sequence container, and in many cases the most efficient. [heading Header] #include + #include #include + #include // numbered forms #include + #include #include + #include #include + #include #include + #include #include + #include [heading Synopsis] @@ -130,6 +138,7 @@ time). The runtime cost of access to each element is peculiarly constant [heading Header] #include + #include [heading Synopsis] @@ -200,7 +209,9 @@ each element is peculiarly constant (see __recursive_inline__). [heading Header] #include - #include + #include + #include + #include [heading Synopsis] @@ -284,6 +295,9 @@ complexity (see __overloaded_functions__). [heading Header] #include + #include + #include + #include [heading Synopsis] @@ -363,6 +377,9 @@ __overloaded_functions__). [heading Header] #include + #include + #include + #include [heading Synopsis] @@ -434,4 +451,1198 @@ defined in __random_access_sequence__ and __associative_sequence__. [endsect] +[section Generation] + +These are the functions that you can use to generate various forms of +__containers__ from elemental values. + +[heading Header] + + #include + #include + +[section Functions] + +[section make_list] + +[heading Description] + +Create a __list__ from one or more values. + +[heading Synopsis] + + template + typename __result_of_make_list__::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` +before including any Fusion header to change the default. Example: + + #define FUSION_MAX_LIST_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_list`]] +] + +[heading Expression Semantics] + + make_list(x0, x1,... xN); + +[*Return type]: __result_of_make_list__`::type` + +[*Semantics]: Create a __list__ from `x0, x1,... xN`. + +[heading Header] + + #include + #include + +[heading Example] + + make_list(123, "hello", 12.5) + +[heading See also] + +__note_boost_ref__ + +[endsect] + +[section make_cons] + +[heading Description] + +Create a __cons__ from `car` (/head/) and optional `cdr` (/tail/). + +[heading Synopsis] + + template + typename __result_of_make_cons__::type + make_cons(Car const& car); + + template + typename __result_of_make_cons__::type + make_cons(Car const& car, Cdr const& cdr); + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`car`] [Instance of `Car`] [The list's head]] + [[`cdr`] [Instance of `Cdr`] [The list's tail (optional)]] +] + +[heading Expression Semantics] + + make_cons(car, cdr); + +[*Return type]: __result_of_make_cons__`::type` or +__result_of_make_cons__`::type` + +[*Semantics]: Create a __cons__ from `car` (/head/) and optional `cdr` (/tail/). + +[heading Header] + + #include + #include + +[heading Example] + + make_cons('x', make_cons(123)) + +[heading See also] + +__note_boost_ref__ + +[endsect] + +[section make_vector] + +[heading Description] + +Create a __vector__ from one or more values. + +[heading Synopsis] + + template + typename __result_of_make_vector__::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` before including any Fusion header to change the +default. Example: + + #define FUSION_MAX_VECTOR_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_vector`]] +] + +[heading Expression Semantics] + + make_vector(x0, x1,... xN); + +[*Return type]: __result_of_make_vector__`::type` + +[*Semantics]: Create a __vector__ from `x0, x1,... xN`. + +[heading Header] + + #include + #include + +[heading Example] + + make_vector(123, "hello", 12.5) + +[heading See also] + +__note_boost_ref__ + +[endsect] + +[section make_set] + +[heading Description] + +Create a __set__ from one or more values. + +[heading Synopsis] + + template + typename __result_of_make_set__::type + make_set(T0 const& x0, T1 const& x1... TN const& xN); + +The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote +`set` is implemented in terms of the vector. That is why we reuse +`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 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_set`]] +] + +[heading Expression Semantics] + + make_set(x0, x1,... xN); + +[*Return type]: __result_of_make_set__`::type` + +[*Semantics]: Create a __set__ from `x0, x1,... xN`. + +[*Precondition]: There may be no duplicate key types. + +[heading Header] + + #include + #include + +[heading Example] + + make_set(123, "hello", 12.5) + +[heading See also] + +__note_boost_ref__ + +[endsect] + +[section make_map] + +[heading Description] + +Create a __map__ from one or more key/data pairs. + +[heading Synopsis] + + template < + typename K0, typename K1,... typename KN + , typename T0, typename T1,... typename TN> + typename __result_of_make_map__::type + make_map(T0 const& x0, T1 const& x1... TN const& xN); + +The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote +`map` is implemented in terms of the vector. That is why we reuse +`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 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`K0, K1,... KN`] [The key types] [Keys associated with `x0, x1,... xN`]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_map`]] +] + +[heading Expression Semantics] + + make_map(x0, x1,... xN); + +[*Return type]: __result_of_make_map__`::type` + +[*Semantics]: Create a __map__ from `K0, K1,... KN` keys and +`x0, x1,... xN` data. + +[*Precondition]: There may be no duplicate key types. + +[heading Header] + + #include + #include + +[heading Example] + + make_map( + __fusion_make_pair__('X') + , __fusion_make_pair__("Men")) + +[heading See also] + +__note_boost_ref__, __fusion_pair__ + +[endsect] + +[section Tiers] + +Tiers are sequences, where all elements are non-const reference types. They +are constructed with a call to a couple of /tie/ function templates. The +succeeding sections document the various /tier/ flavors. + +* __list_tie__ +* __vector_tie__ +* __map_tie__ + +Example: + + int i; char c; double d; + ... + __vector_tie__(i, c, a); + +The __vector_tie__ function creates a __vector__ of type +`__vector__`. The same result could be achieved with the call +__make_vector__(__boost_ref_call__(i), __boost_ref_call__(c), __boost_ref_call__(a)) +[footnote see __boost_ref__ for details about `ref`]. + +A /tie/ can be used to 'unpack' another tuple into variables. E.g.: + + int i; char c; double d; + __vector_tie__(i, c, d) = __make_vector__(1,'a', 5.5); + std::cout << i << " " << c << " " << d; + +This code prints 1 a 5.5 to the standard output stream. A sequence +unpacking operation like this is found for example in ML and Python. It is +convenient when calling functions which return sequences. + +[heading Ignore] + +There is also an object called /ignore/ which allows you to ignore an +element assigned by a sequence. The idea is that a function may return a +sequence, only part of which you are interested in. For example: + + char c; + __vector_tie__(ignore, c) = __make_vector__(1, 'a'); + +[endsect] + +[section list_tie] + +[heading Description] + +Constructs a tie using a __list__ sequence. + +[heading Synopsis] + + template + __list__ + 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` +before including any Fusion header to change the default. Example: + + #define FUSION_MAX_LIST_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `list_tie`]] +] + +[heading Expression Semantics] + + list_tie(x0, x1,... xN); + +[*Return type]: __list__ + +[*Semantics]: Create a __list__ of references from `x0, x1,... xN`. + +[heading Header] + + #include + #include + +[heading Example] + + int i = 123; + double d = 123.456; + list_tie(i, d) + +[endsect] + +[section vector_tie] + +[heading Description] + +Constructs a tie using a __vector__ sequence. + +[heading Synopsis] + + template + __vector__ + 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` before including any Fusion header to change the +default. Example: + + #define FUSION_MAX_VECTOR_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `vector_tie`]] +] + +[heading Expression Semantics] + + vector_tie(x0, x1,... xN); + +[*Return type]: __vector__ + +[*Semantics]: Create a __vector__ of references from `x0, x1,... xN`. + +[heading Header] + + #include + #include + +[heading Example] + + int i = 123; + double d = 123.456; + vector_tie(i, d) + +[endsect] + +[section map_tie] + +[heading Description] + +Constructs a tie using a __map__ sequence. + +[heading Synopsis] + + template + __map__<__pair__, __pair__,... __pair__ > + map_tie(D0& d0, D1& d1... DN& dN); + +The variadic function accepts `0` to `FUSION_MAX_MAP_SIZE` elements, +where `FUSION_MAX_MAP_SIZE` is a user definable predefined maximum that +defaults to `10`, and a corresponding number of key types. +You may define the preprocessor constant `FUSION_MAX_MAP_SIZE` before +including any Fusion header to change the default. Example: + + #define FUSION_MAX_MAP_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`K0, K1,... KN`] [Any type][The key types associated with each of the `x1,x2,...,xN` values]] + [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `map_tie`]] +] + +[heading Expression Semantics] + + map_tie(x0, x1,... xN); + +[*Return type]: __map__<__pair__, __pair__,... __pair__ > + +[*Semantics]: Create a __map__ of references from `x0, x1,... xN` with keys `K0, K1,... KN` + +[heading Header] + + #include + #include + +[heading Example] + + struct int_key; + struct double_key; + ... + int i = 123; + double d = 123.456; + map_tie(i, d) + +[endsect] + +[endsect] + +[section MetaFunctions] + +[section make_list] + +[heading Description] + +Returns the result type of __make_list__. + +[heading Synopsis] + + template + 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` +before including any Fusion header to change the default. Example: + + #define FUSION_MAX_LIST_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`T0, T1,... TN`] [Any type] [Template arguments to `make_list`]] +] + +[heading Expression Semantics] + + result_of::make_list::type + +[*Return type]: A __list__ with elements of types converted following the +rules for __element_conversion__. + +[*Semantics]: Create a __list__ from `T0, T1,... TN`. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::make_list::type + +[endsect] + +[section make_cons] + +[heading Description] + +Returns the result type of __make_cons__. + +[heading Synopsis] + + template + struct make_cons; + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`Car`] [Any type] [The list's head type]] + [[`Cdr`] [A `cons`] [The list's tail type (optional)]] +] + +[heading Expression Semantics] + + result_of::make_cons::type + +[*Return type]: A __cons__ with head element, `Car`, of type converted +following the rules for __element_conversion__, and tail, `Cdr`. + +[*Semantics]: Create a __cons__ from `Car` (/head/) and optional `Cdr` (/tail/). + +[heading Header] + + #include + #include + +[heading Example] + + result_of::make_cons::type>::type + +[endsect] + +[section make_vector] + +[heading Description] + +Returns the result type of __make_vector__. + +[heading Synopsis] + + template + 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` before including any Fusion header to change the +default. Example: + + #define FUSION_MAX_VECTOR_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`T0, T1,... TN`] [Any type] [Template arguments to `make_vector`]] +] + +[heading Expression Semantics] + + result_of::make_vector::type + +[*Return type]: A __vector__ with elements of types converted following the +rules for __element_conversion__. + +[*Semantics]: Create a __vector__ from `T0, T1,... TN`. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::make_vector::type + +[endsect] + +[section make_set] + +[heading Description] + +Returns the result type of __make_set__. + +[heading Synopsis] + + template + struct make_set; + +The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote +`set` is implemented in terms of the vector. That is why we reuse +`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 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`T0, T1,... TN`] [Any type] [The arguments to `make_set`]] +] + +[heading Expression Semantics] + + result_of::make_set::type + +[*Return type]: A __set__ with elements of types converted following the +rules for __element_conversion__. + +[*Semantics]: Create a __set__ from `T0, T1,... TN`. + +[*Precondition]: There may be no duplicate key types. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::make_set::type + +[endsect] + +[section make_map] + +[heading Description] + +Returns the result type of __make_map__. + +[heading Synopsis] + + template < + typename K0, typename K1,... typename KN + , typename T0, typename T1,... typename TN> + struct make_map; + +The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote +`map` is implemented in terms of the vector. That is why we reuse +`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 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`K0, K1,... KN`] [Any type] [Keys associated with `T0, T1,... TN`]] + [[`T0, T1,... TN`] [Any type] [Data associated with keys `K0, K1,... KN`]] +] + +[heading Expression Semantics] + + resulf_of::make_map::type; + +[*Return type]: __result_of_make_map__`::type` + +[*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 key types. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::make_map::type + +[heading See also] + +__fusion_pair__ + +[endsect] + +[section list_tie] + +[heading Description] + +Returns the result type of __list_tie__. + +[heading Synopsis] + + template + 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` +before including any Fusion header to change the default. Example: + + #define FUSION_MAX_LIST_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`T0, T1,... TN`] [Any type] [The arguments to `list_tie`]] +] + +[heading Expression Semantics] + + result_of::list_tie::type; + +[*Return type]: __list__ + +[*Semantics]: Create a __list__ of references from `T0, T1,... TN`. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::list_tie::type + +[endsect] + +[section vector_tie] + +[heading Description] + +Returns the result type of __vector_tie__. + +[heading Synopsis] + + template + 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` before including any Fusion header to change the +default. Example: + + #define FUSION_MAX_VECTOR_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`T0, T1,... TN`] [Any type] [The arguments to `vector_tie`]] +] + +[heading Expression Semantics] + + result_of::vector_tie::type; + +[*Return type]: __vector__ + +[*Semantics]: Create a __vector__ of references from `T0, T1,... TN`. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::vector_tie::type + +[endsect] + +[section map_tie] + +[heading Description] + +Returns the result type of __map_tie__. + +[heading Synopsis] + + template + struct map_tie; + +The variadic function accepts `0` to `FUSION_MAX_MAP_SIZE` elements, +where `FUSION_MAX_MAP_SIZE` is a user definable predefined maximum that +defaults to `10`. You may define the preprocessor constant +`FUSION_MAX_MAP_SIZE` before including any Fusion header to change the +default. Example: + + #define FUSION_MAX_MAP_SIZE 20 + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`K0, K1,... KN`] [Any type] [The key types for `map_tie`]] + [[`D0, D1,... DN`] [Any type] [The arguments types for `map_tie`]] +] + +[heading Expression Semantics] + + result_of::map_tie::type; + +[*Return type]: __map__<__pair__, __pair__,... __pair__ > + +[*Semantics]: Create a __map__ of references from `D0, D1,... DN` with keys `K0, K1,... KN` + +[heading Header] + + #include + #include + +[heading Example] + + struct int_key; + struct double_key; + ... + result_of::map_tie::type + +[endsect] + +[endsect] + +[endsect] + +[section Conversion] + +All fusion sequences can be converted to one of the __containers__ types +using one of these conversion functions. + +[heading Header] + + #include + +[section Functions] + +[section as_list] + +[heading Description] + +Convert a fusion sequence to a __list__. + +[heading Synopsis] + + template + typename result_of::as_list::type + as_list(Sequence& seq); + + template + typename result_of::as_list::type + as_list(Sequence const& seq); + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`seq`] [An instance of Sequence] [The sequence to convert.]] +] + +[heading Expression Semantics] + + as_list(seq); + +[*Return type]: __result_of_as_list__`::type` + +[*Semantics]: Convert a fusion sequence, `seq`, to a __list__. + +[heading Header] + + #include + #include + +[heading Example] + + as_list(__make_vector__('x', 123, "hello")) + +[endsect] + +[section as_vector] + +[heading Description] + +Convert a fusion sequence to a __vector__. + +[heading Synopsis] + + template + typename result_of::as_vector::type + as_vector(Sequence& seq); + + template + typename result_of::as_vector::type + as_vector(Sequence const& seq); + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`seq`] [An instance of Sequence] [The sequence to convert.]] +] + +[heading Expression Semantics] + + as_vector(seq); + +[*Return type]: __result_of_as_vector__`::type` + +[*Semantics]: Convert a fusion sequence, `seq`, to a __vector__. + +[heading Header] + + #include + #include + +[heading Example] + + as_vector(__make_list__('x', 123, "hello")) + +[endsect] + +[section as_set] + +[heading Description] + +Convert a fusion sequence to a __set__. + +[heading Synopsis] + + template + typename result_of::as_set::type + as_set(Sequence& seq); + + template + typename result_of::as_set::type + as_set(Sequence const& seq); + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`seq`] [An instance of Sequence] [The sequence to convert.]] +] + +[heading Expression Semantics] + + as_set(seq); + +[*Return type]: __result_of_as_set__`::type` + +[*Semantics]: Convert a fusion sequence, `seq`, to a __set__. + +[*Precondition]: There may be no duplicate key types. + +[heading Header] + + #include + #include + +[heading Example] + + as_set(__make_vector__('x', 123, "hello")) + +[endsect] + +[section as_map] + +[heading Description] + +Convert a fusion sequence to a __map__. + +[heading Synopsis] + + template + typename result_of::as_map::type + as_map(Sequence& seq); + + template + typename result_of::as_map::type + as_map(Sequence const& seq); + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`seq`] [An instance of Sequence] [The sequence to convert.]] +] + +[heading Expression Semantics] + + as_map(seq); + +[*Return type]: __result_of_as_map__`::type` + +[*Semantics]: Convert a fusion sequence, `seq`, to a __map__. + +[*Precondition]: The elements of the sequence are assumed to be +__fusion_pair__s. There may be no duplicate __fusion_pair__ key types. + +[heading Header] + + #include + #include + +[heading Example] + + as_map(__make_vector__( + __fusion_make_pair__('X') + , __fusion_make_pair__("Men"))) + +[endsect] + +[endsect] + +[section Metafunctions] + +[section as_list] + +[heading Description] + +Returns the result type of __as_list__. + +[heading Synopsis] + + template + struct as_list; + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`Sequence`] [A fusion __sequence__] [The sequence type to convert.]] +] + +[heading Expression Semantics] + + result_of::as_list::type; + +[*Return type]: A __list__ with same elements as the input sequence, +`Sequence`. + +[*Semantics]: Convert a fusion sequence, `Sequence`, to a __list__. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::as_list<__vector__ >::type + +[endsect] + +[section as_vector] + +[heading Description] + +Returns the result type of __as_vector__. + +[heading Synopsis] + + template + struct as_vector; + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] +] + +[heading Expression Semantics] + + result_of::as_vector::type; + +[*Return type]: A __vector__ with same elements as the input sequence, +`Sequence`. + +[*Semantics]: Convert a fusion sequence, `Sequence`, to a __vector__. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::as_vector<__list__ >::type + +[endsect] + +[section as_set] + +[heading Description] + +Returns the result type of __as_set__. + +[heading Synopsis] + + template + struct as_set; + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] +] + +[heading Expression Semantics] + + result_of::as_set::type; + +[*Return type]: A __set__ with same elements as the input sequence, +`Sequence`. + +[*Semantics]: Convert a fusion sequence, `Sequence`, to a __set__. + +[*Precondition]: There may be no duplicate key types. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::as_set<__vector__ >::type + +[endsect] + +[section as_map] + +[heading Description] + +Returns the result type of __as_map__. + +[heading Synopsis] + + template + struct as_map; + +[heading Parameters] + +[table + [[Parameter] [Requirement] [Description]] + [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] +] + +[heading Expression Semantics] + + result_of::as_map::type; + +[*Return type]: A __map__ with same elements as the input sequence, +`Sequence`. + +[*Semantics]: Convert a fusion sequence, `Sequence`, to a __map__. + +[*Precondition]: The elements of the sequence are assumed to be +__fusion_pair__s. There may be no duplicate __fusion_pair__ key types. + +[heading Header] + + #include + #include + +[heading Example] + + result_of::as_map<__vector__< + __fusion_pair__ + , __fusion_pair__ > >::type + +[endsect] + +[endsect] + +[endsect] + [endsect] diff --git a/doc/extension.qbk b/doc/extension.qbk index 0115e5d2..ff0903e5 100644 --- a/doc/extension.qbk +++ b/doc/extension.qbk @@ -52,6 +52,7 @@ tag type for operations involving our sequence. This is done by specializing `traits::tag_of` for our sequence type. #include + #include namespace boost { namespace fusion { namespace traits { template<> @@ -67,6 +68,7 @@ support for groups of related types. This feature is not necessary for our sequence, but for an example see the code in: #include + #include [heading Designing a suitable iterator] @@ -457,6 +459,7 @@ The user must the implement the key expressions required by their iterator type. [heading Header] #include + #include [endsect] diff --git a/doc/functional.qbk b/doc/functional.qbk index eece4421..805cbb79 100644 --- a/doc/functional.qbk +++ b/doc/functional.qbk @@ -1220,6 +1220,7 @@ __element_conversion__ is applied to the target function. [heading Header] #include + #include [heading Example] float sub(float a, float b) { return a - b; } @@ -1268,6 +1269,7 @@ The usual __element_conversion__ applied to the target function. [heading Header] #include + #include [heading Example] __vector__ v(1,2,3); @@ -1310,6 +1312,7 @@ The usual __element_conversion__ is applied to the target function. [heading Header] #include + #include [heading Example] struct sub @@ -1371,6 +1374,7 @@ The usual __element_conversion__ is applied to the target function. [heading Header] #include + #include [heading Example] struct bottles_song @@ -1439,6 +1443,7 @@ The usual __element_conversion__ is applied to the target function. [heading Header] #include + #include [heading Example] struct fused_incrementer @@ -1498,6 +1503,7 @@ The usual __element_conversion__ is applied to the target function. [heading Header] #include + #include [heading Example] struct sequence_printer @@ -1540,6 +1546,7 @@ Returns the result type of __make_fused__. [heading Header] #include + #include [heading Synopsis] namespace result_of @@ -1564,6 +1571,7 @@ Returns the result type of __make_fused_procedure__. [heading Header] #include + #include [heading Synopsis] namespace result_of @@ -1588,6 +1596,7 @@ Returns the result type of __make_fused_function_object__. [heading Header] #include + #include [heading Synopsis] namespace result_of @@ -1612,6 +1621,7 @@ Returns the result type of __make_unfused_generic__. [heading Header] #include + #include [heading Synopsis] namespace result_of @@ -1636,6 +1646,7 @@ Returns the result type of __make_unfused_lvalue_args__. [heading Header] #include + #include [heading Synopsis] namespace result_of @@ -1660,6 +1671,7 @@ Returns the result type of __make_unfused_rvalue_args__. [heading Header] #include + #include [heading Synopsis] namespace result_of diff --git a/doc/fusion.qbk b/doc/fusion.qbk index fda1dbca..8425149b 100644 --- a/doc/fusion.qbk +++ b/doc/fusion.qbk @@ -145,36 +145,36 @@ [def __result_of_value_at_c__ [link fusion.sequence.intrinsic.metafunctions.value_at_c `result_of::value_at_c`]] [def __result_of_value_at_key__ [link fusion.sequence.intrinsic.metafunctions.value_at_key `result_of::value_at_key`]] -[def __conversion__ [link fusion.sequence.conversion.functions Conversion]] -[def __result_of_conversion__ [link fusion.sequence.conversion.metafunctions Conversion Metafunctions]] -[def __as_vector__ [link fusion.sequence.conversion.functions.as_vector `as_vector`]] -[def __result_of_as_vector__ [link fusion.sequence.conversion.metafunctions.as_vector `result_of::as_vector`]] -[def __as_list__ [link fusion.sequence.conversion.functions.as_list `as_list`]] -[def __result_of_as_list__ [link fusion.sequence.conversion.metafunctions.as_list `result_of::as_list`]] -[def __as_set__ [link fusion.sequence.conversion.functions.as_set `as_set`]] -[def __result_of_as_set__ [link fusion.sequence.conversion.metafunctions.as_set `result_of::as_set`]] -[def __as_map__ [link fusion.sequence.conversion.functions.as_map `as_map`]] -[def __result_of_as_map__ [link fusion.sequence.conversion.metafunctions.as_map `result_of::as_map`]] +[def __conversion__ [link fusion.container.conversion.functions Conversion]] +[def __result_of_conversion__ [link fusion.container.conversion.metafunctions Conversion Metafunctions]] +[def __as_vector__ [link fusion.container.conversion.functions.as_vector `as_vector`]] +[def __result_of_as_vector__ [link fusion.container.conversion.metafunctions.as_vector `result_of::as_vector`]] +[def __as_list__ [link fusion.container.conversion.functions.as_list `as_list`]] +[def __result_of_as_list__ [link fusion.container.conversion.metafunctions.as_list `result_of::as_list`]] +[def __as_set__ [link fusion.container.conversion.functions.as_set `as_set`]] +[def __result_of_as_set__ [link fusion.container.conversion.metafunctions.as_set `result_of::as_set`]] +[def __as_map__ [link fusion.container.conversion.functions.as_map `as_map`]] +[def __result_of_as_map__ [link fusion.container.conversion.metafunctions.as_map `result_of::as_map`]] -[def __generation__ [link fusion.sequence.generation.functions Generation]] -[def __result_of_generation__ [link fusion.sequence.generation.metafunctions Generation Metafunctions]] -[def __make_vector__ [link fusion.sequence.generation.functions.make_vector `make_vector`]] -[def __result_of_make_vector__ [link fusion.sequence.generation.metafunctions.make_vector `result_of::make_vector`]] -[def __vector_tie__ [link fusion.sequence.generation.functions.vector_tie `vector_tie`]] -[def __map_tie__ [link fusion.sequence.generation.functions.vector_tie `map_tie`]] -[def __result_of_vector_tie__ [link fusion.sequence.generation.metafunctions.vector_tie `result_of::vector_tie`]] -[def __make_vector__ [link fusion.sequence.generation.functions.make_vector `make_vector`]] -[def __result_of_make_vector__ [link fusion.sequence.generation.metafunctions.make_vector `result_of::make_vector`]] -[def __make_cons__ [link fusion.sequence.generation.functions.make_cons `make_cons`]] -[def __result_of_make_cons__ [link fusion.sequence.generation.metafunctions.make_cons `result_of::make_cons`]] -[def __make_list__ [link fusion.sequence.generation.functions.make_list `make_list`]] -[def __result_of_make_list__ [link fusion.sequence.generation.metafunctions.make_list `result_of::make_list`]] -[def __make_set__ [link fusion.sequence.generation.functions.make_set `make_set`]] -[def __result_of_make_set__ [link fusion.sequence.generation.metafunctions.make_set `result_of::make_set`]] -[def __make_map__ [link fusion.sequence.generation.functions.make_map `make_map`]] -[def __result_of_make_map__ [link fusion.sequence.generation.metafunctions.make_map `result_of::make_map`]] -[def __list_tie__ [link fusion.sequence.generation.functions.list_tie `list_tie`]] -[def __result_of_list_tie__ [link fusion.sequence.generation.metafunctions.list_tie `result_of::list_tie`]] +[def __generation__ [link fusion.container.generation.functions Generation]] +[def __result_of_generation__ [link fusion.container.generation.metafunctions Generation Metafunctions]] +[def __make_vector__ [link fusion.container.generation.functions.make_vector `make_vector`]] +[def __result_of_make_vector__ [link fusion.container.generation.metafunctions.make_vector `result_of::make_vector`]] +[def __vector_tie__ [link fusion.container.generation.functions.vector_tie `vector_tie`]] +[def __map_tie__ [link fusion.container.generation.functions.vector_tie `map_tie`]] +[def __result_of_vector_tie__ [link fusion.container.generation.metafunctions.vector_tie `result_of::vector_tie`]] +[def __make_vector__ [link fusion.container.generation.functions.make_vector `make_vector`]] +[def __result_of_make_vector__ [link fusion.container.generation.metafunctions.make_vector `result_of::make_vector`]] +[def __make_cons__ [link fusion.container.generation.functions.make_cons `make_cons`]] +[def __result_of_make_cons__ [link fusion.container.generation.metafunctions.make_cons `result_of::make_cons`]] +[def __make_list__ [link fusion.container.generation.functions.make_list `make_list`]] +[def __result_of_make_list__ [link fusion.container.generation.metafunctions.make_list `result_of::make_list`]] +[def __make_set__ [link fusion.container.generation.functions.make_set `make_set`]] +[def __result_of_make_set__ [link fusion.container.generation.metafunctions.make_set `result_of::make_set`]] +[def __make_map__ [link fusion.container.generation.functions.make_map `make_map`]] +[def __result_of_make_map__ [link fusion.container.generation.metafunctions.make_map `result_of::make_map`]] +[def __list_tie__ [link fusion.container.generation.functions.list_tie `list_tie`]] +[def __result_of_list_tie__ [link fusion.container.generation.metafunctions.list_tie `result_of::list_tie`]] [def __out__ [link fusion.sequence.operator.i_o.out out]] [def __in__ [link fusion.sequence.operator.i_o.in in]] @@ -185,66 +185,66 @@ [def __gt__ [link fusion.sequence.operator.comparison.greater_than greater than]] [def __gte__ [link fusion.sequence.operator.comparison.greater_than_equal greater than equal]] -[def __algorithm__ [link fusion.algorithms Algorithm]] -[def __algorithms__ [link fusion.algorithms Algorithms]] -[def __fold__ [link fusion.algorithms.iteration.functions.fold `fold`]] -[def __result_of_fold__ [link fusion.algorithms.iteration.metafunctions.fold `result_of::fold`]] -[def __accumulate__ [link fusion.algorithms.iteration.functions.accumulate `accumulate`]] -[def __result_of_accumulate__ [link fusion.algorithms.iteration.metafunctions.accumulate `result_of::accumulate`]] -[def __for_each__ [link fusion.algorithms.iteration.functions.for_each `for_each`]] -[def __result_of_for_each__ [link fusion.algorithms.iteration.metafunctions.for_each `result_of::for_each`]] -[def __any__ [link fusion.algorithms.query.functions.any `any`]] -[def __result_of_any__ [link fusion.algorithms.query.metafunctions.any `result_of::any`]] -[def __all__ [link fusion.algorithms.query.functions.all `all`]] -[def __result_of_all__ [link fusion.algorithms.query.metafunctions.all `result_of::all`]] -[def __none__ [link fusion.algorithms.query.functions.none `none`]] -[def __result_of_none__ [link fusion.algorithms.query.metafunctions.none `result_of::none`]] -[def __find__ [link fusion.algorithms.query.functions.find `find`]] -[def __result_of_find__ [link fusion.algorithms.query.metafunctions.find `result_of::find`]] -[def __find_if__ [link fusion.algorithms.query.functions.find_if `find_if`]] -[def __result_of_find_if__ [link fusion.algorithms.query.metafunctions.find_if `result_of::find_if`]] -[def __count__ [link fusion.algorithms.query.functions.count `count`]] -[def __result_of_count__ [link fusion.algorithms.query.metafunctions.count `result_of::count`]] -[def __count_if__ [link fusion.algorithms.query.functions.count_if `count_if`]] -[def __result_of_count_if__ [link fusion.algorithms.query.metafunctions.count_if `result_of::count_if`]] -[def __filter__ [link fusion.algorithms.transformation.functions.filter `filter`]] -[def __result_of_filter__ [link fusion.algorithms.transformation.metafunctions.filter `result_of::filter`]] -[def __filter_if__ [link fusion.algorithms.transformation.functions.filter_if `filter_if`]] -[def __result_of_filter_if__ [link fusion.algorithms.transformation.metafunctions.filter_if `result_of::filter_if`]] -[def __transform__ [link fusion.algorithms.transformation.functions.transform `transform`]] -[def __result_of_transform__ [link fusion.algorithms.transformation.metafunctions.transform `result_of::transform`]] -[def __replace__ [link fusion.algorithms.transformation.functions.replace `replace`]] -[def __result_of_replace__ [link fusion.algorithms.transformation.metafunctions.replace `result_of::replace`]] -[def __replace_if__ [link fusion.algorithms.transformation.functions.replace_if `replace_if`]] -[def __result_of_replace_if__ [link fusion.algorithms.transformation.metafunctions.replace_if `result_of::replace_if`]] -[def __remove__ [link fusion.algorithms.transformation.functions.remove `remove`]] -[def __result_of_remove__ [link fusion.algorithms.transformation.metafunctions.remove `result_of::remove`]] -[def __remove_if__ [link fusion.algorithms.transformation.functions.remove_if `remove_if`]] -[def __result_of_remove_if__ [link fusion.algorithms.transformation.metafunctions.remove_if `result_of::remove_if`]] -[def __reverse__ [link fusion.algorithms.transformation.functions.reverse `reverse`]] -[def __result_of_reverse__ [link fusion.algorithms.transformation.metafunctions.reverse `result_of::reverse`]] -[def __clear__ [link fusion.algorithms.transformation.functions.clear `clear`]] -[def __result_of_clear__ [link fusion.algorithms.transformation.metafunctions.clear `result_of::clear`]] -[def __erase__ [link fusion.algorithms.transformation.functions.erase `erase`]] -[def __result_of_erase__ [link fusion.algorithms.transformation.metafunctions.erase `result_of::erase`]] -[def __erase_key__ [link fusion.algorithms.transformation.functions.erase_key `erase_key`]] -[def __result_of_erase_key__ [link fusion.algorithms.transformation.metafunctions.erase_key `result_of::erase_key`]] -[def __insert__ [link fusion.algorithms.transformation.functions.insert `insert`]] -[def __result_of_insert__ [link fusion.algorithms.transformation.metafunctions.insert `result_of::insert`]] -[def __insert_range__ [link fusion.algorithms.transformation.functions.insert_range `insert_range`]] -[def __result_of_insert_range__ [link fusion.algorithms.transformation.metafunctions.insert_range `result_of::insert_range`]] -[def __join__ [link fusion.algorithms.transformation.functions.join `join`]] -[def __result_of_join__ [link fusion.algorithms.transformation.metafunctions.join `result_of::join`]] -[def __zip__ [link fusion.algorithms.transformation.functions.zip `zip`]] -[def __result_of_zip__ [link fusion.algorithms.transformation.metafunctions.zip `result_of::zip`]] -[def __pop_back__ [link fusion.algorithms.transformation.functions.pop_back `pop_back`]] -[def __result_of_pop_back__ [link fusion.algorithms.transformation.metafunctions.pop_back `result_of::pop_back`]] -[def __pop_front__ [link fusion.algorithms.transformation.functions.pop_front `pop_front`]] -[def __result_of_pop_front__ [link fusion.algorithms.transformation.metafunctions.pop_front `result_of::pop_front`]] -[def __push_back__ [link fusion.algorithms.transformation.functions.push_back `push_back`]] -[def __result_of_push_back__ [link fusion.algorithms.transformation.metafunctions.push_back `result_of::push_back`]] -[def __push_front__ [link fusion.algorithms.transformation.functions.push_front `push_front`]] -[def __result_of_push_front__ [link fusion.algorithms.transformation.metafunctions.push_front `result_of::push_front`]] +[def __algorithm__ [link fusion.algorithm Algorithm]] +[def __algorithms__ [link fusion.algorithm Algorithms]] +[def __fold__ [link fusion.algorithm.iteration.functions.fold `fold`]] +[def __result_of_fold__ [link fusion.algorithm.iteration.metafunctions.fold `result_of::fold`]] +[def __accumulate__ [link fusion.algorithm.iteration.functions.accumulate `accumulate`]] +[def __result_of_accumulate__ [link fusion.algorithm.iteration.metafunctions.accumulate `result_of::accumulate`]] +[def __for_each__ [link fusion.algorithm.iteration.functions.for_each `for_each`]] +[def __result_of_for_each__ [link fusion.algorithm.iteration.metafunctions.for_each `result_of::for_each`]] +[def __any__ [link fusion.algorithm.query.functions.any `any`]] +[def __result_of_any__ [link fusion.algorithm.query.metafunctions.any `result_of::any`]] +[def __all__ [link fusion.algorithm.query.functions.all `all`]] +[def __result_of_all__ [link fusion.algorithm.query.metafunctions.all `result_of::all`]] +[def __none__ [link fusion.algorithm.query.functions.none `none`]] +[def __result_of_none__ [link fusion.algorithm.query.metafunctions.none `result_of::none`]] +[def __find__ [link fusion.algorithm.query.functions.find `find`]] +[def __result_of_find__ [link fusion.algorithm.query.metafunctions.find `result_of::find`]] +[def __find_if__ [link fusion.algorithm.query.functions.find_if `find_if`]] +[def __result_of_find_if__ [link fusion.algorithm.query.metafunctions.find_if `result_of::find_if`]] +[def __count__ [link fusion.algorithm.query.functions.count `count`]] +[def __result_of_count__ [link fusion.algorithm.query.metafunctions.count `result_of::count`]] +[def __count_if__ [link fusion.algorithm.query.functions.count_if `count_if`]] +[def __result_of_count_if__ [link fusion.algorithm.query.metafunctions.count_if `result_of::count_if`]] +[def __filter__ [link fusion.algorithm.transformation.functions.filter `filter`]] +[def __result_of_filter__ [link fusion.algorithm.transformation.metafunctions.filter `result_of::filter`]] +[def __filter_if__ [link fusion.algorithm.transformation.functions.filter_if `filter_if`]] +[def __result_of_filter_if__ [link fusion.algorithm.transformation.metafunctions.filter_if `result_of::filter_if`]] +[def __transform__ [link fusion.algorithm.transformation.functions.transform `transform`]] +[def __result_of_transform__ [link fusion.algorithm.transformation.metafunctions.transform `result_of::transform`]] +[def __replace__ [link fusion.algorithm.transformation.functions.replace `replace`]] +[def __result_of_replace__ [link fusion.algorithm.transformation.metafunctions.replace `result_of::replace`]] +[def __replace_if__ [link fusion.algorithm.transformation.functions.replace_if `replace_if`]] +[def __result_of_replace_if__ [link fusion.algorithm.transformation.metafunctions.replace_if `result_of::replace_if`]] +[def __remove__ [link fusion.algorithm.transformation.functions.remove `remove`]] +[def __result_of_remove__ [link fusion.algorithm.transformation.metafunctions.remove `result_of::remove`]] +[def __remove_if__ [link fusion.algorithm.transformation.functions.remove_if `remove_if`]] +[def __result_of_remove_if__ [link fusion.algorithm.transformation.metafunctions.remove_if `result_of::remove_if`]] +[def __reverse__ [link fusion.algorithm.transformation.functions.reverse `reverse`]] +[def __result_of_reverse__ [link fusion.algorithm.transformation.metafunctions.reverse `result_of::reverse`]] +[def __clear__ [link fusion.algorithm.transformation.functions.clear `clear`]] +[def __result_of_clear__ [link fusion.algorithm.transformation.metafunctions.clear `result_of::clear`]] +[def __erase__ [link fusion.algorithm.transformation.functions.erase `erase`]] +[def __result_of_erase__ [link fusion.algorithm.transformation.metafunctions.erase `result_of::erase`]] +[def __erase_key__ [link fusion.algorithm.transformation.functions.erase_key `erase_key`]] +[def __result_of_erase_key__ [link fusion.algorithm.transformation.metafunctions.erase_key `result_of::erase_key`]] +[def __insert__ [link fusion.algorithm.transformation.functions.insert `insert`]] +[def __result_of_insert__ [link fusion.algorithm.transformation.metafunctions.insert `result_of::insert`]] +[def __insert_range__ [link fusion.algorithm.transformation.functions.insert_range `insert_range`]] +[def __result_of_insert_range__ [link fusion.algorithm.transformation.metafunctions.insert_range `result_of::insert_range`]] +[def __join__ [link fusion.algorithm.transformation.functions.join `join`]] +[def __result_of_join__ [link fusion.algorithm.transformation.metafunctions.join `result_of::join`]] +[def __zip__ [link fusion.algorithm.transformation.functions.zip `zip`]] +[def __result_of_zip__ [link fusion.algorithm.transformation.metafunctions.zip `result_of::zip`]] +[def __pop_back__ [link fusion.algorithm.transformation.functions.pop_back `pop_back`]] +[def __result_of_pop_back__ [link fusion.algorithm.transformation.metafunctions.pop_back `result_of::pop_back`]] +[def __pop_front__ [link fusion.algorithm.transformation.functions.pop_front `pop_front`]] +[def __result_of_pop_front__ [link fusion.algorithm.transformation.metafunctions.pop_front `result_of::pop_front`]] +[def __push_back__ [link fusion.algorithm.transformation.functions.push_back `push_back`]] +[def __result_of_push_back__ [link fusion.algorithm.transformation.metafunctions.push_back `result_of::push_back`]] +[def __push_front__ [link fusion.algorithm.transformation.functions.push_front `push_front`]] +[def __result_of_push_front__ [link fusion.algorithm.transformation.metafunctions.push_front `result_of::push_front`]] [def __tr1_tuple_pair__ [link fusion.tuple.pairs `TR1 and std::pair`]] [def __tuple_get__ [link fusion.tuple.class_template_tuple.element_access `get`]] @@ -303,7 +303,7 @@ [include container.qbk] [include view.qbk] [include adapted.qbk] -[include algorithms.qbk] +[include algorithm.qbk] [include tuple.qbk] [include extension.qbk] [include functional.qbk] diff --git a/doc/html/fusion/acknowledgements.html b/doc/html/fusion/acknowledgements.html deleted file mode 100644 index b889a16a..00000000 --- a/doc/html/fusion/acknowledgements.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Acknowledgements - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey Gurtovoy, - Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan Marsden, Eric - Niebler, Joao Abecasis and Andy Little. These people are instrumental in the - design and development of Fusion. -

-

- Special thanks to Ronald Garcia, the review manager and to all the people in - the boost community who participated in the review: Andreas Pokorny, Andreas - Huber, Jeff Flinn, David Abrahams, Pedro Lamarao, Larry Evans, Ryan Gallagher, - Andy Little, Gennadiy Rozental, Tobias Schwinger, Joao Abecasis, Eric Niebler, - Oleg Abrosimov, Gary Powell, Eric Friedman, Darren Cook, Martin Bonner and - Douglas Gregor. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms.html b/doc/html/fusion/algorithms.html deleted file mode 100644 index 5812bdf6..00000000 --- a/doc/html/fusion/algorithms.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Algorithms - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- - Lazy Evaluation -

-

- Unlike MPL, Fusion - algorithms are lazy and non sequence-type preserving. What does that mean? - It means that when you operate on a sequence through a Fusion algorithm that - returns a sequence, the sequence returned may not be of the same class as the - original. This is by design. Runtime efficiency is given a high priority. Like - MPL, and unlike - STL, - fusion algorithms are functional in nature such that algorithms are non mutating - (no side effects). However, due to the high cost of returning full sequences - such as vectors and lists, Views are returned from Fusion - algorithms instead. For example, the transform algorithm does not actually - return a transformed version of the original sequence. transform returns a transform_view. This view holds a - reference to the original sequence plus the transform function. Iteration over - the transform_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 - that were once sequence specific and need to be implemented N times over N - different sequences are now implemented only once. That is to say that Fusion - sequences are cheaply extensible. However, an important caveat is that the - result of a sequence extending operation like push_back does not retain the properties - of the original sequence such as associativity of _set_s. - To regain the original sequence, Conversion - functions are provided. You may use one of the Conversion - functions to convert back to the original sequence type. -

-

- - Header -

-
-#include <boost/fusion/algorithm.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/concepts.html b/doc/html/fusion/algorithms/concepts.html deleted file mode 100644 index 492017fe..00000000 --- a/doc/html/fusion/algorithms/concepts.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Concepts - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2005 Joel de Guzman, Dan Marsden
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/concepts/poly.html b/doc/html/fusion/algorithms/concepts/poly.html deleted file mode 100644 index cdfddca7..00000000 --- a/doc/html/fusion/algorithms/concepts/poly.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - 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. -

-
-

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
-
- - - -
Copyright © 2001-2005 Joel de Guzman, Dan Marsden
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration.html b/doc/html/fusion/algorithms/iteration.html deleted file mode 100644 index 2183865c..00000000 --- a/doc/html/fusion/algorithms/iteration.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Iteration - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-

- - Header -

-
-#include <boost/fusion/algorithm/iteration.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/functions.html b/doc/html/fusion/algorithms/iteration/functions.html deleted file mode 100644 index 2efb8e1e..00000000 --- a/doc/html/fusion/algorithms/iteration/functions.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/functions/accumulate.html b/doc/html/fusion/algorithms/iteration/functions/accumulate.html deleted file mode 100644 index 424e78e1..00000000 --- a/doc/html/fusion/algorithms/iteration/functions/accumulate.html +++ /dev/null @@ -1,198 +0,0 @@ - - - -accumulate - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.34. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- Operation's argument -

-
-

- initial_state -

-
-

- Any type -

-
-

- Initial state -

-
-

- f -

-
-

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

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-accumulate(seq, initial_state, f);
-
-

- Return type: Any type -

-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
-
-
- - Example -
-
-struct make_string
-{
-    typedef std::string result_type;
-
-    template<typename T>
-    std::string operator()(const T& t, const std::string& str) const
-    {
-        return str + boost::lexical_cast<std::string>(t);
-    }
-};
-...
-const vector<int,int> vec(1,2);
-assert(accumulate(vec,std::string(""), make_string()) == "12");
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/functions/fold.html b/doc/html/fusion/algorithms/iteration/functions/fold.html deleted file mode 100644 index e1e2f911..00000000 --- a/doc/html/fusion/algorithms/iteration/functions/fold.html +++ /dev/null @@ -1,198 +0,0 @@ - - - -fold - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.33. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- Operation's argument -

-
-

- initial_state -

-
-

- Any type -

-
-

- Initial state -

-
-

- f -

-
-

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

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-fold(seq, initial_state, f);
-
-

- Return type: Any type -

-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
-
-
- - Example -
-
-struct make_string
-{
-    typedef std::string result_type;
-
-    template<typename T>
-    std::string operator()(const T& t, const std::string& str) const
-    {
-        return str + boost::lexical_cast<std::string>(t);
-    }
-};
-...
-const vector<int,int> vec(1,2);
-assert(fold(vec,std::string(""), make_string()) == "12");
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/functions/for_each.html b/doc/html/fusion/algorithms/iteration/functions/for_each.html deleted file mode 100644 index 013ff685..00000000 --- a/doc/html/fusion/algorithms/iteration/functions/for_each.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -for_each - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.35. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- Operation's argument -

-
-

- f -

-
-

- A unary Regular - Callable Object -

-
-

- Operation's argument -

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

- Return type: void -

-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/for_each.hpp>
-
-
- - Example -
-
-struct increment
-{
-    template<typename T>
-    void operator()(T& t) const
-    {
-        ++t;
-    }
-};
-...
-vector<int,int> vec(1,2);
-for_each(vec, increment());
-assert(vec == make_vector(2,3));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/metafunctions.html b/doc/html/fusion/algorithms/iteration/metafunctions.html deleted file mode 100644 index fd27f8a8..00000000 --- a/doc/html/fusion/algorithms/iteration/metafunctions.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html deleted file mode 100644 index b3a5db47..00000000 --- a/doc/html/fusion/algorithms/iteration/metafunctions/accumulate.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -accumulate - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of accumulate. -

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename State,
-    typename F>
-struct accumulate
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.37. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- The sequence to iterate -

-
-

- State -

-
-

- Any type -

-
-

- The initial state for the first application of F -

-
-

- F -

-
-

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

-
-

- The operation to be applied on forward traversal -

-
-
-
- - Expression - Semantics -
-
-result_of::accumulate<Sequence, State, F>::type
-
-

- Return type: Any type -

-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/fold.html b/doc/html/fusion/algorithms/iteration/metafunctions/fold.html deleted file mode 100644 index a319ac39..00000000 --- a/doc/html/fusion/algorithms/iteration/metafunctions/fold.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -fold - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of fold. -

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename State,
-    typename F>
-struct fold
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.36. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- The sequence to iterate -

-
-

- State -

-
-

- Any type -

-
-

- The initial state for the first application of F -

-
-

- F -

-
-

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

-
-

- The operation to be applied on forward traversal -

-
-
-
- - Expression - Semantics -
-
-result_of::fold<Sequence, State, F>::type
-
-

- Return type: Any type -

-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html b/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html deleted file mode 100644 index 09b24b77..00000000 --- a/doc/html/fusion/algorithms/iteration/metafunctions/for_each.html +++ /dev/null @@ -1,158 +0,0 @@ - - - -for_each - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

-
- - Description -
-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename F
->
-struct for_each
-{
-    typedef void type;
-};
-
-
-

Table 1.38. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- F -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::for_each<Sequence, F>::type
-
-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/iteration/for_each.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query.html b/doc/html/fusion/algorithms/query.html deleted file mode 100644 index 41aea719..00000000 --- a/doc/html/fusion/algorithms/query.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Query - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- The query algorithms provide support for searching and analyzing sequences. -

-

- - Header -

-
-#include <boost/fusion/algorithm/query.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions.html b/doc/html/fusion/algorithms/query/functions.html deleted file mode 100644 index b09e34a4..00000000 --- a/doc/html/fusion/algorithms/query/functions.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/all.html b/doc/html/fusion/algorithms/query/functions/all.html deleted file mode 100644 index 52dbfb06..00000000 --- a/doc/html/fusion/algorithms/query/functions/all.html +++ /dev/null @@ -1,177 +0,0 @@ - - - -all - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-all
-
- - Description -
-

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

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

Table 1.40. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- The sequence to search -

-
-

- f -

-
-

- A unary function object -

-
-

- The search predicate -

-
-
-
- - Expression - Semantics -
-
-all(seq, f);
-
-

- Return type: bool -

-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/all.hpp>
-
-
- - Example -
-
-struct odd
-{
-    template<typename T>
-    bool operator()(T t) const
-    {
-        return t % 2;
-    }
-};
-...
-assert(all(make_vector(1,3), odd()));
-assert(!all(make_vector(1,2), odd()));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/any.html b/doc/html/fusion/algorithms/query/functions/any.html deleted file mode 100644 index 4ab9512a..00000000 --- a/doc/html/fusion/algorithms/query/functions/any.html +++ /dev/null @@ -1,177 +0,0 @@ - - - -any - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-any
-
- - Description -
-

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

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

Table 1.39. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- The sequence to search -

-
-

- f -

-
-

- A unary function object -

-
-

- The search predicate -

-
-
-
- - Expression - semantics -
-
-any(seq, f);
-
-

- Return type: bool -

-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/any.hpp>
-
-
- - Example -
-
-struct odd
-{
-    template<typename T>
-    bool operator()(T t) const
-    {
-        return t % 2;
-    }
-};
-...
-assert(any(make_vector(1,2), odd()));
-assert(!any(make_vector(2,4), odd()));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/count.html b/doc/html/fusion/algorithms/query/functions/count.html deleted file mode 100644 index 8d520d6d..00000000 --- a/doc/html/fusion/algorithms/query/functions/count.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -count - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.44. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- The sequence to search -

-
-

- T -

-
-

- Any type -

-
-

- The type to count -

-
-
-
- - Expression - Semantics -
-
-count(seq, t);
-
-

- Return type: int -

-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/count.hpp>
-
-
- - Example -
-
-const vector<double,int,int> vec(1.0,2,3);
-assert(count(vec,2) == 1);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/count_if.html b/doc/html/fusion/algorithms/query/functions/count_if.html deleted file mode 100644 index e34b696f..00000000 --- a/doc/html/fusion/algorithms/query/functions/count_if.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -count_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.45. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- The sequence to search -

-
-

- f -

-
-

- A unary function object -

-
-

- The search predicate -

-
-
-
- - Expression - Semantics -
-
-count_if(seq, f)
-
-

- Return type: int -

-

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

-
- - Complexity -
-

- 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);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/find.html b/doc/html/fusion/algorithms/query/functions/find.html deleted file mode 100644 index ec889050..00000000 --- a/doc/html/fusion/algorithms/query/functions/find.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -find - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename T,
-    typename Sequence
-    >
-unspecified find(Sequence const& seq);
-
-template<
-    typename T,
-    typename Sequence
-    >
-unspecified find(Sequence& seq);
-
-
-

Table 1.42. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- The sequence to search -

-
-

- T -

-
-

- Any type -

-
-

- The type to search for -

-
-
-
- - Expression - Semantics -
-
-find<T>(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) -

-
- - Complexity -
-

- 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/find_if.html b/doc/html/fusion/algorithms/query/functions/find_if.html deleted file mode 100644 index 7c237c4e..00000000 --- a/doc/html/fusion/algorithms/query/functions/find_if.html +++ /dev/null @@ -1,173 +0,0 @@ - - - -find_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

-
- - Description -
-
- - Synopsis -
-
-template<
-    typename F,
-    typename Sequence
-    >
-unspecified find_if(Sequence const& seq);
-
-template<
-    typename F,
-    typename Sequence
-    >
-unspecified find_if(Sequence& seq);
-
-
-

Table 1.43. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- The sequence to search -

-
-

- F -

-
-

- A unary MPL - Lambda Expression -

-
-

- The search predicate -

-
-
-
- - Expression - Semantics -
-
-find_if<F>(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) - if there is no such element. -

-
- - Complexity -
-

- 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/functions/none.html b/doc/html/fusion/algorithms/query/functions/none.html deleted file mode 100644 index c99c944a..00000000 --- a/doc/html/fusion/algorithms/query/functions/none.html +++ /dev/null @@ -1,177 +0,0 @@ - - - -none - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.41. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- The sequence to search -

-
-

- f -

-
-

- A unary function object -

-
-

- The search predicate -

-
-
-
- - Expression - Semantics -
-
-none(seq, f);
-
-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/none.hpp>
-
-
- - Example -
-
-struct odd
-{
-    template<typename T>
-    bool operator()(T t) const
-    {
-        return t % 2;
-    }
-};
-...
-assert(none(make_vector(2,4), odd()));
-assert(!none(make_vector(1,2), odd()));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions.html b/doc/html/fusion/algorithms/query/metafunctions.html deleted file mode 100644 index be03b74c..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/all.html b/doc/html/fusion/algorithms/query/metafunctions/all.html deleted file mode 100644 index 394d74f6..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/all.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -all - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-all
-
- - Description -
-

- A metafunction returning the result type of all. -

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename F
-    >
-struct all
-{
-    typedef bool type;
-};
-
-
-

Table 1.47. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- F -

-
-

- A model of unary Polymorphic - Function Object -

-
-

- Operation's argument -

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

- Return type: bool. -

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/query/all.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/any.html b/doc/html/fusion/algorithms/query/metafunctions/any.html deleted file mode 100644 index 79b3c1ab..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/any.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -any - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-any
-
- - Description -
-

- A metafunction returning the result type of any. -

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename F
-    >
-struct any
-{
-    typedef bool type;
-};
-
-
-

Table 1.46. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- F -

-
-

- A model of unary Polymorphic - Function Object -

-
-

- Operation's argument -

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

- Return type: bool. -

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/query/any.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/count.html b/doc/html/fusion/algorithms/query/metafunctions/count.html deleted file mode 100644 index f5992e7c..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/count.html +++ /dev/null @@ -1,156 +0,0 @@ - - - -count - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct count
-{
-    typedef int type;
-};
-
-
-

Table 1.51. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- heading Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::count<T>::type
-
-

- Return type: int. -

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/query/count.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/count_if.html b/doc/html/fusion/algorithms/query/metafunctions/count_if.html deleted file mode 100644 index 35badef9..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/count_if.html +++ /dev/null @@ -1,156 +0,0 @@ - - - -count_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Pred
-    >
-struct count_if
-{
-    typedef int type;
-};
-
-
-

Table 1.52. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A unary function object -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::count_if<Sequence, Pred>::type
-
-

- Return type: int. -

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/query/count_if.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/find.html b/doc/html/fusion/algorithms/query/metafunctions/find.html deleted file mode 100644 index da040e90..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/find.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -find - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct find
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.49. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- Model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::find<Sequence, T>::type
-
-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/find.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/find_if.html b/doc/html/fusion/algorithms/query/metafunctions/find_if.html deleted file mode 100644 index 8e41a749..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/find_if.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -find_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Pred
-    >
-struct find_if
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.50. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A model of MPL - Lambda Expression -

-
-

- Operation's arguments -

-
-
-
- - Expression - Semantics -
-
-result_of::find_if<Sequence, Pred>::type
-
-

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

-
- - Complexity -
-

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

-
- - Header -
-
-#include <boost/fusion/algorithm/query/find_if.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/query/metafunctions/none.html b/doc/html/fusion/algorithms/query/metafunctions/none.html deleted file mode 100644 index 9e8e0644..00000000 --- a/doc/html/fusion/algorithms/query/metafunctions/none.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -none - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A metafunction returning the result type of none. -

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename F
-    >
-struct none
-{
-    typedef bool type;
-};
-
-
-

Table 1.48. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- F -

-
-

- A model of unary Polymorphic - Function Object -

-
-

- Operation's argument -

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

- Return type: bool. -

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/query/none.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation.html b/doc/html/fusion/algorithms/transformation.html deleted file mode 100644 index c7da6318..00000000 --- a/doc/html/fusion/algorithms/transformation.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Transformation - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- The transformation algorithms create new sequences out of existing sequences - by performing some sort of transformation. In reality the new sequences are - views onto the data in the original sequences. -

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

-
-#include <boost/fusion/algorithm/transformation.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions.html b/doc/html/fusion/algorithms/transformation/functions.html deleted file mode 100644 index 225bfb0b..00000000 --- a/doc/html/fusion/algorithms/transformation/functions.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/clear.html b/doc/html/fusion/algorithms/transformation/functions/clear.html deleted file mode 100644 index 8f351169..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/clear.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -clear - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- clear returns an empty sequence. -

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

Table 1.62. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

- Return type: A model of Forward - 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());
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/erase.html b/doc/html/fusion/algorithms/transformation/functions/erase.html deleted file mode 100644 index 484fab77..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/erase.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -erase - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.63. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameters -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- it1 -

-
-

- A model of Forward - Iterator -

-
-

- Iterator into seq -

-
-

- it2 -

-
-

- A model of Forward - Iterator -

-
-

- Iterator into seq - after it1 -

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

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

-

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

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

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/erase_key.html b/doc/html/fusion/algorithms/transformation/functions/erase_key.html deleted file mode 100644 index b9ad0b0e..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/erase_key.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -erase_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synposis -
-
-template<
-    typename Key,
-    typename Sequence
-    >
-typename result_of::erase_key<Sequence const, Key>::type erase_key(Sequence const& seq);
-
-
-

Table 1.64. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Associative - Sequence -

-
-

- Operation's argument -

-
-

- Key -

-
-

- Any type -

-
-

- Key to erase -

-
-
-
- - Expression - Semantics -
-
-erase_key<Key>(seq);
-
-

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

-

- 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'));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/filter.html b/doc/html/fusion/algorithms/transformation/functions/filter.html deleted file mode 100644 index 02bf4eae..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/filter.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -filter - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.53. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- The type to retain -

-
-
-
- - Expression - Semantics -
-
-filter<T>(seq);
-
-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/filter_if.html b/doc/html/fusion/algorithms/transformation/functions/filter_if.html deleted file mode 100644 index 7142a8c3..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/filter_if.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -filter_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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_. -

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

Table 1.54. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A unary MPL - Lambda Expression -

-
-

- The predicate to filter by -

-
-
-
- - Expression - Semantics -
-
-filter_if<Pred>(seq);
-
-

- 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 - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/insert.html b/doc/html/fusion/algorithms/transformation/functions/insert.html deleted file mode 100644 index 812ba362..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/insert.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -insert - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synposis -
-
-template<
-    typename Sequence,
-    typename Pos,
-    typename T
-    >
-unspecified insert(Sequence const& seq, Pos const& pos, T const& t);
-
-
-

Table 1.65. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- pos -

-
-

- A model of Forward - Iterator -

-
-

- The position to insert at -

-
-

- t -

-
-

- Any type -

-
-

- The value to insert -

-
-
-
- - Expression - Semantics -
-
-insert(seq, p, t);
-
-

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

-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/insert_range.html b/doc/html/fusion/algorithms/transformation/functions/insert_range.html deleted file mode 100644 index b117a4c9..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/insert_range.html +++ /dev/null @@ -1,188 +0,0 @@ - - - -insert_range - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.66. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- pos -

-
-

- A model of Forward - Iterator -

-
-

- The position to insert at -

-
-

- range -

-
-

- A model of Forward - Sequence -

-
-

- Range to insert -

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

- 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. - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/join.html b/doc/html/fusion/algorithms/transformation/functions/join.html deleted file mode 100644 index 44bfe402..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/join.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -join - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Takes 2 sequences and returns a sequence containing the elements of the - 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);
-
-
-

Table 1.67. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- lhs -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- rhs -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

- 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'));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/pop_back.html b/doc/html/fusion/algorithms/transformation/functions/pop_back.html deleted file mode 100644 index 58b34be5..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/pop_back.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -pop_back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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);
-
-
-

Table 1.69. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/pop_front.html b/doc/html/fusion/algorithms/transformation/functions/pop_front.html deleted file mode 100644 index 2177bbbf..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/pop_front.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -pop_front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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);
-
-
-

Table 1.70. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/push_back.html b/doc/html/fusion/algorithms/transformation/functions/push_back.html deleted file mode 100644 index 9d9af052..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/push_back.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -push_back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.71. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- t -

-
-

- Any type -

-
-

- The value to add to the end -

-
-
-
- - Expression - Semantics -
-
-push_back(seq, t);
-
-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/push_front.html b/doc/html/fusion/algorithms/transformation/functions/push_front.html deleted file mode 100644 index 0a600437..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/push_front.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -push_front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.72. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- t -

-
-

- Any type -

-
-

- The value to add to the beginning -

-
-
-
- - Expression - Semantics -
-
-push_back(seq, t);
-
-

- 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 beginning. 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_front.hpp>
-
-
- - Example -
-
-assert(push_front(make_vector(1,2,3),0) == make_vector(0,1,2,3));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/remove.html b/doc/html/fusion/algorithms/transformation/functions/remove.html deleted file mode 100644 index 9f6577d2..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/remove.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -remove - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.59. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Type to remove -

-
-
-
- - Expression - Semantics -
-
-remove<T>(seq);
-
-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/remove_if.html b/doc/html/fusion/algorithms/transformation/functions/remove_if.html deleted file mode 100644 index 622500ca..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/remove_if.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -remove_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.60. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A model of unary MPL - Lambda Expression -

-
-

- Removal predicate -

-
-
-
- - Expression - Semantics -
-
-remove_if<Pred>(seq);
-
-

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

-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/replace.html b/doc/html/fusion/algorithms/transformation/functions/replace.html deleted file mode 100644 index 1d4e7b04..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/replace.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -replace - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.57. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

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

-
-

- Operation's argument -

-
-

- old_value -

-
-

- Any type -

-
-

- Value to replace -

-
-

- new_value -

-
-

- Any type -

-
-

- Replacement value -

-
-
-
- - Expression - Semantics -
-
-replace(seq, old_value, new_value);
-
-

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

-
- - 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/replace_if.html b/doc/html/fusion/algorithms/transformation/functions/replace_if.html deleted file mode 100644 index e7462b27..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/replace_if.html +++ /dev/null @@ -1,194 +0,0 @@ - - - -replace_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

Table 1.58. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- f -

-
-

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

-
-

- Operation's argument -

-
-

- new_value -

-
-

- Any type -

-
-

- Replacement value -

-
-
-
- - Expression - Semantics -
-
-replace_if(seq, f, new_value);
-
-

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

-
- - Complexity -
-

- Constant. Returns a view which is lazily evaluated. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/replace_if.hpp>
-
-
- - Example -
-
-struct odd
-{
-    template<typename T>
-    bool operator()(T t) const
-    {
-        return t % 2;
-    }
-};
-...
-assert(replace_if(make_vector(1,2), odd(), 3) == make_vector(3,2));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/reverse.html b/doc/html/fusion/algorithms/transformation/functions/reverse.html deleted file mode 100644 index cbe0dcde..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/reverse.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -reverse - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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);
-
-
-

Table 1.61. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Bidirectional - Sequence -

-
-

- Operation's argument -

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

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

-

- 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));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/transform.html b/doc/html/fusion/algorithms/transformation/functions/transform.html deleted file mode 100644 index 081723b7..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/transform.html +++ /dev/null @@ -1,292 +0,0 @@ - - - -transform - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Unary - version synopsis -
-
-template<
-    typename Sequence,
-    typename F
-    >
-typename result_of::transform<Sequence const, F>::type transform(
-    Sequence const& seq, F f);
-
-
-

Table 1.55. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- f -

-
-

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

-
-

- Transformation function -

-
-
-
- - Expression - Semantics -
-
-transform(seq, f);
-
-

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

-
- - Binary - version synopsis -
-
-template<
-    typename Sequence1,
-    typename Sequence2,
-    typename F
-    >
-typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
-    Sequence1 const& seq1, Sequence2 const& seq2, F f);
-
-
-

Table 1.56. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq1 -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- seq2 -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- f -

-
-

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

-
-

- Transformation function -

-
-
-

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

-
- - Complexity -
-

- Constant. Returns a view which is lazily evaluated. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/transform.hpp>
-
-
- - Example -
-
-struct triple
-{
-    typedef int result_type;
-
-    int operator()(int t) const
-    {
-        return t * 3;
-    };
-};
-...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/functions/zip.html b/doc/html/fusion/algorithms/transformation/functions/zip.html deleted file mode 100644 index d4f8fa0f..00000000 --- a/doc/html/fusion/algorithms/transformation/functions/zip.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -zip - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-zip
-
- - Description -
-

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

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

Table 1.68. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq1 to seqN -

-
-

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

-
-

- Operation's argument -

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

- 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')) -

-
- - 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'));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions.html b/doc/html/fusion/algorithms/transformation/metafunctions.html deleted file mode 100644 index 0f2ff997..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/clear.html b/doc/html/fusion/algorithms/transformation/metafunctions/clear.html deleted file mode 100644 index 848d0a47..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/clear.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -clear - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence
-    >
-struct clear
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.82. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- Any type -

-
-

- Operation's argument -

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

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

-

- Semantics: Returns an empty sequence. -

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/clear.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/erase.html b/doc/html/fusion/algorithms/transformation/metafunctions/erase.html deleted file mode 100644 index 31344d05..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/erase.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -erase - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

-
- - Description -
-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename It1,
-    typename It2 = unspecified>
-struct erase
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.83. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- It1 -

-
-

- A model of Forward - Iterator -

-
-

- Operation's argument -

-
-

- It2 -

-
-

- A model of Forward - Iterator -

-
-

- Operation's argument -

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

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

-

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

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/erase.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html b/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html deleted file mode 100644 index dd6dd245..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/erase_key.html +++ /dev/null @@ -1,158 +0,0 @@ - - - -erase_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Key
-    >
-struct erase_key
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.84. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Associative - Sequence -

-
-

- Operation's argument -

-
-

- Key -

-
-

- Any type -

-
-

- Key type -

-
-
-
- - Expression - Semantics -
-
-result_of::erase_key<Sequence, Key>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/erase_key.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/filter.html b/doc/html/fusion/algorithms/transformation/metafunctions/filter.html deleted file mode 100644 index f15bf0a2..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/filter.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -filter - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct filter
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.73. Parameter

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Type to retain -

-
-
-
- - Expression - Semantics -
-
-result_of::filter<Sequence, T>::type
-
-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/filter.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html deleted file mode 100644 index 8906392b..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/filter_if.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -filter_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Pred
-    >
-struct filter_if
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.74. Parameter

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A unary MPL - Lambda Expression -

-
-

- Type to retain -

-
-
-
- - Expression - Semantics -
-
-result_of::filter_if<Sequence, Pred>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/filter_if.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/insert.html b/doc/html/fusion/algorithms/transformation/metafunctions/insert.html deleted file mode 100644 index 20a5d409..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/insert.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -insert - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Position,
-    typename T
-    >
-struct insert
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.85. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Position -

-
-

- A model of Forward - Iterator -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::insert<Sequence, Position, T>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/insert.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html b/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html deleted file mode 100644 index a6482a74..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/insert_range.html +++ /dev/null @@ -1,181 +0,0 @@ - - - -insert_range - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Position,
-    typename Range
-    >
-struct insert_range
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.86. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Position -

-
-

- A model of Forward - Iterator -

-
-

- Operation's argument -

-
-

- Range -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/insert_range.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/join.html b/doc/html/fusion/algorithms/transformation/metafunctions/join.html deleted file mode 100644 index 756668ab..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/join.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -join - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename LhSequence,
-    typename RhSequence
-    >
-struct join
-{
-    typedef unspecified type;
-};
-
-
- - Expression - Semantics -
-
-result_of::join<LhSequence, RhSequence>::type
-
-

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

-

- 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 -
-
-#include <boost/fusion/algorithm/transformation/join.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html b/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html deleted file mode 100644 index 86a05857..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/pop_back.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -pop_back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence
-    >
-struct pop_back
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.87. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/tranformation/pop_back.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html b/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html deleted file mode 100644 index 309d7ff8..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/pop_front.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -pop_front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence
-    >
-struct pop_front
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.88. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/pop_front.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html b/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html deleted file mode 100644 index 651aef5d..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/push_back.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -push_back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct push_back
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.89. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::push_back<Sequence, T>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/push_back.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html b/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html deleted file mode 100644 index ea40b769..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/push_front.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -push_front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct push_front
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.90. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::push_front<Sequence, T>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/push_front.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/remove.html b/doc/html/fusion/algorithms/transformation/metafunctions/remove.html deleted file mode 100644 index e7fcd282..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/remove.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -remove - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct remove
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.79. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- Remove elements of this type -

-
-
-
- - Expression - Semantics -
-
-result_of::remove<Sequence, T>::type
-
-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/remove.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html deleted file mode 100644 index c872fb81..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/remove_if.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -remove_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename Pred
-    >
-struct remove_if
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.80. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- Pred -

-
-

- A model of unary MPL - Lambda Expression -

-
-

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

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/remove_if.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/replace.html b/doc/html/fusion/algorithms/transformation/metafunctions/replace.html deleted file mode 100644 index e294e80d..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/replace.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -replace - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename T
-    >
-struct replace
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.77. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- T -

-
-

- Any type -

-
-

- The type of the search and replacement objects -

-
-
-
- - Expression - Semantics -
-
-result_of::replace<Sequence,T>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/replace.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html b/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html deleted file mode 100644 index 11a76dd0..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/replace_if.html +++ /dev/null @@ -1,178 +0,0 @@ - - - -replace_if - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence,
-    typename F,
-    typename T>
-struct replace_if
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.78. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- F -

-
-

- A model of unary Polymorphic - Function Object -

-
-

- Replacement predicate -

-
-

- T -

-
-

- Any type -

-
-

- The type of the replacement object -

-
-
-
- - Expression - Semantics -
-
-result_of::replace_if<Sequence,F,T>::type
-
-

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/replace_if.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html b/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html deleted file mode 100644 index 9cab050a..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/reverse.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -reverse - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence
-    >
-struct reverse
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.81. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A model of Bidirectional - Sequence -

-
-

- Operation's argument -

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

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

-

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

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/reverse.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/transform.html b/doc/html/fusion/algorithms/transformation/metafunctions/transform.html deleted file mode 100644 index dc21f9c4..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/transform.html +++ /dev/null @@ -1,292 +0,0 @@ - - - -transform - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Unary - version synopsis -
-
-template<
-    typename Sequence,
-    typename F
-    >
-typename result_of::transform<Sequence const, F>::type transform(
-    Sequence const& seq, F f);
-
-
-

Table 1.75. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- f -

-
-

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

-
-

- Transformation function -

-
-
-
- - Expression - Semantics -
-
-transform(seq, f);
-
-

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

-
- - Binary - version synopsis -
-
-template<
-    typename Sequence1,
-    typename Sequence2,
-    typename F
-    >
-typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform(
-    Sequence1 const& seq1, Sequence2 const& seq2, F f);
-
-
-

Table 1.76. Parameters

- ----- - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq1 -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- seq2 -

-
-

- A model of Forward - Sequence -

-
-

- Operation's argument -

-
-

- f -

-
-

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

-
-

- Transformation function -

-
-
-

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

-
- - Complexity -
-

- Constant. Returns a view which is lazily evaluated. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/transform.hpp>
-
-
- - Example -
-
-struct triple
-{
-    typedef int result_type;
-
-    int operator()(int t) const
-    {
-        return t * 3;
-    };
-};
-...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/algorithms/transformation/metafunctions/zip.html b/doc/html/fusion/algorithms/transformation/metafunctions/zip.html deleted file mode 100644 index 9a629d83..00000000 --- a/doc/html/fusion/algorithms/transformation/metafunctions/zip.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -zip - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-zip
-
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Sequence1,
-    typename Sequence2,
-    ...
-    typename SequenceN
-    >
-struct zip
-{
-    typedef unspecified type;
-};
-
-
- - Expression - Semantics -
-
-result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
-
-

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

-

- 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')) -

-
- - Complexity -
-

- Constant. -

-
- - Header -
-
-#include <boost/fusion/algorithm/transformation/zip.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/change_log.html b/doc/html/fusion/change_log.html deleted file mode 100644 index b21a629f..00000000 --- a/doc/html/fusion/change_log.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Change log - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- This section summarizes significant changes to the Fusion library. -

-
    -
  • - Sep 27, 2006: Added boost::tuple - support. -
  • -
  • - Nov 17, 2006: Added boost::variant - support. -
  • -
  • - Feb 15, 2007: Added functional module. -
  • -
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/extension.html b/doc/html/fusion/extension.html deleted file mode 100644 index 6187ce86..00000000 --- a/doc/html/fusion/extension.html +++ /dev/null @@ -1,536 +0,0 @@ - - - -Extension - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-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 - sequences is entirely provided using the extension mechanism. -

-

- The process for adding a new sequence type to Fusion is: -

-
    -
  1. - Enable the tag dispatching - mechanism used by Fusion for your sequence type -
  2. -
  3. - Design an iterator type for the sequence -
  4. -
  5. - Provide specialized behaviour for the intrinsic operations of the new Fusion - sequence -
  6. -
-

- - Our example -

-

- In order to illustrate enabling a new sequence type for use with Fusion, we - are going to use the type: -

-
-namespace example
-{
-    struct example_struct
-    {
-        std::string name;
-        int age;
-        example_struct(
-            const std::string& n,
-            int a)
-            : name(n), age(a)
-        {}
-    };
-}
-
-

- We are going to pretend that this type has been provided by a 3rd party library, - and therefore cannot be modified. We shall work through all the necessary steps - to enable example_struct to - serve as an Associative - Sequence as described in the Quick - Start guide. -

-

- - Enabling Tag Dispatching -

-

- The Fusion extensibility mechanism uses tag - dispatching to call the correct code for a given sequence - type. In order to exploit the tag dispatching mechanism we must first declare - a new tag type for the mechanism to use. For example: -

-
-namespace example {
-    struct example_sequence_tag; // Only definition needed
-}
-
-

- 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 - for our sequence type. -

-
-#include <boost/fusion/support/tag_of_fwd.hpp>
-
-namespace boost { namespace fusion { namespace traits {        
-    template<>
-    struct tag_of<example_struct>
-    {
-        typedef example::example_sequence_tag type;
-    };
-}}}
-
-

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

-
-#include <boost/fusion/sequence/adapted/mpl/tag_of.hpp>
-
-

- - Designing a - suitable iterator -

-

- We need an iterator to describe positions, and provide access to the data within - our sequence. As it is straightforward to do, we are going to provide a random - access iterator in our example. -

-

- We will use a simple design, in which the 2 members of example_struct - are given numbered indices, 0 for name - and 1 for age respectively. -

-
-template<typename Struct, int Pos>
-struct example_struct_iterator
-    : boost::fusion::iterator_base<example_struct_iterator<Struct, Pos> >
-{
-    BOOST_STATIC_ASSERT(Pos >=0 && Pos < 3);
-    typedef Struct struct_type;
-    typedef boost::mpl::int_<Pos> index;
-    typedef boost::fusion::random_access_traversal_tag category;
-
-    example_struct_iterator(Struct& str)
-        : struct_(str) {}
-
-    Struct& struct_;
-};
-
-

- A quick summary of the details of our iterator: -

-
    -
  1. - The iterator is parameterized by the type it is iterating over, and the index - of the current element. -
  2. -
  3. - The typedefs struct_type - and index provide convenient - access to information we will need later in the implementation. -
  4. -
  5. - The typedef category allows - the traits::category_of - metafunction to establish the traversal category of the iterator. -
  6. -
  7. - The constructor stores a reference to the example_struct - being iterated over. -
  8. -
-

- We also need to enable tag - dispatching for our iterator type, with another specialization - 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 - template for our iterator's tag type. -

-
-template<>
-struct value_of_impl<example::example_struct_iterator_tag>
-{
-    template<typename Iterator>
-    struct apply;
-
-    template<typename Struct>
-    struct apply<example::example_struct_iterator<Struct, 0> >
-    {
-        typedef std::string type;
-    };
-
-    template<typename Struct>
-    struct apply<example::example_struct_iterator<Struct, 1> >
-    {
-        typedef int type;
-    };
-};
-
-

- The implementation itself is pretty simple, it just uses 2 partial specializations - 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: -

-
-template <typename Iterator>
-struct value_of
-    : extension::value_of_impl<typename detail::tag_of<Iterator>::type>::
-        template apply<Iterator>
-{};
-
-

- So value_of - uses tag dispatching - to select an MPL - Metafunction Class to provide its functionality. You will notice this - pattern throughout the implementation of Fusion. -

-

- Ok, lets enable dereferencing of our iterator. In this case we must provide - a suitable specialization of deref_impl. -

-
-template<>
-struct deref_impl<example::example_struct_iterator_tag>
-{
-    template<typename Iterator>
-    struct apply;
-
-    template<typename Struct>
-    struct apply<example::example_struct_iterator<Struct, 0> >
-    {
-        typedef typename mpl::if_<
-            is_const<Struct>, std::string const&, std::string&>::type type;
-
-        static type
-        call(example::example_struct_iterator<Struct, 0> const& it)
-        {
-            return it.struct_.name;
-        }
-    };
-
-    template<typename Struct>
-    struct apply<example::example_struct_iterator<Struct, 1> >
-    {
-        typedef typename mpl::if_<
-            is_const<Struct>, int const&, int&>::type type;
-
-        static type
-        call(example::example_struct_iterator<Struct, 1> const& it)
-        {
-                return it.struct_.age;
-            }
-        };
-    };
-}
-
-

- 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
-        : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
-            template apply<Iterator>
-    {};
-}
-
-template <typename Iterator>
-typename result_of::deref<Iterator>::type
-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. -

-

- 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 - is const. -

-
- - - - - -
[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 - concepts required. The remainder of the process is very repetitive, simply - 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 - in pretty much the same way. Lets start with forward iteration, by providing - a next_impl: -

-
-template<>
-struct next_impl<example::example_struct_iterator_tag>
-{
-    template<typename Iterator>
-    struct apply
-    {
-        typedef typename Iterator::struct_type struct_type;
-        typedef typename Iterator::index index;
-        typedef example::example_struct_iterator<struct_type, index::value + 1> type;
-
-        static type
-        call(Iterator const& i)
-        {
-             return type(i.struct_);
-        }
-    };
-};
-
-

- 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 - 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 also need to provide a suitable equal_to_impl - so that iterators can be correctly compared. A Bidirectional - Iterator will also need an implementation of prior_impl. - For a Random - Access Iterator distance_impl - and advance_impl also need - to be provided in order to satisfy the necessary complexity guarantees. As - our iterator is a Random - Access Iterator we will have to implement all of these functions. -

-

- 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 - type specialized for our sequence tag: -

-
-template<>
-struct is_sequence_impl<example::example_sequence_tag>
-{
-    template<typename T>
-    struct apply : mpl::true_ {};
-};
-
-

- 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 - iterator to start accessing the data in our sequence. -

-
-template<>
-struct begin_impl<example::example_sequence_tag>
-{
-    template<typename Sequence>
-    struct apply
-    {
-        typedef example::example_struct_iterator<Sequence, 0> type;
-
-        static type
-        call(Sequence& seq)
-        {
-            return type(seq);
-        }
-    };
-};
-
-

- 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 - in the example code. -

-

- For our Random - 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 - 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 - 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. - Our implementation is as follows: -

-
-template<>
-struct at_key_impl<example::example_sequence_tag>
-{
-    template<typename Sequence, typename Key>
-    struct apply;
-
-    template<typename Sequence>
-    struct apply<Sequence, fields::name>
-    {
-        typedef typename mpl::if_<
-            is_const<Sequence>,
-            std::string const&,
-            std::string&>::type type;
-
-        static type
-        call(Sequence& seq)
-        {
-            return seq.name;
-        };
-    };
-
-    template<typename Sequence>
-    struct apply<Sequence, fields::age>
-    {
-        typedef typename mpl::if_<
-            is_const<Sequence>,
-            int const&,
-            int&>::type type;
-
-        static type
-        call(Sequence& seq)
-        {
-            return seq.age;
-        };
-    };
-};
-
-

- 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 - straightforward, and are provided in the example code, along with an implementation - of is_associative_impl. -

-

- - Summary -

-

- We've now worked through the entire process for adding a new random access - sequence and we've also enabled our type to serve as an associative container. - The implementation was slightly longwinded, but followed a simple repeating - pattern. -

-

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

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional.html b/doc/html/fusion/functional.html deleted file mode 100644 index be17d634..00000000 --- a/doc/html/fusion/functional.html +++ /dev/null @@ -1,165 +0,0 @@ - - - -Functional - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Components to call functions and function objects and to make Fusion code callable - through a function object interface. -

-

- - Header -

-
-#include <boost/fusion/functional.hpp>
-
-

- - Fused and unfused - forms -

-

- What is a function call? -

-
-f (a,b,c)
-
-

- It is a name and a tuple written next to each other, left-to-right. -

-

- Although the C++ syntax does not allow to replace (a,b,c) - with some Fusion Sequence, introducing - yet another function provides a solution: -

-
-invoke(f,my_sequence)
-
-

- Alternatively it is possible to apply a simple transformation to f - in order to achieve the same effect: -

-
-f tuple <=> f' (tuple)
-
-

- Now, f' is an unary function that takes the arguments to - f as a tuple; f' - is the fused form of f. - Reading the above equivalence right-to-left to get the inverse transformation, - f is the unfused - form of f'. -

-

- - Calling - functions and function objects -

-

- Having generic C++ code call back arbitrary functions provided by the client - used to be a heavily repetitive task, as different functions can differ in - arity, invocation syntax and other properties that might be part of the type. - Transporting arguments as Fusion sequences and factoring out the invocation - makes Fusion algorithms applicable to function arguments and also reduces the - problem to one invocation syntax and a fixed arity (instead of an arbitrary - number of arbitrary arguments times several syntactic variants times additional - properties). -

-

- Transforming an unfused function into its fused counterpart allows n-ary calls - from an algorithm that invokes an unary Polymorphic - Function Object with Sequence - arguments. -

-

- The library provides several function templates to invoke different kinds of - functions and adapters to transform them into fused form, respectively. Every - variant has a corresponding generator function template that returns an adapter - instance for the given argument. -

-

- - Making - Fusion code callable through a function object interface -

-

- Transforming a fused function into its unfused counterpart allows to create - function objects to accept arbitrary calls. In other words, an unary function - object can be implemented instead of (maybe heavily overloaded) function templates - or function call operators. -

-

- The library provides several adapter variants that implement this transformation, - ranging from strictly typed to fully generic. The latter provides a reusable, - approximate solution to The - Forwarding Problem. Every generic variant has a corresponding generator - function template that returns an adapter instance for the given argument. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters.html b/doc/html/fusion/functional/adapters.html deleted file mode 100644 index ae619462..00000000 --- a/doc/html/fusion/functional/adapters.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - Adapters - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html deleted file mode 100644 index 11971f4b..00000000 --- a/doc/html/fusion/functional/adapters/fused.html +++ /dev/null @@ -1,249 +0,0 @@ - - - -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 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 a target function object that is const or, if the target function object - is held by value, the adapter is const - these semantics have nothing to - do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Function -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/fused_function_object.html b/doc/html/fusion/functional/adapters/fused_function_object.html deleted file mode 100644 index 29f32254..00000000 --- a/doc/html/fusion/functional/adapters/fused_function_object.html +++ /dev/null @@ -1,272 +0,0 @@ - - - -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 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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 Sig>
-    struct result;
-
-    template <class Self, typename T>
-    struct result< Self(T,T) > 
-    { typedef typename remove_reference<T>::type 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html deleted file mode 100644 index d8a83368..00000000 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ /dev/null @@ -1,269 +0,0 @@ - - - -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 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 a target function object that is const or, if the target function object - is held by value, the adapter is const - these semantics have nothing to - do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified - 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 this - case is not implemented). -

-
- - Header -
-
-#include <boost/fusion/functional/adapter/fused_procedure.hpp>
-
-
- - Synopsis -
-
-template <typename Function>
-class fused_procedure;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/unfused_generic.html b/doc/html/fusion/functional/adapters/unfused_generic.html deleted file mode 100644 index cb2e3738..00000000 --- a/doc/html/fusion/functional/adapters/unfused_generic.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -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. -

- -

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

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Function -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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 <typename Sig>
-    struct result;
-
-    template <class Self, class Seq>
-    struct result< Self(Seq) >
-        : result_of::invoke< Function, typename result_of::push_front<
-            typename remove_reference<Seq>::type, T>::type >
-    { };
-
-    template <class Seq>
-    typename result< void(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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html deleted file mode 100644 index af36414c..00000000 --- a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html +++ /dev/null @@ -1,266 +0,0 @@ - - - -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 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Function -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/unfused_rvalue_args.html b/doc/html/fusion/functional/adapters/unfused_rvalue_args.html deleted file mode 100644 index c7a3dedc..00000000 --- a/doc/html/fusion/functional/adapters/unfused_rvalue_args.html +++ /dev/null @@ -1,266 +0,0 @@ - - - -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 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Function -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html deleted file mode 100644 index 22c18ac2..00000000 --- a/doc/html/fusion/functional/adapters/unfused_typed.html +++ /dev/null @@ -1,347 +0,0 @@ - - - -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 esulting function objects are strictly typed (in - other words, non-templatized) with the types from a Sequence. -

-

- The type of the target function is allowed to be const qualified or a reference. - Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used - 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_typed.hpp>
-
-
- - Synopsis -
-
-template <class Function, class Sequence>
-class unfused_typed;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Function -

-
-

- A unary Polymorphic - Function Object -

-
-

-

-
-

- Sequence -

-
-

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

- Expression -

-
-

- Semantics -

-
-

- 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)
-    { }
-
-    typedef void result_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 <typename Sig>
-    struct result;
-
-    template <class Self, class Seq>
-    struct result< Self(Seq) >
-    {
-        typedef typename remove_reference<Seq>::type seq;
-
-        typedef unfused_typed< fused_parallel_adder<seq>, 
-            typename mpl::transform<seq, remove_reference<_> >::type > type;
-    };
-
-    template <class Seq>
-    typename result< void(Seq) >::type operator()(Seq const & tie)
-    {
-        return typename result< void(Seq) >::type(
-            fused_parallel_adder<Seq>(tie) );
-    }
-};
-unfused_lvalue_args<fused_parallel_adder_maker> parallel_add;
-
-void try_it()
-{
-    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');
-}
-
-
- - See also -
- -
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/concepts.html b/doc/html/fusion/functional/concepts.html deleted file mode 100644 index 57f2d4ec..00000000 --- a/doc/html/fusion/functional/concepts.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Concepts - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/concepts/callable.html b/doc/html/fusion/functional/concepts/callable.html deleted file mode 100644 index 7173fa39..00000000 --- a/doc/html/fusion/functional/concepts/callable.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - Callable Object - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A pointer to a function, a pointer to member function, a pointer to member - data, or a class type whose objects can appear immediately to the left - of a function call operator. -

-
- - Models -
-
    -
  • - function pointer types -
  • -
  • - member (function or data) pointer types -
  • -
  • - all kinds of function objects -
  • -
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html deleted file mode 100644 index 3b1dcfea..00000000 --- a/doc/html/fusion/functional/concepts/def_callable.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - Deferred - Callable Object - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Callable Object - types that work with Boost.ResultOf - to determine the result of a call. -

-
- - Refinement - of -
- - -
-

Notation

-
-
F
-

- A possibly const qualified Deferred Callable Object type -

-
A1 - ...AN
-

- Argument types -

-
a1 - ...aN
-

- Objects or references to objects with types A1 - ...AN -

-
T1 - ...TN
-

- Ti is Ai & - if ai is an LValue, - same as Ai, otherwise -

-
-
-
- - Expression - requirements -
-
---- - - - - - - - - -
-

- Expression -

-
-

- Type -

-
-

- boost::result_of< F(T1 - ...TN) >::type -

-
-

- Result of a call with A1 - ...AN-typed - arguments -

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html deleted file mode 100644 index 51d40c94..00000000 --- a/doc/html/fusion/functional/concepts/poly.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - Polymorphic Function - Object - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A non-member-pointer Deferred - Callable Object type. -

-
- - Refinement - of -
- -
-

Notation

-
-
F
-

- A possibly const-qualified Polymorphic Function Object type -

-
f
-

- An object or reference to an object of type F -

-
A1 - ...AN
-

- Argument types -

-
a1 - ...aN
-

- Objects or references to objects with types A1 - ...AN -

-
T1 - ...TN
-

- Ti is Ai & - if ai is an LValue, - same as Ai, otherwise -

-
-
-
- - Expression - requirements -
-
----- - - - - - - - - - - -
-

- Expression -

-
-

- Return Type -

-
-

- Runtime Complexity -

-
-

- f(a1, - ...aN) -

-
-

- result_of< - F(T1, - ...TN) >::type -

-
-

- Unspecified -

-
-
- - Models -
-
    -
  • - function pointers -
  • -
  • - function objects of the Standard Library -
  • -
  • - all Fusion functional adapters -
  • -
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/concepts/reg_callable.html b/doc/html/fusion/functional/concepts/reg_callable.html deleted file mode 100644 index 9c77799e..00000000 --- a/doc/html/fusion/functional/concepts/reg_callable.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - Regular Callable - Object - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A non-member-pointer Callable - Object type: A pointer to a function or a class type whose objects - can appear immediately to the left of a function call operator. -

-
- - Refinement - of -
- -
-

Notation

-
-
F
-

- A possibly const qualified Deferred Callable Object type -

-
f
-

- An object or reference to an object of type F -

-
A1 - ...AN
-

- Argument types -

-
a1 - ...aN
-

- Objects or references to objects with types A1 - ...AN -

-
-
-
- - Expression - requirements -
-
----- - - - - - - - - - - -
-

- Expression -

-
-

- Return Type -

-
-

- Runtime Complexity -

-
-

- f(a1, - ...aN) -

-
-

- Unspecified -

-
-

- Unspecified -

-
-
- - Models -
-
    -
  • - function pointer types -
  • -
  • - all kinds of function objects -
  • -
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html deleted file mode 100644 index e1357a8f..00000000 --- a/doc/html/fusion/functional/generation.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -Generation - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html deleted file mode 100644 index 34884793..00000000 --- a/doc/html/fusion/functional/generation/functions.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_fused.html b/doc/html/fusion/functional/generation/functions/mk_fused.html deleted file mode 100644 index 90d094bd..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_fused.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html deleted file mode 100644 index ce3e0273..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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 Sig>
-    struct result;
-
-    template <class Self, typename T>
-    struct result< Self(T,T) > 
-    { typedef typename remove_reference<T>::type 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html deleted file mode 100644 index 595d4989..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html b/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html deleted file mode 100644 index 80bbc223..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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
-{
-    typedef void result_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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html b/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html deleted file mode 100644 index 52a2e9ab..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html b/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html deleted file mode 100644 index 81f544ec..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - 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 -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html deleted file mode 100644 index affc3033..00000000 --- a/doc/html/fusion/functional/generation/metafunctions.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html deleted file mode 100644 index 783bf3f4..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html deleted file mode 100644 index dc086afa..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html deleted file mode 100644 index 311b2e53..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html deleted file mode 100644 index 22902a51..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html deleted file mode 100644 index e4f19295..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html deleted file mode 100644 index ea4497e6..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html deleted file mode 100644 index 8c6f38ef..00000000 --- a/doc/html/fusion/functional/invocation.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -Invocation - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html deleted file mode 100644 index c7abfbba..00000000 --- a/doc/html/fusion/functional/invocation/functions.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/functions/invoke.html b/doc/html/fusion/functional/invocation/functions/invoke.html deleted file mode 100644 index 8c5f16a7..00000000 --- a/doc/html/fusion/functional/invocation/functions/invoke.html +++ /dev/null @@ -1,192 +0,0 @@ - - - -invoke - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-

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

-

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- A Deferred - Callable Object -

-
-

- The function to call. -

-
-

- s -

-
-

- A 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html deleted file mode 100644 index 6df89ed8..00000000 --- a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - invoke_function_object - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-

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

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model of Polymorphic - Function Object -

-
-

- The function object to call. -

-
-

- s -

-
-

- Model of Forward - Sequence -

-
-

- The arguments. -

-
-
- - Expression - Semantics -
-
-invoke_function_object(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 Sig>
-    struct result;
-
-    template <class Self, typename T>
-    struct result< Self(T,T) > 
-    { typedef typename remove_reference<T>::type 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/functions/invoke_proc.html b/doc/html/fusion/functional/invocation/functions/invoke_proc.html deleted file mode 100644 index aa841307..00000000 --- a/doc/html/fusion/functional/invocation/functions/invoke_proc.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - 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 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 -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- f -

-
-

- Model of Callable - Object -

-
-

- The function to call. -

-
-

- s -

-
-

- Model 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-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/metafunctions.html b/doc/html/fusion/functional/invocation/metafunctions.html deleted file mode 100644 index e9df0740..00000000 --- a/doc/html/fusion/functional/invocation/metafunctions.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke.html b/doc/html/fusion/functional/invocation/metafunctions/invoke.html deleted file mode 100644 index b50b8089..00000000 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -invoke - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of invoke. -

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

- Returns the result type of invoke_function_object. -

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

- Returns the result type of invoke_procedure. -

-
- - Synopsis -
-
-namespace result_of
-{
-    template<
-        typename Function, 
-        class Sequence
-        > 
-    struct invoke_procedure
-    {
-        typedef unspecified type;
-    };
-}
-
-
- - See - also -
- -
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html deleted file mode 100644 index ec7fdb70..00000000 --- a/doc/html/fusion/introduction.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -Introduction - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 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, - and so on. -

-

- True, you can use inheritance to make the containers hold different types, - related through subclassing. However, you have to hold the objects through - a pointer or smart reference of some sort. Doing this, you'll have to rely - 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, - 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 - to perform dangerous casts to get back the original type. -

-

- The Boost.Tuple - library written by Jaakko - 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 - and return types. As it is, the Boost.Tuple - facility is already very useful. Yet, as soon as you use it more often, usage - patterns emerge. Eventually, you collect these patterns into algorithm libraries. -

-

- Hmmm, kinda reminds us of STL right? Right! Can you imagine how it would be - like if you used STL without the algorithms? Everyone will have to reinvent - their own algorithm wheels. -

-

- Fusion is a library and a framework similar to both STL - and the boost MPL. - The structure is modeled after MPL, - which is modeled after STL. - It is named "fusion" because the library is reminiscent of the "fusion" - of compile time meta-programming with runtime programming. The library inherently - has some interesting flavors and characteristics of both MPL - and STL. - It lives in the twilight zone between compile time meta-programming and run - time programming. STL - containers work on values. MPL containers work on types. Fusion containers - work on both types and values. -

-

- Unlike MPL, Fusion - algorithms are lazy and non sequence-type preserving. What does that mean? - It means that when you operate on a sequence through a Fusion algorithm that - returns a sequence, the sequence returned may not be of the same class as the - original. This is by design. Runtime efficiency is given a high priority. Like - MPL, and unlike - STL, - fusion algorithms are functional in nature such that algorithms are non mutating - (no side effects). However, due to the high cost of returning full sequences - such as vectors and lists, Views are returned from Fusion - algorithms instead. For example, the transform algorithm does not actually - return a transformed version of the original sequence. transform returns a transform_view. This view holds a - reference to the original sequence plus the transform function. Iteration over - the transform_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 - that were once sequence specific and need to be implemented N times over N - different sequences are now implemented only once. -

-

- Fusion provides full round compatibility with MPL. - Fusion sequences are fully conforming MPL - sequences and MPL - sequences are fully compatible with Fusion. You can work with Fusion sequences - on MPL if you - wish to work solely on types. In MPL, - Fusion sequences follow MPL's - sequence-type preserving semantics (i.e. algorithms preserve the original sequence - type. e.g. transforming a vector returns a vector). You can also convert from - an MPL sequence - to a Fusion sequence. For example, there are times when it is convenient to - work solely on MPL - using pure MPL - sequences, then, convert them to Fusion sequences as a final step before actual - instantiation of real runtime objects with data. You have the best of both - worlds. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators.html b/doc/html/fusion/iterators.html deleted file mode 100644 index 48583fa5..00000000 --- a/doc/html/fusion/iterators.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Iterators - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Like MPL and - STL, - iterators are a fundamental concept in Fusion. As with MPL - and STL - iterators describe positions, and provide access to data within an underlying - Sequence. -

-

- - Header -

-
-#include <boost/fusion/iterator.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/concepts.html b/doc/html/fusion/iterators/concepts.html deleted file mode 100644 index 2ec27b7e..00000000 --- a/doc/html/fusion/iterators/concepts.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Concepts - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Fusion iterators are divided into different traversal categories. Forward - Iterator is the most basic concept. Bidirectional - Iterator is a refinement of Forward - Iterator. Random - Access Iterator is a refinement of Bidirectional - Iterator. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/concepts/bidirectional_iterator.html b/doc/html/fusion/iterators/concepts/bidirectional_iterator.html deleted file mode 100644 index d0331405..00000000 --- a/doc/html/fusion/iterators/concepts/bidirectional_iterator.html +++ /dev/null @@ -1,320 +0,0 @@ - - - -Bidirectional - Iterator - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Bidirectional Iterator traverses a Sequence - allowing movement in either direction one element at a time. -

-
-

Notation

-
-
i
-

- A Bidirectional Iterator -

-
I
-

- A Bidirectional Iterator type -

-
M
-

- An MPL - integral constant -

-
N
-

- An integral constant -

-
-
-
- - Refinement - of -
-

- Forward Iterator -

-
- - Expression - requirements -
-

- In addition to the requirements defined in Forward - Iterator, the following expressions must be valid: -

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Runtime Complexity -

-
-

- next(i) -

-
-

- Bidirectional - Iterator -

-
-

- Constant -

-
-

- prior(i) -

-
-

- Bidirectional - Iterator -

-
-

- Constant -

-
-

- advance_c<N>(i) -

-
-

- Bidirectional - Iterator -

-
-

- Constant -

-
-

- advance<M>(i) -

-
-

- Bidirectional - Iterator -

-
-

- Constant -

-
-
- - Meta - Expressions -
-
---- - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::prior<I>::type -

-
-

- Amortized constant time -

-
-
- - Expression - Semantics -
-

- The semantics of an expression are defined only where they differ from, - or are not defined in Forward - Iterator -

-
---- - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- prior(i) -

-
-

- An iterator to the element preceding i -

-
-
- - Invariants -
-

- In addition to the invariants of Forward - Iterator, the following invariants always hold: -

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/concepts/forward_iterator.html b/doc/html/fusion/iterators/concepts/forward_iterator.html deleted file mode 100644 index 428c454e..00000000 --- a/doc/html/fusion/iterators/concepts/forward_iterator.html +++ /dev/null @@ -1,577 +0,0 @@ - - - -Forward - Iterator - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Forward Iterator traverses a Sequence - allowing movement in only one direction through it's elements, one element - at a time. -

-
-

Notation

-
-
i, - j
-

- Forward Iterators -

-
I, - J
-

- Forward Iterator types -

-
M
-

- An MPL - integral constant -

-
N
-

- An integral constant -

-
-
-
- - Expression - requirements -
-

- A type models Forward Iterator if, in addition to being CopyConstructable, - the following expressions are valid: -

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Runtime Complexity -

-
-

- next(i) -

-
-

- Forward - Iterator -

-
-

- Constant -

-
-

- i == - j -

-
-

- Convertible to bool -

-
-

- Constant -

-
-

- i != - j -

-
-

- Convertible to bool -

-
-

- Constant -

-
-

- advance_c<N>(i) -

-
-

- Forward - Iterator -

-
-

- Constant -

-
-

- advance<M>(i) -

-
-

- Forward - Iterator -

-
-

- Constant -

-
-

- distance(i, - j) -

-
-

- result_of::distance<I, - J>::type -

-
-

- Constant -

-
-

- deref(i) -

-
-

- result_of::deref<I>::type -

-
-

- Constant -

-
-

- *i -

-
-

- result_of::deref<I>::type -

-
-

- Constant -

-
-
- - Meta - Expressions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::next<I>::type -

-
-

- Amortized constant time -

-
-

- result_of::equal_to<I, - J>::type -

-
-

- Amortized constant time -

-
-

- result_of::advance_c<I, - N>::type -

-
-

- Linear -

-
-

- result_of::advance<I ,M>::type -

-
-

- Linear -

-
-

- result_of::distance<I ,J>::type -

-
-

- Linear -

-
-

- result_of::deref<I>::type -

-
-

- Amortized constant time -

-
-

- result_of::value_of<I>::type -

-
-

- Amortized constant time -

-
-
- - Expression - Semantics -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- next(i) -

-
-

- An iterator to the element following i -

-
-

- i == - j -

-
-

- Iterator equality comparison -

-
-

- i != - j -

-
-

- Iterator inequality comparison -

-
-

- advance_c<N>(i) -

-
-

- An iterator n elements after i - in the sequence -

-
-

- advance<M>(i) -

-
-

- Equivalent to advance_c<M::value>(i) -

-
-

- distance(i, - j) -

-
-

- The number of elements between i - and j -

-
-

- deref(i) -

-
-

- The element at positioni -

-
-

- *i -

-
-

- Equivalent 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
  • -
  • - Using next to traverse the - sequence will never return to a previously seen position -
  • -
  • -deref(i) - is equivalent to *i -
  • -
  • - If i == - j then *i is equivalent to *j -
  • -
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/concepts/random_access_iterator.html b/doc/html/fusion/iterators/concepts/random_access_iterator.html deleted file mode 100644 index ce0ebfe2..00000000 --- a/doc/html/fusion/iterators/concepts/random_access_iterator.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -Random - Access Iterator - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Random Access Iterator traverses a Sequence - moving in either direction, permitting efficient arbitrary distance movements - back and forward through the sequence. -

-
-

Notation

-
-
i, - j
-

- Random Access Iterators -

-
I, - J
-

- Random Access Iterator types -

-
M
-

- An MPL - integral constant -

-
N
-

- An integral constant -

-
-
-
- - Refinement - of -
-

- Bidirectional - Iterator -

-
- - Expression - requirements -
-

- In addition to the requirements defined in Bidirectional - Iterator, the following expressions must be valid: -

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Runtime Complexity -

-
-

- next(i) -

-
-

- Random - Access Iterator -

-
-

- Constant -

-
-

- prior(i) -

-
-

- Random - Access Iterator -

-
-

- Constant -

-
-

- advance_c<N>(i) -

-
-

- Random - Access Iterator -

-
-

- Constant -

-
-

- advance<M>(i) -

-
-

- Random - Access Iterator -

-
-

- Constant -

-
-
- - Meta - Expressions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::advance_c<I, - N>::type -

-
-

- Amortized constant time -

-
-

- result_of::advance<I, - M>::type -

-
-

- Amortized constant time -

-
-

- result_of::distance<I ,J>::type -

-
-

- Amortized constant time -

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions.html b/doc/html/fusion/iterators/functions.html deleted file mode 100644 index 773ec877..00000000 --- a/doc/html/fusion/iterators/functions.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Fusion provides functions for manipulating iterators, analogous to the similar - functions from the MPL - library. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/advance.html b/doc/html/fusion/iterators/functions/advance.html deleted file mode 100644 index dc7ee092..00000000 --- a/doc/html/fusion/iterators/functions/advance.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -advance - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator by a specified distance. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename M
-    >
-typename result_of::advance<I, M>::type advance(I const& i); 
-
-
-

Table 1.6. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Forward - Iterator -

-
-

- Iterator to move relative to -

-
-

- N -

-
-

- An MPL - Integral Constant -

-
-

- Number of positions to move -

-
-
-
- - Expression - Semantics -
-
-advance<M>(i);
-
-

- Return type: A model of the same iterator - concept as i. -

-

- Semantics: Returns an iterator to the - element M positions from - i. If i - is a Bidirectional - Iterator then M - may be negative. -

-
- - Header -
-
-#include <boost/fusion/iterator/advance.hpp>
-
-
- - Example -
-
-typedef vector<int,int,int> vec;
-
-vec v(1,2,3);
-assert(deref(advance<mpl::int_<2> >(begin(v))) == 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/advance_c.html b/doc/html/fusion/iterators/functions/advance_c.html deleted file mode 100644 index f4f402ce..00000000 --- a/doc/html/fusion/iterators/functions/advance_c.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -advance_c - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator by a specified distance. -

-
- - Synopsis -
-
-template<
-    typename I,
-    int N
-    >
-typename result_of::advance_c<I, N>::type advance_c(I const& i); 
-
-
-

Table 1.7. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Forward - Iterator -

-
-

- Iterator to move relative to -

-
-

- N -

-
-

- Integer constant -

-
-

- Number of positions to move -

-
-
-
- - Expression - Semantics -
-
-advance_c<N>(i);
-
-

- Return type: A model of the same iterator - concept as i. -

-

- Semantics: Returns an iterator to the - element N positions from - i. If i - is a Bidirectional - Iterator then N - may be negative. -

-
- - Header -
-
-#include <boost/fusion/iterator/advance.hpp>
-
-
- - Example -
-
-typedef vector<int,int,int> vec;
-
-vec v(1,2,3);
-assert(deref(advance_c<2>(begin(v))) == 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/deref.html b/doc/html/fusion/iterators/functions/deref.html deleted file mode 100644 index 10629ccb..00000000 --- a/doc/html/fusion/iterators/functions/deref.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -deref - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Deferences an iterator. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-typename result_of::deref<I>::type deref(I const& i);
-
-
-

Table 1.2. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-deref(i);
-
-

- Return type: result_of::deref<I>::type -

-

- Semantics: Dereferences the iterator - i. -

-
- - Header -
-
-#include <boost/fusion/iterator/deref.hpp>
-
-
- - Example -
-
-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);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/distance.html b/doc/html/fusion/iterators/functions/distance.html deleted file mode 100644 index df606479..00000000 --- a/doc/html/fusion/iterators/functions/distance.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -distance - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the distance between 2 iterators. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename J
-    >
-typename result_of::distance<I, J>::type distance(I const& i, J const& j);
-
-
-

Table 1.5. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i, j -

-
-

- Models of Forward - Iterator into the same sequence -

-
-

- The start and end points of the distance to be measured -

-
-
-
- - Expression - Semantics -
-
-distance(i,j);
-
-

- Return type: int -

-

- Semantics: Returns the distance between - iterators i and j. -

-
- - Header -
-
-#include <boost/fusion/iterator/distance.hpp>
-
-
- - Example -
-
-typedef vector<int,int,int> vec;
-
-vec v(1,2,3);
-assert(distance(begin(v), next(next(begin(v)))) == 2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/next.html b/doc/html/fusion/iterators/functions/next.html deleted file mode 100644 index b4dc0827..00000000 --- a/doc/html/fusion/iterators/functions/next.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -next - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator 1 position forwards. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-typename result_of::next<I>::type next(I const& i);
-
-
-

Table 1.3. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-next(i);
-
-

- Return type: A model of the same iterator - concept as 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;
-
-vec v(1,2,3);
-assert(deref(begin(v)) == 1);
-assert(deref(next(begin(v))) == 2);
-assert(deref(next(next(begin(v)))) == 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/functions/prior.html b/doc/html/fusion/iterators/functions/prior.html deleted file mode 100644 index 9eaba7b7..00000000 --- a/doc/html/fusion/iterators/functions/prior.html +++ /dev/null @@ -1,136 +0,0 @@ - - - -prior - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator 1 position backwards. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-typename result_of::prior<I>::type prior(I const& i);
-
-
-

Table 1.4. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Bidirectional - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-prior(i);
-
-

- Return type: A model of the same iterator - concept as i. -

-

- Semantics: Returns an iterator to the - element prior to i. -

-
- - Header -
-
-#include <boost/fusion/iterator/prior.hpp>
-
-
- - Example -
-
-typedef vector<int,int> vec;
-
-vec v(1,2);
-assert(deref(next(begin(v))) == 2);
-assert(deref(prior(next(begin(v)))) == 1);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions.html b/doc/html/fusion/iterators/metafunctions.html deleted file mode 100644 index 22b175b9..00000000 --- a/doc/html/fusion/iterators/metafunctions.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/advance.html b/doc/html/fusion/iterators/metafunctions/advance.html deleted file mode 100644 index 00b4468f..00000000 --- a/doc/html/fusion/iterators/metafunctions/advance.html +++ /dev/null @@ -1,165 +0,0 @@ - - - -advance - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator a specified distance. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename M
-    >
-struct advance
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.17. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Forward - Iterator -

-
-

- Iterator to move relative to -

-
-

- M -

-
-

- Model of MPL - Integral Constant -

-
-

- Number of positions to move -

-
-
-
- - Expression - Semantics -
-
-result_of::advance<I,M>::type
-
-

- Return type: A model of the same iterator - concept as I. -

-

- Semantics: Returns an iterator a distance - M from I. - If I is a Bidirectional - Iterator then M - 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;
-
-BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/advance_c.html b/doc/html/fusion/iterators/metafunctions/advance_c.html deleted file mode 100644 index 0f174158..00000000 --- a/doc/html/fusion/iterators/metafunctions/advance_c.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -advance_c - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Moves an iterator by a specified distance. -

-
- - Synopsis -
-
-template<
-    typename I,
-    int N
-    >
-struct advance_c
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.18. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Forward - Iterator -

-
-

- Iterator to move relative to -

-
-

- N -

-
-

- Integer constant -

-
-

- Number of positions to move -

-
-
-
- - Expression - Semantics -
-
-result_of::advance_c<I, N>::type
-
-

- Return type: A model of the same iterator - concept as I. -

-

- Semantics: Returns an iterator a distance - N from I. - If I is a Bidirectional - Iterator then N - may be negative. Equivalent to result_of::advance<I, boost::mpl::int_<N> >::type. -

-
- - 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;
-
-BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance_c<first, 2>::type, third>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/deref.html b/doc/html/fusion/iterators/metafunctions/deref.html deleted file mode 100644 index b8d9b5b7..00000000 --- a/doc/html/fusion/iterators/metafunctions/deref.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -deref - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synposis -
-
-template<
-    typename I
-    >
-struct deref
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.12. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::deref<I>::type
-
-

- Return type: Any type -

-

- 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 const vec const_vec;
-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;
-
-BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
-BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/distance.html b/doc/html/fusion/iterators/metafunctions/distance.html deleted file mode 100644 index 743318e8..00000000 --- a/doc/html/fusion/iterators/metafunctions/distance.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -distance - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the distance between two iterators. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename J
-    >
-struct distance
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.16. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I, J -

-
-

- Models of Forward - Iterator into the same sequence -

-
-

- The start and end points of the distance to be measured -

-
-
-
- - Expression - Semantics -
-
-result_of::distance<I, J>::type
-
-

- Return type: A model of MPL - Integral Constant. -

-

- 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;
-
-BOOST_MPL_ASSERT_RELATION(dist::value, ==, 2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/equal_to.html b/doc/html/fusion/iterators/metafunctions/equal_to.html deleted file mode 100644 index a79af3d5..00000000 --- a/doc/html/fusion/iterators/metafunctions/equal_to.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -equal_to - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename I,
-    typename J
-    >
-struct equal_to
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.15. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I, J -

-
-

- Any fusion iterators -

-
-

- Operation's arguments -

-
-
-
- - Expression - Semantics -
-
-result_of::equal_to<I, J>::type
-
-

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

-
- - 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>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/next.html b/doc/html/fusion/iterators/metafunctions/next.html deleted file mode 100644 index 14873188..00000000 --- a/doc/html/fusion/iterators/metafunctions/next.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -next - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the type of the next iterator in a sequence. -

-
- - Synposis -
-
-template<
-    typename I
-    >
-struct next
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.13. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::next<I>::type
-
-

- Return type: A model of the same iterator - concept as 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;
-
-BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/prior.html b/doc/html/fusion/iterators/metafunctions/prior.html deleted file mode 100644 index 108996d0..00000000 --- a/doc/html/fusion/iterators/metafunctions/prior.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -prior - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the type of the previous iterator in a sequence. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-struct prior
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.14. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Bidirectional - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::prior<I>::type
-
-

- Return type: A model of the same iterator - concept as 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;
-
-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>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/metafunctions/value_of.html b/doc/html/fusion/iterators/metafunctions/value_of.html deleted file mode 100644 index 43183877..00000000 --- a/doc/html/fusion/iterators/metafunctions/value_of.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -value_of - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the type stored at the position of an iterator. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-struct value_of
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.11. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- I -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-result_of::value_of<I>::type
-
-

- Return type: Any type -

-

- 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;
-
-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&>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/operators.html b/doc/html/fusion/iterators/operators.html deleted file mode 100644 index 5b4fff25..00000000 --- a/doc/html/fusion/iterators/operators.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Operators - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Overloaded operators are provided to provide a more natural syntax for dereferencing - iterators, and comparing them for equality. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/operators/operator_equality.html b/doc/html/fusion/iterators/operators/operator_equality.html deleted file mode 100644 index 11217f05..00000000 --- a/doc/html/fusion/iterators/operators/operator_equality.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - Operator - == - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Compares 2 iterators for equality. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename J
-    >
-unspecified operator==(I const& i, J const& i);
-
-
-

Table 1.9. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i, j -

-
-

- Any fusion iterators -

-
-

- Operation's arguments -

-
-
-
- - Expression - Semantics -
-
-i == j
-
-

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

-
- - Header -
-
-#include <boost/fusion/iterator/equal_to.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/operators/operator_inequality.html b/doc/html/fusion/iterators/operators/operator_inequality.html deleted file mode 100644 index b45b56c0..00000000 --- a/doc/html/fusion/iterators/operators/operator_inequality.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - Operator - != - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Compares 2 iterators for inequality. -

-
- - Synopsis -
-
-template<
-    typename I,
-    typename J
-    >
-unspecified operator==(I const& i, J const& i);
-
-
-

Table 1.10. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i, j -

-
-

- Any fusion iterators -

-
-

- Operation's arguments -

-
-
-
- - Expression - Semantics -
-

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

-
- - Header -
-
-#include <boost/fusion/iterator/equal_to.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/iterators/operators/operator_unary_star.html b/doc/html/fusion/iterators/operators/operator_unary_star.html deleted file mode 100644 index e662dc4b..00000000 --- a/doc/html/fusion/iterators/operators/operator_unary_star.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - Operator - * - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Dereferences an iterator. -

-
- - Synopsis -
-
-template<
-    typename I
-    >
-typename result_of::deref<I>::type operator*(unspecified<I> const& i);
-
-
-

Table 1.8. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- i -

-
-

- Model of Forward - Iterator -

-
-

- Operation's argument -

-
-
-
- - Expression - Semantics -
-
-*i
-
-

- Return type: Equivalent to the return - type of deref(i). -

-

- Semantics: Equivalent to deref(i). -

-
- - Header -
-
-#include <boost/fusion/iterator/deref.hpp>
-
-
- - Example -
-
-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);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/notes.html b/doc/html/fusion/notes.html deleted file mode 100644 index cdb87296..00000000 --- a/doc/html/fusion/notes.html +++ /dev/null @@ -1,257 +0,0 @@ - - - -Notes - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Recursive Inlined - Functions -

-

- An interesting peculiarity of functions like at when applied to a Forward - Sequence like list is that what could have been - linear runtime complexity effectively becomes constant O(1) due to compiler - optimization of C++ inlined functions, however deeply recursive (up to a certain - compiler limit of course). Compile time complexity remains linear. -

-

- - Overloaded Functions -

-

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

-

- - Tag Dispatching -

-

- Tag dispatching is a generic programming technique for selecting template specializations. - There are typically 3 components involved in the tag dispatching mechanism: -

-
    -
  1. - A type for which an appropriate template specialization is required -
  2. -
  3. - A metafunction that associates the type with a tag type -
  4. -
  5. - A template that is specialized for the tag type -
  6. -
-

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

-
-template <typename Sequence>
-struct begin
-{
-    typedef typename
-        result_of::begin_impl<typename traits::tag_of<Sequence>::type>::
-        template apply<Sequence>::type
-    type;
-};
-
-

- In the case: -

-
    -
  1. -Sequence is the type for - which a suitable implementation of result_of::begin_impl - is required -
  2. -
  3. -traits::tag_of is the metafunction that associates - Sequence with an appropriate - tag -
  4. -
  5. -result_of::begin_impl is the template which is specialized - to provide an implementation for each tag type -
  6. -
-

- - Extensibility -

-

- Unlike MPL, there - is no extensibe sequence concept in fusion. This does not mean that Fusion - sequences are not extensible. In fact, all Fusion sequences are inherently - extensible. It is just that the manner of sequence extension in Fusion is diferent - from both STL - and MPL on account - of the lazy nature of fusion Algorithms. - STL - 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. -

-

- Like MPL, Fusion - too is purely functional and can not have side effects. With runtime efficiency - in mind, Fusion sequences are extended through generic functions that return - Views. Views - 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 - 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 - 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')
-
-

- returns a list<int, - char>. -

-

- There are a few exceptions, however. -

-

- Arrays: -

-

- Array arguments are deduced to reference to const types. For example - [14] - : -

-
-make_list("Donald", "Daisy")
-
-

- creates a list - of type -

-
-list<const char (&)[7], const char (&)[6]>
-
-

- Function pointers: -

-

- Function pointers are deduced to the plain non-reference type (i.e. to plain - function pointer). Example: -

-
-void f(int i);
-  ...
-make_list(&f);
-
-

- creates a list - of type -

-
-list<void (*)(int)>
-
-

- - boost::ref -

-

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

- creates a list - of type -

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

-

- For example: -

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

- See Boost.Ref for - details. -

-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html deleted file mode 100644 index 71cb47b9..00000000 --- a/doc/html/fusion/organization.html +++ /dev/null @@ -1,205 +0,0 @@ - - - -Organization - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- The library is organized into layers of modules, with each module addressing - a particular area of responsibility. A module may not depend on modules in - higher layers. -

-

- The library is organized in three layers: -

-

- - Layers -

-
-

-

-

- fusion_org -

-

-

-
-

- The entire library is found in the "boost/fusion" directory. Modules - are organized in directories. Each module has its own header file placed in - the same directory with the actual module-directory. For example, there exists - "boost/fusion/support.hpp" in the same directory as "boost/fusion/support". - Everything, except those found inside "detail" directories, is public. - The library is header-only. There is no need to build object files to link - against. -

-

- - Directory -

-
    -
  • - tuple -
  • -
  • - algorithm -
      -
    • - iteration -
    • -
    • - query -
    • -
    • - transformation -
    • -
    -
  • -
  • - sequence -
      -
    • - adapted -
        -
      • - array -
      • -
      • - mpl -
      • -
      • - std_pair -
      • -
      -
    • -
    • - comparison -
    • -
    • - container -
        -
      • - list -
      • -
      • - map -
      • -
      • - set -
      • -
      • - vector -
      • -
      -
    • -
    • - conversion -
    • -
    • - generation -
    • -
    • - intrinsic -
    • -
    • - io -
    • -
    • - utility -
    • -
    • - view -
        -
      • - filter_view -
      • -
      • - iterator_range -
      • -
      • - joint_view -
      • -
      • - reverse_view -
      • -
      • - single_view -
      • -
      • - transform_view -
      • -
      • - zip_view -
      • -
      -
    • -
    -
  • -
  • - iterator -
  • -
  • - support -
  • -
-

- - Example -

-

- If, for example, you want to use list, - depending on the granularity that you desire, you may do so by including one - of -

-
-#include <boost/fusion/sequence.hpp>
-#include <boost/fusion/sequence/container.hpp>
-#include <boost/fusion/sequence/container/list.hpp>
-
-

- The first includes all sequences. The second includes all of sequence containers. - The third includes only list - [3] - . -

-
-

-

[3] - Modules may contain smaller components. Header file information for each - component will be provided as part of the component's documentation. -

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/preface.html b/doc/html/fusion/preface.html deleted file mode 100644 index 889a4b5e..00000000 --- a/doc/html/fusion/preface.html +++ /dev/null @@ -1,226 +0,0 @@ - - - -Preface - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
-

-

-

- Algorithms + Data Structures = Programs. -

-

-

-
-
-

-

-

- --Niklaus Wirth -

-

-

-
-

- - Description -

-

- Fusion is a library for working with heterogenous collections of data, commonly - referred to as tuples. A set of containers (vector, list, set and map) is provided, - along with views that provide a transformed presentation of their underlying - data. Collectively the containers and views are referred to as sequences, and - Fusion has a suite of algorithms that operate upon the various sequence types, - using an iterator concept that binds everything together. -

-

- The architecture is modeled after MPL - which in turn is modeled after STL. - It is named "fusion" because the library is a "fusion" - of compile time metaprogramming with runtime programming. -

-

- - Motivation -

-

- Tuples are powerful beasts. After having developed two significant projects - (Spirit and Phoenix) - that relied heavily metaprogramming, it became apparent that tuples are a powerful - means to simplify otherwise tricky tasks; especially those that require a combination - of metaprogramming and manipulation of heterogenous data types with values. - While MPL is - an extremely powerful metaprogramming tool, MPL - focuses on type manipulation only. Ultimately, you'll have to map these types - to real values to make them useful in the runtime world where all the real - action takes place. -

-

- As Spirit and Phoenix - evolved, patterns and idioms related to tuple manipulation emerged. Soon, it - became clear that those patterns and idioms were best assembled in a tuples - algorithms library. David - Abrahams outlined such a scheme in 2002. At that time, it just so happened - that Spirit and Phoenix - had an adhoc collection of tuple manipulation and traversal routines. It was - an instant AHA! moment. -

-

- - How to use this manual -

-

- Some icons are used to mark certain topics indicative of their relevance. These - icons precede some text to indicate: -

-
-

Table 1.1. Icons

- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Icon -

-
-

- Name -

-
-

- Meaning -

-
-

- note -

-
-

- Note -

-
-

- Information provided is auxiliary but will give the reader a deeper insight - into a specific topic. May be skipped. -

-
-

- alert -

-
-

- Alert -

-
-

- Information provided is of utmost importance. -

-
-

- caution -

-
-

- Caution -

-
-

- A mild warning. -

-
-

- tip -

-
-

- Tip -

-
-

- A potentially useful and helpful piece of information. -

-
-
-

- This documentation is automatically generated by Boost QuickBook documentation - tool. QuickBook can be found in the Boost - Tools. -

-

- - Support -

-

- Please direct all questions to Spirit's mailing list. You can subscribe to - the Spirit - Mailing List. The mailing list has a searchable archive. A search link - to this archive is provided in Spirit's - home page. You may also read and post messages to the mailing list through - Spirit General - NNTP news portal (thanks to Gmane). - The news group mirrors the mailing list. Here is a link to the archives: http://news.gmane.org/gmane.comp.parsers.spirit.general. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html deleted file mode 100644 index f3ca0949..00000000 --- a/doc/html/fusion/quick_start.html +++ /dev/null @@ -1,261 +0,0 @@ - - - -Quick Start - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- I assume the reader is already familiar with tuples (Boost.Tuple) - 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. -

-

- For starters, we shall include all of Fusion's _sequence_s - [1] - : -

-
-#include <boost/fusion/sequence.hpp>
-
-

- 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);
-
-

- 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. - Let's see some examples. -

-

- - Print the vector - as XML -

-

- First, let's include the algorithms: -

-
-#include <boost/fusion/algorithm.hpp>
-
-

- Now, let's write a function object that prints XML of the form <type>data</type> - for each member in the tuple. -

-
-struct print_xml
-{
-    template <typename T>
-    void operator()(T const& x) const
-    {
-        std::cout 
-            << '<' << typeid(x).name() << '>'
-            << x
-            << "</" << typeid(x).name() << '>'
-            ;
-    }
-};
-
-

- Now, finally: -

-
-for_each(stuff, print_xml());
-
-

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

-
- - - - - -
[Caution]Caution

- The result of typeid(x).name() is platform specific. The code here is - just for exposition. Of course you already know that :-) -

-

- for_each is generic. With - print_xml, you can use it to - print just about any Fusion Sequence. -

-

- - 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 - boost type trait: -

-
-#include <boost/type_traits/is_pointer.hpp>
-
-

- Then, simply: -

-
-template <typename Sequence>
-void xml_print_pointers(Sequence const& seq)
-{
-    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. - 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 - the "filtered view" as XML. -

-

- Easy, right? -

-

- - Associative tuples -

-

- Ok, moving on... -

-

- 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 - the sequences. -

-

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

-
-namespace fields
-{
-    struct name;
-    struct age;
-}
-
-typedef map<
-    fusion::pair<fields::name, std::string>
-  , fusion::pair<fields::age, int> > 
-person;
-
-

- map - is an associative sequence. Its elements are Fusion pairs which differ somewhat - 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: -

-
-using namespace fields;
-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. - 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. - Example: -

-
-struct saver
-{
-    template <typename Pair>
-    void operator()(Pair const& data) const
-    {
-        some_archive << data.second;
-    }
-};
-
-template <typename Stuff>
-void save(Stuff const& stuff)
-{
-    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. -

-

- - Tip of the Iceberg -

-

- And... we've barely scratched the surface! You can compose and expand the data - structures, remove elements from the structures, find specific data types, - query the elements, filter out types for inspection, transform data structures, - etc. What you've seen is just the tip of the iceberg. -

-
-

-

[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 - we will be using. -

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/references.html b/doc/html/fusion/references.html deleted file mode 100644 index 452b9622..00000000 --- a/doc/html/fusion/references.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -References - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHome -
-
- -
    -
  1. -New - Iterator Concepts, David Abrahams, Jeremy Siek, Thomas Witt, 2004-11-01. -
  2. -
  3. -The Boost - Tuple Library, Jaakko Jarvi, 2001. -
  4. -
  5. -Spirit Parser Library, - Joel de Guzman, 2001-2006. -
  6. -
  7. -The Boost MPL Library, - Aleksey Gurtovoy and David Abrahams, 2002-2004. -
  8. -
  9. -Boost Array, - Nicolai Josuttis, 2002-2004. -
  10. -
  11. -Standard Template Library Programmer's - Guide, Hewlett-Packard Company, 1994. -
  12. -
  13. -Boost.Ref, Jaakko - Jarvi, Peter Dimov, Douglas Gregor, Dave Abrahams, 1999-2002. -
  14. -
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHome -
- - diff --git a/doc/html/fusion/sequences.html b/doc/html/fusion/sequences.html deleted file mode 100644 index 8401c4a8..00000000 --- a/doc/html/fusion/sequences.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Sequences - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Like MPL, the - Sequence is a fundamental concept in Fusion. A Sequence may or may not actually - store or contain data. Containers - are sequences that hold data. Views, - on the other hand, are sequences that do not store any data. Instead, they - are proxies that impart an alternative presentation over another sequence. - All models of Sequence have an associated Iterator - type that can be used to iterate through the Sequence's elements. -

-

- - Header -

-
-#include <boost/fusion/sequence.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted.html b/doc/html/fusion/sequences/adapted.html deleted file mode 100644 index a9c16943..00000000 --- a/doc/html/fusion/sequences/adapted.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Adapted - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-

- - Header -

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

-

[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 - and Fusion -

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted/boost__array.html b/doc/html/fusion/sequences/adapted/boost__array.html deleted file mode 100644 index 7a5ceae1..00000000 --- a/doc/html/fusion/sequences/adapted/boost__array.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -boost::array - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 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;
-
-
- - See also -
-

- Boost.Array Library -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted/boost__tuple.html b/doc/html/fusion/sequences/adapted/boost__tuple.html deleted file mode 100644 index 18d00ad5..00000000 --- a/doc/html/fusion/sequences/adapted/boost__tuple.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -boost::tuple - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

- Boost.Tuple - Library -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted/boost__variant.html b/doc/html/fusion/sequences/adapted/boost__variant.html deleted file mode 100644 index 3f91a088..00000000 --- a/doc/html/fusion/sequences/adapted/boost__variant.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -boost::variant - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 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 - contained in the variant. Accessing types not currently stored int the - variant will lead to the variant being populated with a default constructed - value of that type. -

-
- - Header -
-
-#include <boost/fusion/sequence/adapted/variant.hpp>
-
-
- - Model - of -
- -
- - Example -
-
-boost::variant<int,std::string> example_variant = 101;
-std::cout << example_variant << '\n';
-*boost::fusion::find<std::string>(example_variant) = "hello";
-std::cout << example_variant << '\n';
-
-
- - See also -
-

- Boost.Variant Library -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted/mpl_sequence.html b/doc/html/fusion/sequences/adapted/mpl_sequence.html deleted file mode 100644 index 4a2245ef..00000000 --- a/doc/html/fusion/sequences/adapted/mpl_sequence.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -mpl sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

-
- - Header -
-
-#include <boost/fusion/sequence/adapted/mpl.hpp>
-
-
- - Model of -
-
-
- - 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;
-
-v = mpl::vector_c<int, 456, 789>();
-std::cout << at_c<0>(v) << std::endl;
-std::cout << at_c<1>(v) << std::endl;
-
-
- - See also -
-

- MPL -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/adapted/std__pair.html b/doc/html/fusion/sequences/adapted/std__pair.html deleted file mode 100644 index 33e23443..00000000 --- a/doc/html/fusion/sequences/adapted/std__pair.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -std::pair - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 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 << p << std::endl;
-
-
- - See also -
-

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

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/concepts.html b/doc/html/fusion/sequences/concepts.html deleted file mode 100644 index 82fea73a..00000000 --- a/doc/html/fusion/sequences/concepts.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -Concepts - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Fusion Sequences are organized into a hierarchy of concepts. -

-

- - Traversal -

-

- Fusion's sequence traversal related concepts parallel Fusion's Iterator - Concepts. Forward - Sequence is the most basic concept. Bidirectional - Sequence is a refinement of Forward - Sequence. Random - Access Sequence is a refinement of Bidirectional - Sequence. These concepts pertain to sequence traversal. -

-

- - Associativity -

-

- The Associative - Sequence concept is orthogonal to traversal. An Associative Sequence - allows efficient retrieval of elements based on keys. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/concepts/associative_sequence.html b/doc/html/fusion/sequences/concepts/associative_sequence.html deleted file mode 100644 index 90c5b78f..00000000 --- a/doc/html/fusion/sequences/concepts/associative_sequence.html +++ /dev/null @@ -1,328 +0,0 @@ - - - -Associative - Sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- An Associative Sequence allows efficient retrieval of elements based on - keys. Like associative sequences in MPL, - and unlike associative containers in STL, - Fusion associative sequences have no implied ordering relation. Instead, - type identity is used to impose an equivalence relation on keys, and the - order in which sequence elements are traversed during iteration is left - unspecified. In addition, unlike STL, - Associative Sequences have mutable iterators. This is due to the fact that - there is no associated ordering relation and the runtime value of the keys - themselves do not have any effect on the associativity of the sequence. -

-
-

Notation

-
-
s
-

- An Associative Sequence -

-
S
-

- An Associative Sequence type -

-
K
-

- An arbitrary key type -

-
o
-

- An arbitrary object -

-
e
-

- A Sequence element -

-
-
-
- - Valid - Expressions -
-

- For any Associative Sequence the following expressions must be valid: -

-
------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Type Requirements -

-
-

- Runtime Complexity -

-
-

- has_key<K>(s) -

-
-

- MPL - Boolean Constant. Convertible to bool. -

-
-

-

-
-

- Constant -

-
-

- at_key<K>(s) -

-
-

- Any type -

-
-

-

-
-

- Constant -

-
-

- at_key<K>(s) - = o -

-
-

- Any type -

-
-

- s is mutable and - e = - o, where e is the first element in the - sequence, is a valid expression. -

-
-

- Constant -

-
-
- - Result - Type Expressions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::has_key<S, - K>::type -

-
-

- Amortized constant time -

-
-

- result_of::at_key<S, - K>::type -

-
-

- Amortized constant time -

-
-

- result_of::value_at_key<S, - K>::type -

-
-

- Amortized constant time -

-
- -
- - Expression - Semantics -
-
---- - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

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

-
-

- at_key<K>(s) -

-
-

- The element associated with the key K - in the sequence s; - see at. -

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/concepts/bidirectional_sequence.html b/doc/html/fusion/sequences/concepts/bidirectional_sequence.html deleted file mode 100644 index ec2bcca6..00000000 --- a/doc/html/fusion/sequences/concepts/bidirectional_sequence.html +++ /dev/null @@ -1,344 +0,0 @@ - - - -Bidirectional - Sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Bidirectional Sequence is a Forward - Sequence whose iterators model Bidirectional - Iterator. -

-
- - Refinement - of -
-

- Forward Sequence -

-
-

Notation

-
-
s
-

- A Forward Sequence -

-
S
-

- A Forward Sequence type -

-
o
-

- An arbitrary object -

-
e
-

- A Sequence element -

-
-
-
- - Valid - Expressions -
-

- In addition to the requirements defined in Forward - Sequence, for any Bidirectional Sequence the following must be met: -

-
------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Type Requirements -

-
-

- Runtime Complexity -

-
-

- begin(s) -

-
-

- Bidirectional - Iterator -

-
-

-

-
-

- Constant -

-
-

- end(s) -

-
-

- Bidirectional - Iterator -

-
-

-

-
-

- Constant -

-
-

- back(s) -

-
-

- Any type -

-
-

-

-
-

- Constant -

-
-

- back(s) - = o -

-
-

- Any type -

-
-

- s is mutable and - e = - o, where e is the first element in the - sequence, is a valid expression. -

-
-

- Constant -

-
-
- - Result - Type Expressions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::begin<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::end<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::back<S>::type -

-
-

- Amortized constant time -

-
-
- - Expression - Semantics -
-

- The semantics of an expression are defined only where they differ from, - or are not defined in Forward - Sequence. -

-
---- - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- back(s) -

-
-

- The last element in the sequence; see back. -

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/concepts/forward_sequence.html b/doc/html/fusion/sequences/concepts/forward_sequence.html deleted file mode 100644 index 6c6f1912..00000000 --- a/doc/html/fusion/sequences/concepts/forward_sequence.html +++ /dev/null @@ -1,471 +0,0 @@ - - - -Forward - Sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Forward Sequence is a Sequence whose elements are arranged in a definite - order. The ordering is guaranteed not to change from iteration to iteration. - The requirement of a definite ordering allows the definition of element-by-element - equality (if the container's element type is Equality Comparable) and of - lexicographical ordering (if the container's element type is LessThan Comparable). -

-
-

Notation

-
-
s
-

- A Forward Sequence -

-
S
-

- A Forward Sequence type -

-
o
-

- An arbitrary object -

-
e
-

- A Sequence element -

-
-
-
- - Valid - Expressions -
-

- For any Forward Sequence the following expressions must be valid: -

-
------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Type Requirements -

-
-

- Runtime Complexity -

-
-

- begin(s) -

-
-

- Forward - Iterator -

-
-

-

-
-

- Constant -

-
-

- end(s) -

-
-

- Forward - Iterator -

-
-

-

-
-

- Constant -

-
-

- size(s) -

-
-

- MPL - Integral Constant. Convertible to int. -

-
-

-

-
-

- Constant -

-
-

- empty(s) -

-
-

- MPL - Boolean Constant. Convertible to bool. -

-
-

-

-
-

- Constant -

-
-

- front(s) -

-
-

- Any type -

-
-

-

-
-

- Constant -

-
-

- front(s) - = o -

-
-

- Any type -

-
-

- s is mutable and - e = - o, where e is the first element in the - sequence, is a valid expression. -

-
-

- Constant -

-
-
- - Result - Type Expressions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::begin<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::end<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::size<S>::type -

-
-

- Unspecified -

-
-

- result_of::empty<S>::type -

-
-

- Constant time -

-
-

- result_of::front<S>::type -

-
-

- Amortized constant time -

-
-
- - Expression - Semantics -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- begin(s) -

-
-

- An iterator to the first element of the sequence; see begin. -

-
-

- end(s) -

-
-

- A past-the-end iterator to the sequence; see end. -

-
-

- size(s) -

-
-

- The size of the sequence; see size. -

-
-

- empty(s) -

-
-

- A boolean Integral Constant c - such that c::value == - true if and only if the - sequence is empty; see empty. -

-
-

- front(s) -

-
-

- The first element in the sequence; see front. -

-
-
- - Invariants -
-

- For any Forward Sequence s the following invariants always hold: -

-
    -
  • -[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. -
  • -
  • -begin(s) - is identical to end(s)) - if and only if s is empty. -
  • -
  • - Two different iterations through s - will access its elements in the same order. -
  • -
-
- - Models -
- -
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/concepts/random_access_sequence.html b/doc/html/fusion/sequences/concepts/random_access_sequence.html deleted file mode 100644 index 284cdab5..00000000 --- a/doc/html/fusion/sequences/concepts/random_access_sequence.html +++ /dev/null @@ -1,373 +0,0 @@ - - - -Random - Access Sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- A Random Access Sequence is a Bidirectional - Sequence whose iterators model Random - Access Iterator. It guarantees constant time access to arbitrary - sequence elements. -

-
- - Refinement - of -
-

- Bidirectional - Sequence -

-
-

Notation

-
-
s
-

- A Random Access Sequence -

-
S
-

- A Random Access Sequence type -

-
N
-

- An MPL - Integral Constant -

-
o
-

- An arbitrary object -

-
e
-

- A Sequence element -

-
-
-
- - Valid - Expressions -
-

- In addition to the requirements defined in Bidirectional - Sequence, for any Random Access Sequence the following must be met: -

-
------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Return type -

-
-

- Type Requirements -

-
-

- Runtime Complexity -

-
-

- begin(s) -

-
-

- Random - Access Iterator -

-
-

-

-
-

- Constant -

-
-

- end(s) -

-
-

- Random - Access Iterator -

-
-

-

-
-

- Constant -

-
-

- at<N>(s) -

-
-

- Any type -

-
-

-

-
-

- Constant -

-
-

- at<N>(s) - = o -

-
-

- Any type -

-
-

- s is mutable and - e = - o, where e is the first element in the - sequence, is a valid expression. -

-
-

- Constant -

-
-
- - Result - Type Expressions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Compile Time Complexity -

-
-

- result_of::begin<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::end<S>::type -

-
-

- Amortized constant time -

-
-

- result_of::at<S, - N>::type -

-
-

- Amortized constant time -

-
-

- result_of::value_at<S, - N>::type -

-
-

- Amortized constant time -

-
- -
- - Expression - Semantics -
-

- The semantics of an expression are defined only where they differ from, - or are not defined in Bidirectional - Sequence. -

-
---- - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- at<N>(s) -

-
-

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

-
-
- - Models -
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers.html b/doc/html/fusion/sequences/containers.html deleted file mode 100644 index 3aaeab63..00000000 --- a/doc/html/fusion/sequences/containers.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Containers - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-

- - Header -

-
-#include <boost/fusion/sequence/container.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers/cons.html b/doc/html/fusion/sequences/containers/cons.html deleted file mode 100644 index 2cfb5359..00000000 --- a/doc/html/fusion/sequences/containers/cons.html +++ /dev/null @@ -1,321 +0,0 @@ - - - -cons - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- cons is a simple Forward Sequence. - It is a lisp style recursive list structure where car - is the head and cdr - is the tail: usually another cons structure or nil: the empty list. Fusion's list is built on top of this more - primitive data structure. It is more efficient than vector when the target sequence - 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 -
-
-template <typename Car, typename Cdr = nil>
-struct cons;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Car -

-
-

- Head type -

-
-

-

-
-

- Cdr -

-
-

- Tail type -

-
-

- nil -

-
-
- - Model of -
- -
-

Notation

-
-
nil
-

- An empty cons -

-
C
-

- A cons type -

-
l, - l2
-

- Instances of cons -

-
car
-

- An arbitrary data -

-
cdr
-

- Another cons list -

-
s
-

- A Forward - Sequence -

-
N
-

- An MPL - Integral Constant -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- nil() -

-
-

- Creates an empty list. -

-
-

- C() -

-
-

- Creates a cons with default constructed elements. -

-
-

- C(car) -

-
-

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

-
-

- C(car, - cdr) -

-
-

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

-
-

- C(s) -

-
-

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

-
-

- l = - s -

-
-

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

-
-

- at<N>(l) -

-
-

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

-
- -
- - Example -
-
-cons<int, cons<float> > l(12, cons<float>(5.5f));
-std::cout << at_c<0>(l) << std::endl;
-std::cout << at_c<1>(l) << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers/list.html b/doc/html/fusion/sequences/containers/list.html deleted file mode 100644 index 53979305..00000000 --- a/doc/html/fusion/sequences/containers/list.html +++ /dev/null @@ -1,289 +0,0 @@ - - - -list - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- list is a Forward - Sequence of heterogenous typed data built on top of cons. It is more efficient than - vector - when the target sequence is constructed piecemeal (a data at a time). The - runtime cost of access to each element is peculiarly constant (see Recursive Inlined Functions). -

-
- - Header -
-
-#include <boost/fusion/sequence/container/list.hpp>
-#include <boost/fusion/sequence/container/list/list_forward.hpp>
-
-
- - Synopsis -
-
-template <
-    typename T0 = unspecified
-  , typename T1 = unspecified
-  , typename T2 = unspecified
-    ...
-  , typename TN = unspecified
->
-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. - Example: -

-
-list<int, char, double>
-
-

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

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- T0...TN -

-
-

- Element types -

-
-

- unspecified-type -

-
-
- - Model of -
- -
-

Notation

-
-
L
-

- A list type -

-
l
-

- An instance of list -

-
e0...en
-

- Heterogeneous values -

-
s
-

- A Forward - Sequence -

-
N
-

- An MPL - Integral Constant -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- L() -

-
-

- Creates a list with default constructed elements. -

-
-

- L(e0, - e1,... - en) -

-
-

- Creates a list with elements e0...en. -

-
-

- L(s) -

-
-

- Copy constructs a list from a Forward - Sequence, s. -

-
-

- l = - s -

-
-

- Assigns to a list, l, - from a Forward - Sequence, s. -

-
-

- at<N>(l) -

-
-

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

-
- -
- - Example -
-
-list<int, float> l(12, 5.5f);
-std::cout << at_c<0>(l) << std::endl;
-std::cout << at_c<1>(l) << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers/map.html b/doc/html/fusion/sequences/containers/map.html deleted file mode 100644 index aa008e09..00000000 --- a/doc/html/fusion/sequences/containers/map.html +++ /dev/null @@ -1,278 +0,0 @@ - - - -map - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-

-map

-
- - Description -
-

- map is an Associative - Sequence of heteregenous typed data elements. Each element is a - 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 - complexity (see Overloaded - Functions). -

-
- - Header -
-
-#include <boost/fusion/sequence/container/map.hpp>
-
-
- - Synopsis -
-
-template <
-    typename T0 = unspecified
-  , typename T1 = unspecified
-  , typename T2 = unspecified
-    ...
-  , typename TN = unspecified
->
-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. - Example: -

-
-map<pair<int, char>, pair<char, char>, pair<double, char> >
-
-

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

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- T0...TN -

-
-

- Element types -

-
-

- unspecified-type -

-
-
- - Model of -
- -
-

Notation

-
-
M
-

- A map type -

-
m
-

- An instance of map -

-
e0...en
-

- Heterogeneous key/value pairs (see fusion::pair) -

-
s
-

- A Forward - Sequence -

-
-
-
- - Expression - Semantics -
-

- Semantics of an expression is defined only where it differs from, or is - not defined in Random - Access Sequence and Associative - Sequence. -

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- M() -

-
-

- Creates a map with default constructed elements. -

-
-

- M(e0, - e1,... - en) -

-
-

- Creates a map with element pairs e0...en. -

-
-

- M(s) -

-
-

- Copy constructs a map from a Forward - Sequence s. -

-
-

- m = - s -

-
-

- Assigns to a map, m, - from a Forward - Sequence s. -

-
-
- - Example -
-
-typedef map<
-    pair<int, char>
-  , pair<double, std::string> >
-map_type;
-
-map_type m(
-    make_pair<int>('X')
-  , make_pair<double>("Men"));
-
-std::cout << at_key<int>(m) << std::endl;
-std::cout << at_key<double>(m) << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers/set.html b/doc/html/fusion/sequences/containers/set.html deleted file mode 100644 index 27a4d5a1..00000000 --- a/doc/html/fusion/sequences/containers/set.html +++ /dev/null @@ -1,270 +0,0 @@ - - - -set - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-

-set

-
- - Description -
-

- set is an Associative - Sequence of heteregenous typed data elements. Type identity is used - to impose an equivalence relation on keys. The element's type is its key. - A set may contain at most one element for each key. Membership testing - and element key lookup has constant runtime complexity (see Overloaded - Functions). -

-
- - Header -
-
-#include <boost/fusion/sequence/container/set.hpp>
-
-
- - Synopsis -
-
-template <
-    typename T0 = unspecified
-  , typename T1 = unspecified
-  , typename T2 = unspecified
-    ...
-  , typename TN = unspecified
->
-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. - Example: -

-
-set<int, char, double>
-
-

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

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- T0...TN -

-
-

- Element types -

-
-

- unspecified-type -

-
-
- - Model of -
- -
-

Notation

-
-
S
-

- A set type -

-
s
-

- An instance of set -

-
e0...en
-

- Heterogeneous values -

-
fs
-

- A Forward - Sequence -

-
-
-
- - Expression - Semantics -
-

- Semantics of an expression is defined only where it differs from, or is - not defined in Random - Access Sequence and Associative - Sequence. -

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- S() -

-
-

- Creates a set with default constructed elements. -

-
-

- S(e0, - e1,... - en) -

-
-

- Creates a set with elements e0...en. -

-
-

- S(fs) -

-
-

- Copy constructs a set from a Forward - Sequence fs. -

-
-

- s = - fs -

-
-

- Assigns to a set, s, - from a Forward - 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;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/containers/vector.html b/doc/html/fusion/sequences/containers/vector.html deleted file mode 100644 index 3171d7da..00000000 --- a/doc/html/fusion/sequences/containers/vector.html +++ /dev/null @@ -1,300 +0,0 @@ - - - -vector - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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 - is the simplest of the Fusion sequence container, and in many cases the - most efficient. -

-
- - Header -
-
-#include <boost/fusion/sequence/container/vector.hpp>
-#include <boost/fusion/sequence/container/vector/vector_fwd.hpp>
-
-// numbered forms
-#include <boost/fusion/sequence/container/vector/vector10.hpp>
-#include <boost/fusion/sequence/container/vector/vector20.hpp>
-#include <boost/fusion/sequence/container/vector/vector30.hpp>
-#include <boost/fusion/sequence/container/vector/vector40.hpp>
-#include <boost/fusion/sequence/container/vector/vector50.hpp>
-
-
- - Synopsis -
-

- Numbered forms -

-
-template <>
-struct vector0;
-
-template <typename T0>
-struct vector1;
-
-template <typename T0, typename T1>
-struct vector2;
-
-template <typename T0, typename T1, typename T2>
-struct vector3;
-
-...
-
-template <typename T0, typename T1, typename T2..., typename TN>
-struct vectorN;
-
-

- Variadic form -

-
-template <
-    typename T0 = unspecified
-  , typename T1 = unspecified
-  , typename T2 = unspecified
-    ...
-  , typename TN = unspecified
->
-struct vector;
-
-

- The numbered form accepts the exact number of elements. Example: -

-
-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. - Example: -

-
-vector<int, char, double>
-
-

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

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- T0...TN -

-
-

- Element types -

-
-

- unspecified -

-
-
- - Model of -
- -
-

Notation

-
-
v
-

- Instance of vector -

-
V
-

- A vector type -

-
e0...en
-

- Heterogeneous values -

-
s
-

- A Forward - Sequence -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- V() -

-
-

- Creates a vector with default constructed elements. -

-
-

- V(e0, - e1,... - en) -

-
-

- Creates a vector with elements e0...en. -

-
-

- V(s) -

-
-

- Copy constructs a vector from a Forward - Sequence, s. -

-
-

- v = - s -

-
-

- Assigns to a vector, v, - from a Forward - 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;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion.html b/doc/html/fusion/sequences/conversion.html deleted file mode 100644 index 16a57f79..00000000 --- a/doc/html/fusion/sequences/conversion.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Conversion - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-

- - Header -

-
-#include <boost/fusion/sequence/conversion.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/functions.html b/doc/html/fusion/sequences/conversion/functions.html deleted file mode 100644 index 9f4b7851..00000000 --- a/doc/html/fusion/sequences/conversion/functions.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/functions/as_list.html b/doc/html/fusion/sequences/conversion/functions/as_list.html deleted file mode 100644 index 5f215095..00000000 --- a/doc/html/fusion/sequences/conversion/functions/as_list.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -as_list - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Convert a fusion sequence to a list. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- An instance of Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-as_list(seq);
-
-

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

-

- 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"))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/functions/as_map.html b/doc/html/fusion/sequences/conversion/functions/as_map.html deleted file mode 100644 index 01786405..00000000 --- a/doc/html/fusion/sequences/conversion/functions/as_map.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -as_map - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Convert a fusion sequence to a map. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- An instance of Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-as_map(seq);
-
-

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

-

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

-

- Precondition: The elements of the sequence - are assumed to be __fusionpair_s. - 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")))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/functions/as_set.html b/doc/html/fusion/sequences/conversion/functions/as_set.html deleted file mode 100644 index 1c86ca46..00000000 --- a/doc/html/fusion/sequences/conversion/functions/as_set.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -as_set - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Convert a fusion sequence to a set. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- An instance of Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-as_set(seq);
-
-

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

-

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

-

- 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"))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/functions/as_vector.html b/doc/html/fusion/sequences/conversion/functions/as_vector.html deleted file mode 100644 index 56a15e55..00000000 --- a/doc/html/fusion/sequences/conversion/functions/as_vector.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -as_vector - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Convert a fusion sequence to a vector. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- An instance of Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-as_vector(seq);
-
-

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

-

- 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"))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/metafunctions.html b/doc/html/fusion/sequences/conversion/metafunctions.html deleted file mode 100644 index 52c1c0ae..00000000 --- a/doc/html/fusion/sequences/conversion/metafunctions.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_list.html b/doc/html/fusion/sequences/conversion/metafunctions/as_list.html deleted file mode 100644 index b3f42288..00000000 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_list.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -as_list - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of as_list. -

-
- - Synopsis -
-
-template <typename Sequence>
-struct as_list;
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A fusion Sequence -

-
-

- The sequence type to convert. -

-
-
- - Expression - Semantics -
-
-result_of::as_list<Sequence>::type;
-
-

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

-

- 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
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_map.html b/doc/html/fusion/sequences/conversion/metafunctions/as_map.html deleted file mode 100644 index 9d98539e..00000000 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_map.html +++ /dev/null @@ -1,136 +0,0 @@ - - - -as_map - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of as_map. -

-
- - Synopsis -
-
-template <typename Sequence>
-struct as_map;
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A fusion Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-result_of::as_map<Sequence>::type;
-
-

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

-

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

-

- Precondition: The elements of the sequence - are assumed to be __fusionpair_s. - 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
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_set.html b/doc/html/fusion/sequences/conversion/metafunctions/as_set.html deleted file mode 100644 index eb0bc404..00000000 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_set.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -as_set - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of as_set. -

-
- - Synopsis -
-
-template <typename Sequence>
-struct as_set;
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A fusion Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-result_of::as_set<Sequence>::type;
-
-

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

-

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

-

- 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
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html b/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html deleted file mode 100644 index 289e9464..00000000 --- a/doc/html/fusion/sequences/conversion/metafunctions/as_vector.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -as_vector - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of as_vector. -

-
- - Synopsis -
-
-template <typename Sequence>
-struct as_vector;
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Sequence -

-
-

- A fusion Sequence -

-
-

- The sequence to convert. -

-
-
- - Expression - Semantics -
-
-result_of::as_vector<Sequence>::type;
-
-

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

-

- 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
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation.html b/doc/html/fusion/sequences/generation.html deleted file mode 100644 index 78b17c4f..00000000 --- a/doc/html/fusion/sequences/generation.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Generation - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

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

-

- - Header -

-
-#include <boost/fusion/sequence/generation.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions.html b/doc/html/fusion/sequences/generation/functions.html deleted file mode 100644 index e9bb2325..00000000 --- a/doc/html/fusion/sequences/generation/functions.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/list_tie.html b/doc/html/fusion/sequences/generation/functions/list_tie.html deleted file mode 100644 index 11fdf647..00000000 --- a/doc/html/fusion/sequences/generation/functions/list_tie.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -list_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Constructs a tie using a list sequence. -

-
- - Synopsis -
-
-template <typename T0, typename T1,... typename 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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_LIST_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

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

-
-

- The arguments to list_tie -

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

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/list_tie.hpp>
-
-
- - Example -
-
-int i = 123;
-double d = 123.456;
-list_tie(i, d)
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/make_cons.html b/doc/html/fusion/sequences/generation/functions/make_cons.html deleted file mode 100644 index e537943c..00000000 --- a/doc/html/fusion/sequences/generation/functions/make_cons.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -make_cons - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template <typename Car>
-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
-make_cons(Car const& car, Cdr const& cdr);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- car -

-
-

- Instance of Car -

-
-

- The list's head -

-
-

- cdr -

-
-

- Instance of Cdr -

-
-

- The list's tail (optional) -

-
-
- - Expression - Semantics -
-
-make_cons(car, cdr);
-
-

- 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 - (tail). -

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

- boost::ref -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/make_list.html b/doc/html/fusion/sequences/generation/functions/make_list.html deleted file mode 100644 index af4a360d..00000000 --- a/doc/html/fusion/sequences/generation/functions/make_list.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -make_list - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_LIST_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

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

-
-

- The arguments to make_list -

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

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

-

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

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/make_map.html b/doc/html/fusion/sequences/generation/functions/make_map.html deleted file mode 100644 index 455a52e3..00000000 --- a/doc/html/fusion/sequences/generation/functions/make_map.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -make_map - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- The key types -

-
-

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

-
-

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

-
-

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

-
-

- The arguments to make_map -

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

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

-

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

-

- 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"))
-
-
- - See - also -
-

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

-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/make_set.html b/doc/html/fusion/sequences/generation/functions/make_set.html deleted file mode 100644 index 9651d660..00000000 --- a/doc/html/fusion/sequences/generation/functions/make_set.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -make_set - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

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

-
-

- The arguments to make_set -

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

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

-

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

-

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

-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/make_vector.html b/doc/html/fusion/sequences/generation/functions/make_vector.html deleted file mode 100644 index 5e749791..00000000 --- a/doc/html/fusion/sequences/generation/functions/make_vector.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -make_vector - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

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

-
-

- The arguments to make_vector -

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

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

-

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

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/map_tie.html b/doc/html/fusion/sequences/generation/functions/map_tie.html deleted file mode 100644 index 1560fb6a..00000000 --- a/doc/html/fusion/sequences/generation/functions/map_tie.html +++ /dev/null @@ -1,170 +0,0 @@ - - - -map_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Constructs a tie using a map sequence. -

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

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

-
-#define FUSION_MAX_MAP_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

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

-
-

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

-
-

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

-
-

- The arguments to map_tie -

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

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/map_tie.hpp>
-
-
- - Example -
-
-struct int_key;
-struct double_key;
-...
-int i = 123;
-double d = 123.456;
-map_tie<int_key, double_key>(i, d)
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/tiers.html b/doc/html/fusion/sequences/generation/functions/tiers.html deleted file mode 100644 index 26fe3901..00000000 --- a/doc/html/fusion/sequences/generation/functions/tiers.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -Tiers - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Tiers are sequences, where all elements are non-const reference types. - They are constructed with a call to a couple of tie - function templates. The succeeding sections document the various tier - flavors. -

- -

- Example: -

-
-int i; char c; double d;
-  ...
-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] - . -

-

- A tie can be used to 'unpack' another tuple into - variables. E.g.: -

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

- This code prints 1 a 5.5 to the standard output stream. A sequence unpacking - operation like this is found for example in ML and Python. It is convenient - when calling functions which return sequences. -

-
- - Ignore -
-

- There is also an object called ignore which allows - you to ignore an element assigned by a sequence. The idea is that a function - may return a sequence, only part of which you are interested in. For - example: -

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

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/functions/vector_tie.html b/doc/html/fusion/sequences/generation/functions/vector_tie.html deleted file mode 100644 index f355a583..00000000 --- a/doc/html/fusion/sequences/generation/functions/vector_tie.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -vector_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Constructs a tie using a vector sequence. -

-
- - Synopsis -
-
-template <typename T0, typename T1,... typename 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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

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

-
-

- The arguments to vector_tie -

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

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/vector_tie.hpp>
-
-
- - Example -
-
-int i = 123;
-double d = 123.456;
-vector_tie(i, d)
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions.html b/doc/html/fusion/sequences/generation/metafunctions.html deleted file mode 100644 index a1372a3a..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -MetaFunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/list_tie.html b/doc/html/fusion/sequences/generation/metafunctions/list_tie.html deleted file mode 100644 index c32664db..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/list_tie.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -list_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of list_tie. -

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

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

-
-#define FUSION_MAX_LIST_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- The arguments to list_tie -

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

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/list_tie.hpp>
-
-
- - Example -
-
-result_of::list_tie<int, double>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_cons.html b/doc/html/fusion/sequences/generation/metafunctions/make_cons.html deleted file mode 100644 index 8bfb8183..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/make_cons.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -make_cons - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of make_cons. -

-
- - Synopsis -
-
-template <typename Car, typename Cdr = nil>
-struct make_cons;
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Car -

-
-

- Any type -

-
-

- The list's head type -

-
-

- Cdr -

-
-

- A cons -

-
-

- The list's tail type (optional) -

-
-
- - Expression - Semantics -
-
-result_of::make_cons<Car, Cdr>::type
-
-

- Return type: A cons with head element, Car, of type converted following the - rules for element - conversion, and tail, Cdr. -

-

- Semantics: Create a cons from Car - (head) and optional Cdr - (tail). -

-
- - Header -
-
-#include <boost/fusion/sequence/generation/make_cons.hpp>
-
-
- - Example -
-
-result_of::make_cons<char, result_of::make_cons<int>::type>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_list.html b/doc/html/fusion/sequences/generation/metafunctions/make_list.html deleted file mode 100644 index c74b05d0..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/make_list.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -make_list - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of make_list. -

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

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

-
-#define FUSION_MAX_LIST_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- Template arguments to make_list -

-
-
- - Expression - Semantics -
-
-result_of::make_list<T0, T1,... TN>::type
-
-

- Return type: A list with elements of types - converted following the rules for element - conversion. -

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/make_list.hpp>
-
-
- - Example -
-
-result_of::make_list<int, const char(&)[7], double>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_map.html b/doc/html/fusion/sequences/generation/metafunctions/make_map.html deleted file mode 100644 index a563385b..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/make_map.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -make_map - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of make_map. -

-
- - Synopsis -
-
-template <
-    typename K0, typename K1,... typename KN
-  , typename T0, typename T1,... typename TN>
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- Keys associated with T0, T1,... TN -

-
-

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

-
-

- Any type -

-
-

- Data associated with keys K0, K1,... KN -

-
-
- - Expression - Semantics -
-
-resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
-
-

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

-

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

-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_set.html b/doc/html/fusion/sequences/generation/metafunctions/make_set.html deleted file mode 100644 index a73414fe..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/make_set.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -make_set - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of make_set. -

-
- - Synopsis -
-
-template <typename T0, typename T1,... typename TN>
-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 - before including any Fusion header to change the default. Example: -

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- The arguments to make_set -

-
-
- - Expression - Semantics -
-
-result_of::make_set<T0, T1,... TN>::type
-
-

- Return type: A set with elements of types converted - following the rules for element - conversion. -

-

- Semantics: Create a set from T0, T1,... TN. -

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/make_set.hpp>
-
-
- - Example -
-
-result_of::make_set<int, char, double>::type
-
-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/make_vector.html b/doc/html/fusion/sequences/generation/metafunctions/make_vector.html deleted file mode 100644 index 31b4b56f..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/make_vector.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -make_vector - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of make_vector. -

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

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

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- Template arguments to make_vector -

-
-
- - Expression - Semantics -
-
-result_of::make_vector<T0, T1,... TN>::type
-
-

- Return type: A vector with elements of types - converted following the rules for element - conversion. -

-

- Semantics: Create a vector from T0, T1,... TN. -

-
- - Header -
-
-#include <boost/fusion/sequence/generation/make_list.hpp>
-
-
- - Example -
-
-result_of::make_vector<int, const char(&)[7], double>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/map_tie.html b/doc/html/fusion/sequences/generation/metafunctions/map_tie.html deleted file mode 100644 index d1276f4c..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/map_tie.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -map_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of map_tie. -

-
- - Synopsis -
-
-template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
-struct map_tie;
-
-

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

-
-#define FUSION_MAX_MAP_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- The key types for map_tie -

-
-

- D0, - D1,... - DN -

-
-

- Any type -

-
-

- The arguments types for map_tie -

-
-
- - Expression - Semantics -
-
-result_of::map_tie<K0, K1,... KN, D0, D1,... DN>::type;
-
-

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

-

- Semantics: Create a map of references from D0, D1,... DN with keys K0, K1,... KN -

-
- - Header -
-
-#include <boost/fusion/sequence/generation/map_tie.hpp>
-
-
- - Example -
-
-struct int_key;
-struct double_key;
-...
-result_of::map_tie<int_key, double_key, int, double>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html b/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html deleted file mode 100644 index 2e1fbf21..00000000 --- a/doc/html/fusion/sequences/generation/metafunctions/vector_tie.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -vector_tie - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of vector_tie. -

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

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

-
-#define FUSION_MAX_VECTOR_SIZE 20
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

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

-
-

- Any type -

-
-

- The arguments to vector_tie -

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

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/generation/vector_tie.hpp>
-
-
- - Example -
-
-result_of::vector_tie<int, double>::type
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics.html b/doc/html/fusion/sequences/intrinsics.html deleted file mode 100644 index 5581fba4..00000000 --- a/doc/html/fusion/sequences/intrinsics.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Intrinsics - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Intrinsics form the essential interface of every Fusion Sequence. - STL - counterparts of these functions are usually implemented as member functions. - Intrinsic functions, unlike Algorithms, - are not generic across the full Sequence - repertoire. They need to be implemented for each Fusion Sequence - [5] - . -

-

- - Header -

-
-#include <boost/fusion/sequence/intrinsic.hpp>
-
-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions.html b/doc/html/fusion/sequences/intrinsics/functions.html deleted file mode 100644 index b4397075..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/at.html b/doc/html/fusion/sequences/intrinsics/functions/at.html deleted file mode 100644 index 1a361356..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/at.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -at - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-at
-
- - 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
-at(Sequence& seq);
-
-template <typename N, typename Sequence>
-typename result_of::at<Sequence const, N>::type
-at(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Random - Access Sequence -

-
-

- The sequence we wish to investigate. -

-
-

- N -

-
-

- An MPL - Integral Constant -

-
-

- An index from the beginning of the sequence. -

-
-
- - Expression - Semantics -
-
-at<N>(seq);
-
-

- Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e - 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) -

-

- Semantics: Equivalent to -

-
-deref(advance<N>(begin(s)))
-
-
- - Header -
-
-#include <boost/fusion/sequence/intrinsic/at.hpp>
-
-
- - Example -
-
-vector<int, int, int> v(1, 2, 3);
-assert(at<mpl::int_<1> >(v) == 2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/at_c.html b/doc/html/fusion/sequences/intrinsics/functions/at_c.html deleted file mode 100644 index 846c7695..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/at_c.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -at_c - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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
-at_c(Sequence& seq);
-
-template <int N, typename Sequence>
-typename result_of::at_c<Sequence const, N>::type
-at_c(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Random - Access Sequence -

-
-

- The sequence we wish to investigate. -

-
-

- N -

-
-

- An integral constant -

-
-

- An index from the beginning of the sequence. -

-
-
- - Expression - Semantics -
-
-at_c<N>(seq);
-
-

- Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e - 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 - < size(s) -

-

- Semantics: Equivalent to -

-
-deref(advance<N>(begin(s)))
-
-
- - Header -
-
-#include <boost/fusion/sequence/intrinsic/at_c.hpp>
-
-
- - Example -
-
-vector<int, int, int> v(1, 2, 3);
-assert(at_c<1>(v) == 2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/at_key.html b/doc/html/fusion/sequences/intrinsics/functions/at_key.html deleted file mode 100644 index 0fd878d9..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/at_key.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -at_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - 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
-at_key(Sequence& seq);
-
-template <typename Key, typename Sequence>
-typename result_of::at_key<Sequence const, Key>::type
-at_key(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Associative - Sequence -

-
-

- The sequence we wish to investigate. -

-
-

- Key -

-
-

- Any type -

-
-

- The queried key. -

-
-
- - Expression - Semantics -
-
-at_key<Key>(seq);
-
-

- Return type: Returns a reference to - the element associated with Key from the sequence seq - if seq is mutable and - e = - o, where e - 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 -

-

- 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);
-assert(at_key<char>(s) == 'x');
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/back.html b/doc/html/fusion/sequences/intrinsics/functions/back.html deleted file mode 100644 index d9ee2ca9..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/back.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the last element in the sequence. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Bidirectional - Sequence -

-
-

- The sequence we wish to investigate. -

-
-
- - Expression - Semantics -
-
-back(seq);
-
-

- Return type: Returns a reference to - the last element in the sequence seq - if seq is mutable and - e = - o, where e - 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 -

-

- 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);
-assert(back(v) == 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/begin.html b/doc/html/fusion/sequences/intrinsics/functions/begin.html deleted file mode 100644 index 2aad9e16..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/begin.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -begin - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Forward - Sequence -

-
-

- The sequence we wish to get an iterator from. -

-
-
- - Expression - Semantics -
-
-begin(seq);
-
-

- Return type: Forward - Iterator if seq - is a Forward - Sequence else, Bidirectional - Iterator if seq - is a Bidirectional - Sequence else, Random - Access Iterator if seq - is a Random - Access Sequence. -

-

- 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);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/empty.html b/doc/html/fusion/sequences/intrinsics/functions/empty.html deleted file mode 100644 index e4ec9a1a..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/empty.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -empty - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-empty(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Forward - Sequence -

-
-

- The sequence we wish to investigate. -

-
-
- - Expression - Semantics -
-
-empty(seq);
-
-

- Return type: Convertible to bool. -

-

- 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);
-assert(empty(v) == false);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/end.html b/doc/html/fusion/sequences/intrinsics/functions/end.html deleted file mode 100644 index 9ef0558d..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/end.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -end - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-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
-end(Sequence& seq);
-
-template <typename Sequence>
-typename result_of::end<Sequence const>::type
-end(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Forward - Sequence -

-
-

- The sequence we wish to get an iterator from. -

-
-
- - Expression - Semantics -
-
-end(seq);
-
-

- Return type: Forward - Iterator if seq - is a Forward - Sequence else, Bidirectional - Iterator if seq - is a Bidirectional - Sequence else, Random - Access Iterator if seq - is a Random - Access Sequence. -

-

- 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);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/front.html b/doc/html/fusion/sequences/intrinsics/functions/front.html deleted file mode 100644 index 8f2758ac..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/front.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the first element in the sequence. -

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

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Forward - Sequence -

-
-

- The sequence we wish to investigate. -

-
-
- - Expression - Semantics -
-
-front(seq);
-
-

- Return type: Returns a reference to - the first element in the sequence seq - if seq is mutable and - e = - o, where e - 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 -

-

- 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);
-assert(front(v) == 1);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/has_key.html b/doc/html/fusion/sequences/intrinsics/functions/has_key.html deleted file mode 100644 index 27ee1aa2..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/has_key.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -has_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns a type convertible to bool - that evaluates to true if - the sequence contains an element associated with a Key, else, evaluates - to false. -

-
- - Synopsis -
-
-template <typename Key, typename Sequence>
-typename result_of::has_key<Sequence, Key>::type
-has_key(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Associative - Sequence -

-
-

- The sequence we wish to investigate. -

-
-

- Key -

-
-

- Any type -

-
-

- The queried key. -

-
-
- - Expression - Semantics -
-
-has_key<Key>(seq);
-
-

- Return type: Convertible to bool. -

-

- 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);
-assert(has_key<char>(s) == true);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/size.html b/doc/html/fusion/sequences/intrinsics/functions/size.html deleted file mode 100644 index f3366fd0..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/size.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -size - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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
-size(Sequence const& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- seq -

-
-

- Model of Forward - Sequence -

-
-

- The sequence we wish to investigate. -

-
-
- - Expression - Semantics -
-
-size(seq);
-
-

- Return type: Convertible to int. -

-

- 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);
-assert(size(v) == 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/functions/swap.html b/doc/html/fusion/sequences/intrinsics/functions/swap.html deleted file mode 100644 index f152fae1..00000000 --- a/doc/html/fusion/sequences/intrinsics/functions/swap.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -swap - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Performs an element by element swap of the elements in 2 sequences. -

-
- - Synopsis -
-
-template<typename Seq1, typename Seq2>
-void swap(Seq1& seq1, Seq2& seq2);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameters -

-
-

- Requirement -

-
-

- Description -

-
-

- seq1, seq2 -

-
-

- Models of Forward - Sequence -

-
-

- The sequences whos elements we wish to swap. -

-
-
- - Expression - Semantics -
-
-swap(seq1, seq2);
-
-

- Return type: void -

-

- Precondition: size(seq1) == size(seq2) -

-

- Semantics: Calls swap(a1, b1) for corresponding elements in seq1 and seq2. -

-
- - Header -
-
-#include <boost/fusion/sequence/intrinsic/swap.hpp>
-
-
- - Example -
-
-vector<int, std::string> v1(1, "hello"), v2(2, "world");
-swap(v1, v2);
-assert(v1 == make_vector(2, "world"));
-assert(v2 == make_vector(1, "hello"));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions.html b/doc/html/fusion/sequences/intrinsics/metafunctions.html deleted file mode 100644 index 6fad1b69..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
- - - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/at.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at.html deleted file mode 100644 index 251efddc..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -at - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-at
-
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    typename N>
-struct at
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.25. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- N -

-
-

- An MPL - Integral Constant -

-
-

- Index of element -

-
-
-
- - Expression - Semantics -
-
-result_of::at<Seq, N>::type
-
-

- Return type: Any type. -

-

- 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&>));
-
-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html deleted file mode 100644 index cd3fd5b0..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at_c.html +++ /dev/null @@ -1,165 +0,0 @@ - - - -at_c - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    int M>
-struct at_c
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.26. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- M -

-
-

- Positive integer index -

-
-

- Index of element -

-
-
-
- - Expression - Semantics -
-
-result_of::at_c<Seq, M>::type
-
-

- Return type: Any type -

-

- 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&>));
-
-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html deleted file mode 100644 index cb48e6e0..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/at_key.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -at_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    typename Key>
-struct at_key
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.30. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- Key -

-
-

- Any type -

-
-

- Key type -

-
-
-
- - Expression - Semantics -
-
-result_of::at_key<Seq, Key>::type
-
-

- Return type: Any type. -

-

- 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&>));
-
-
-

-

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

-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/back.html b/doc/html/fusion/sequences/intrinsics/metafunctions/back.html deleted file mode 100644 index d1bf313a..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/back.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -back - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of back. -

-
- - Synopsis -
-
-template<typename Seq>
-struct back
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.23. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::back<Seq>::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. -

-
- - 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&>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html b/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html deleted file mode 100644 index 26924148..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/begin.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -begin - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of begin. -

-
- - Synopsis -
-
-template<typename Seq>
-struct begin
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.19. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::begin<Seq>::type
-
-

- Return type: An iterator modelling the - same traversal concept as 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&>))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html b/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html deleted file mode 100644 index 76262192..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/empty.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -empty - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of empty. -

-
- - Synopsis -
-
-template<typename Seq>
-struct empty
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.21. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::empty<Seq>::type
-
-

- Return type: An MPL - Integral Constant -

-

- 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;
-
-BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
-BOOST_MPL_ASSERT_NOT((result_of::empty<vec>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/end.html b/doc/html/fusion/sequences/intrinsics/metafunctions/end.html deleted file mode 100644 index b4faf2c0..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/end.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -end - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-end
-
- - Description -
-

- Returns the result type of end. -

-
- - Synopsis -
-
-template<typename Seq>
-struct end
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.20. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::end<Seq>::type
-
-

- Return type: A model of the same traversal - concept as 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>))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/front.html b/doc/html/fusion/sequences/intrinsics/metafunctions/front.html deleted file mode 100644 index 009c07d6..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/front.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -front - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of front. -

-
- - Synopsis -
-
-template<typename Seq>
-struct front
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.22. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::front<Seq>::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. -

-
- - 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&>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html deleted file mode 100644 index 03e83d4b..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/has_key.html +++ /dev/null @@ -1,158 +0,0 @@ - - - -has_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of has_key. -

-
- - Synopsis -
-
-template<
-    typename Seq,
-    typename Key>
-struct has_key
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.29. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- Key -

-
-

- Any type -

-
-

- Key type -

-
-
-
- - Expression - Semantics -
-
-result_of::has_key<Seq, Key>::type
-
-

- Return type: An MPL - Integral Constant. -

-

- 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*>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/size.html b/doc/html/fusion/sequences/intrinsics/metafunctions/size.html deleted file mode 100644 index 50cec0bf..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/size.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -size - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the result type of size. -

-
- - Synopsis -
-
-template<typename Seq>
-struct size
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.24. Parameters

- ----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-
-
- - Expression - Semantics -
-
-result_of::size<Seq>::type
-
-

- Return type: An MPL - Integral Constant. -

-

- 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;
-BOOST_MPL_ASSERT_RELATION(size_mpl_integral_constant::value, ==, 3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/swap.html b/doc/html/fusion/sequences/intrinsics/metafunctions/swap.html deleted file mode 100644 index 01cb7598..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/swap.html +++ /dev/null @@ -1,124 +0,0 @@ - - - -swap - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Returns the return type of swap. -

-
- - Synopsis -
-
-template<typename Seq1, typename Seq2>
-struct swap
-{
-    typedef void type;
-};
-
-
-

Table 1.32. Parameters

- ----- - - - - - - - - - - -
-

- Parameters -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq1, Seq2 -

-
-

- Models of Forward - Sequence -

-
-

- The sequences being swapped -

-
-
-
- - Expression - Semantics -
-
-result_of::swap<Seq1, Seq2>::type
-
-

- Return type: void. -

-

- Semantics: Always returns void. -

-
- - Header -
-
-#include <boost/fusion/sequence/intrinsic/swap.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html deleted file mode 100644 index 9c2e2a90..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at.html +++ /dev/null @@ -1,155 +0,0 @@ - - - -value_at - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    typename N>
-struct value_at
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.27. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- N -

-
-

- An MPL - Integral Constant -

-
-

- Index of element -

-
-
-
- - Expression - Semantics -
-
-result_of::value_at<Seq, N>::type
-
-

- Return type: Any type. -

-

- 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>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html deleted file mode 100644 index beb2a706..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_c.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -value_at_c - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    int M>
-struct value_at_c
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.28. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- M -

-
-

- Positive integer index -

-
-

- Index of element -

-
-
-
- - Expression - Semantics -
-
-result_of::value_at_c<Seq, M>::type
-
-

- Return type: Any type -

-

- 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>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html b/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html deleted file mode 100644 index f3395e58..00000000 --- a/doc/html/fusion/sequences/intrinsics/metafunctions/value_at_key.html +++ /dev/null @@ -1,155 +0,0 @@ - - - -value_at_key - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Synopsis -
-
-template<
-    typename Seq,
-    typename Key>
-struct value_at_key
-{
-    typedef unspecified type;
-};
-
-
-

Table 1.31. Parameters

- ----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- Seq -

-
-

- A model of Forward - Sequence -

-
-

- Argument sequence -

-
-

- Key -

-
-

- Any type -

-
-

- Key type -

-
-
-
- - Expression - Semantics -
-
-result_of::value_at_key<Seq, Key>::type
-
-

- Return type: Any type. -

-

- 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>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators.html b/doc/html/fusion/sequences/operators.html deleted file mode 100644 index b073cf2d..00000000 --- a/doc/html/fusion/sequences/operators.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Operators - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- These operators, like the Algorithms, - work generically on all Fusion sequences. All conforming Fusion sequences - automatically get these operators for free. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison.html b/doc/html/fusion/sequences/operators/comparison.html deleted file mode 100644 index fe52cb60..00000000 --- a/doc/html/fusion/sequences/operators/comparison.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Comparison - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- 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 -
-
-#include <boost/fusion/sequence/comparison.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/equal.html b/doc/html/fusion/sequences/operators/comparison/equal.html deleted file mode 100644 index 59bfbe55..00000000 --- a/doc/html/fusion/sequences/operators/comparison/equal.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -equal - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- Compare two sequences for equality. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator==(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a == b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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 - _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');
-assert(v1 == v2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/greater_than.html b/doc/html/fusion/sequences/operators/comparison/greater_than.html deleted file mode 100644 index ec62de5e..00000000 --- a/doc/html/fusion/sequences/operators/comparison/greater_than.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -greater - than - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Lexicographically compare two sequences. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator>(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a > b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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);
-assert(v2 > v1);
-assert(v3 > v2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html b/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html deleted file mode 100644 index 68c5acbb..00000000 --- a/doc/html/fusion/sequences/operators/comparison/greater_than_equal.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -greater - than equal - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Lexicographically compare two sequences. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator>=(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a >= b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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);
-assert(v2 >= v1);
-assert(v3 >= v2);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/less_than.html b/doc/html/fusion/sequences/operators/comparison/less_than.html deleted file mode 100644 index ca68920c..00000000 --- a/doc/html/fusion/sequences/operators/comparison/less_than.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -less - than - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Lexicographically compare two sequences. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator<(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a < b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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);
-assert(v1 < v2);
-assert(v2 < v3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/less_than_equal.html b/doc/html/fusion/sequences/operators/comparison/less_than_equal.html deleted file mode 100644 index 13ceddac..00000000 --- a/doc/html/fusion/sequences/operators/comparison/less_than_equal.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -less - than equal - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Lexicographically compare two sequences. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator<=(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a <= b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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);
-assert(v1 <= v2);
-assert(v2 <= v3);
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/comparison/not_equal.html b/doc/html/fusion/sequences/operators/comparison/not_equal.html deleted file mode 100644 index aff5882b..00000000 --- a/doc/html/fusion/sequences/operators/comparison/not_equal.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -not - equal - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Compare two sequences for inequality. -

-
- - Synopsis -
-
-template <typename Seq1, typename Seq2>
-bool
-operator!=(Seq1 const& a, Seq2 const& b);
-
-
- - Parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- a, - b -

-
-

- Instances of Sequence -

-
-

- _sequence_s to compare -

-
-
- - Expression - Semantics -
-
-a != b
-
-

- Return type: bool -

-

- Requirements: -

-

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

-

- An attempt to compare two Sequences of different lengths results in a - compile time error. -

-

- 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');
-assert(v1 != v3);
-assert(v1 != t4);
-assert(!(v1 != v2));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/i_o.html b/doc/html/fusion/sequences/operators/i_o.html deleted file mode 100644 index baf03cbf..00000000 --- a/doc/html/fusion/sequences/operators/i_o.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -I/O - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-

-I/O

-
-
in
-
out
-
-

- The I/O operators: << - and >> work generically - on all Fusion sequences. The global operator<< has been overloaded for generic - output streams such that _sequence_s - are output by recursively calling operator<< for each element. Analogously, - the global operator>> - has been overloaded to extract _sequence_s - from generic input streams by recursively calling operator>> for each element. -

-

- The default delimiter between the elements is space, and the Sequence - is enclosed in parenthesis. For Example: -

-
-vector<float, int, std::string> a(1.0f, 2, std::string("Howdy folks!");
-cout << a;
-
-

- outputs the vector as: (1.0 2 Howdy folks!) -

-

- The library defines three manipulators for changing the default behavior: -

-
-

Manipulators

-
-
tuple_open(arg)
-

- Defines the character that is output before the first element. -

-
tuple_close(arg)
-

- Defines the character that is output after the last element. -

-
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, - a C-string, or a wide C-string. -

-

- Example: -

-
-std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << 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 - stream contains the following data: -

-
-(1 2 3) [4:5]
-
-

- The code: -

-
-vector<int, int, int> i;
-vector<int, int> j;
-
-std::cin >> i;
-std::cin >> set_open('[') >> set_close(']') >> set_delimiter(':');
-std::cin >> j;
-
-

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

-

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

-
- - Header -
-
-#include <boost/fusion/sequence/io.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/i_o/in.html b/doc/html/fusion/sequences/operators/i_o/in.html deleted file mode 100644 index bfac3141..00000000 --- a/doc/html/fusion/sequences/operators/i_o/in.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -in - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-in
-
- - Description -
-

- Read a Sequence from an input - stream. -

-
- - Synopsis -
-
-template <typename IStream, typename Sequence>
-IStream&
-operator>>(IStream& is, Sequence& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- is -

-
-

- An input stream. -

-
-

- Stream to extract information from. -

-
-

- seq -

-
-

- A Sequence. -

-
-

- The sequence to read. -

-
-
- - Expression - Semantics -
-
-is >> seq
-
-

- Return type: IStream& -

-

- 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;
-std::cin >> v;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/operators/i_o/out.html b/doc/html/fusion/sequences/operators/i_o/out.html deleted file mode 100644 index 80ca62f7..00000000 --- a/doc/html/fusion/sequences/operators/i_o/out.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -out - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-out
-
- - Description -
-

- Write a Sequence to an output - stream. -

-
- - Synopsis -
-
-template <typename OStream, typename Sequence>
-OStream&
-operator<<(OStream& os, Sequence& seq);
-
-
- - Parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- os -

-
-

- An output stream. -

-
-

- Stream to write information to. -

-
-

- seq -

-
-

- A Sequence. -

-
-

- The sequence to write. -

-
-
- - Expression - Semantics -
-
-os << seq
-
-

- Return type: OStream& -

-

- 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;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views.html b/doc/html/fusion/sequences/views.html deleted file mode 100644 index cf4d2095..00000000 --- a/doc/html/fusion/sequences/views.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Views - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Views are sequences that do not actually contain data, but instead impart - an alternative presentation over the data from one or more underlying sequences. - Views are proxies. They provide an efficient yet purely functional way to - work on potentially expensive sequence operations. Views are inherently lazy. - Their elements are only computed on demand only when the elements of the - underlying sequence(s) are actually accessed. Views' lazy nature make them - very cheap to copy and be passed around by value. -

-

- - Header -

-
-#include <boost/fusion/sequence/view.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/filter_view.html b/doc/html/fusion/sequences/views/filter_view.html deleted file mode 100644 index 758b9540..00000000 --- a/doc/html/fusion/sequences/views/filter_view.html +++ /dev/null @@ -1,244 +0,0 @@ - - - -filter_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Header -
-
-#include <boost/fusion/sequence/view/filter_view.hpp>
-
-
- - Synopsis -
-
-template <typename Sequence, typename Pred>
-struct filter_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Sequence -

-
-

- A Forward - Sequence -

-
-

-

-
-

- Pred -

-
-

- Unary Metafunction returning an mpl::bool_ -

-
-

-

-
-
- - Model of -
- -
-

Notation

-
-
F
-

- A filter_view type -

-
f, - f2
-

- Instances of filter_view -

-
s
-

- A Forward - Sequence -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- F(s) -

-
-

- Creates a filter_view - given a sequence, s. -

-
-

- F(f) -

-
-

- Copy constructs a filter_view - from another filter_view, - f. -

-
-

- f = - f2 -

-
-

- Assigns to a filter_view, - f, from another - filter_view, f2. -

-
-
- - Example -
-
-using boost::mpl::_;
-using boost::mpl::not_;
-using boost::is_class;
-
-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);
-std::cout << view << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/iterator_range.html b/doc/html/fusion/sequences/views/iterator_range.html deleted file mode 100644 index e53bc815..00000000 --- a/doc/html/fusion/sequences/views/iterator_range.html +++ /dev/null @@ -1,258 +0,0 @@ - - - -iterator_range - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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 -
-
-template <typename First, typename Last>
-struct iterator_range;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- First -

-
-

- A fusion Iterator -

-
-

-

-
-

- Last -

-
-

- A fusion Iterator -

-
-

-

-
-
- - Model of -
-
-
-

Notation

-
-
IR
-

- An iterator_range type -

-
f
-

- An instance of First -

-
l
-

- An instance of Last -

-
ir, - ir2
-

- Instances of iterator_range -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- IR(f, - l) -

-
-

- Creates an iterator_range - given iterators, f - and l. -

-
-

- IR(ir) -

-
-

- Copy constructs an iterator_range - from another iterator_range, - ir. -

-
-

- ir = - ir2 -

-
-

- Assigns to a iterator_range, - ir, from another - iterator_range, - ir2. -

-
-
- - Example -
-
-char const* s = "Ruby";
-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;
-
-C c(vec);
-D d(vec);
-
-iterator_range<C, D> range(c, d);
-std::cout << range << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/joint_view.html b/doc/html/fusion/sequences/views/joint_view.html deleted file mode 100644 index 2a1bfd21..00000000 --- a/doc/html/fusion/sequences/views/joint_view.html +++ /dev/null @@ -1,245 +0,0 @@ - - - -joint_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Header -
-
-#include <boost/fusion/sequence/view/joint_view.hpp>
-
-
- - Synopsis -
-
-template <typename Sequence1, typename Sequence2>
-struct joint_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Sequence1 -

-
-

- A Forward - Sequence -

-
-

-

-
-

- Sequence2 -

-
-

- A Forward - Sequence -

-
-

-

-
-
- - Model of -
- -
-

Notation

-
-
JV
-

- A joint_view type -

-
s1
-

- An instance of Sequence1 -

-
s2
-

- An instance of Sequence2 -

-
jv, - jv2
-

- Instances of joint_view -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- JV(s1, - s2) -

-
-

- Creates a joint_view - given sequences, s1 - and s2. -

-
-

- JV(jv) -

-
-

- Copy constructs a joint_view - from another joint_view, - jv. -

-
-

- jv = - jv2 -

-
-

- Assigns to a joint_view, - jv, from another - joint_view, jv2. -

-
-
- - Example -
-
-vector<int, char> v1(3, 'x');
-vector<std::string, int> v2("hello", 123);
-joint_view<
-    vector<int, char>
-  , vector<std::string, int>
-> view(v1, v2);
-std::cout << view << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/reverse_view.html b/doc/html/fusion/sequences/views/reverse_view.html deleted file mode 100644 index f071a5f1..00000000 --- a/doc/html/fusion/sequences/views/reverse_view.html +++ /dev/null @@ -1,216 +0,0 @@ - - - -reverse_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 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 -
-
-template <typename Sequence>
-struct reverse_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Sequence -

-
-

- A Bidirectional - Sequence -

-
-

-

-
-
- - Model of -
- -
-

Notation

-
-
RV
-

- A reverse_view type -

-
s
-

- An instance of Sequence -

-
rv, - rv2
-

- Instances of reverse_view -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- RV(s) -

-
-

- Creates a unary reverse_view - given sequence, s. -

-
-

- RV(rv) -

-
-

- Copy constructs a reverse_view - from another reverse_view, - rv. -

-
-

- rv = - rv2 -

-
-

- Assigns to a reverse_view, - rv, from another - reverse_view, - rv2. -

-
-
- - Example -
-
-typedef vector<int, short, double> vector_type;
-vector_type vec(2, 5, 3.3);
-
-reverse_view<vector_type> reverse(vec);
-std::cout << reverse << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/single_view.html b/doc/html/fusion/sequences/views/single_view.html deleted file mode 100644 index ae40751b..00000000 --- a/doc/html/fusion/sequences/views/single_view.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -single_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

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

-
- - Header -
-
-#include <boost/fusion/sequence/view/single_view.hpp>
-
-
- - Synopsis -
-
-template <typename T>
-struct single_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- T -

-
-

- Any type -

-
-

-

-
-
- - Model of -
- -
-

Notation

-
-
S
-

- A single_view type -

-
s, - s2
-

- Instances of single_view -

-
x
-

- An instance of T -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- S(x) -

-
-

- Creates a single_view - from x. -

-
-

- S(s) -

-
-

- Copy constructs a single_view - from another single_view, - s. -

-
-

- s = - s2 -

-
-

- Assigns to a single_view, - s, from another - single_view, s2. -

-
-
- - Example -
-
-single_view<int> view(3);
-std::cout << view << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/transform_view.html b/doc/html/fusion/sequences/views/transform_view.html deleted file mode 100644 index 00c990b8..00000000 --- a/doc/html/fusion/sequences/views/transform_view.html +++ /dev/null @@ -1,383 +0,0 @@ - - - -transform_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- The unary version of transform_view - presents a view of its underlying sequence given a unary function object - or function pointer. The binary version of transform_view - presents a view of 2 underlying sequences, given a binary function object - or function pointer. The transform_view - inherits the traversal characteristics (see Sequence - Traversal Concept) of its underlying sequence or sequences. -

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

- Unary Version -

-
-template <typename Sequence, typename F1>
-struct transform_view;
-
-

- Binary Version -

-
-template <typename Sequence1, typename Sequence2, typename F2>
-struct transform_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Sequence -

-
-

- A Forward - Sequence -

-
-

-

-
-

- Sequence1 -

-
-

- A Forward - Sequence -

-
-

-

-
-

- Sequence2 -

-
-

- A Forward - Sequence -

-
-

-

-
-

- F1 -

-
-

- A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an - instance of F1 - when called with a value of each element type E - in the input sequence. -

-
-

-

-
-

- F2 -

-
-

- A binary function object or function pointer. boost::result_of<F2(E1, - E2)>::type is the return type of an - instance of F2 - when called with a value of each corresponding pair of element - type E1 and E2 in the input sequences. -

-
-

-

-
-
- - Model of -
-
-
-

Notation

-
-
TV
-

- A transform_view type -

-
BTV
-

- A binary transform_view - type -

-
UTV
-

- A unary transform_view - type -

-
f1
-

- An instance of F1 -

-
f2
-

- An instance of F2 -

-
s
-

- An instance of Sequence -

-
s1
-

- An instance of Sequence1 -

-
s2
-

- An instance of Sequence2 -

-
tv, - tv2
-

- Instances of transform_view -

-
-
-
- - Expression - Semantics -
-

- Semantics of an expression is defined only where it differs from, or is - not defined in Forward - Sequence, Bidirectional - Sequence or Random - Access Sequence depending on the traversal characteristics (see - Sequence Traversal - Concept) of its underlying sequence or sequences. -

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- UTV(s, - f1) -

-
-

- Creates a unary transform_view - given sequence, s - and unary function object or function pointer, f1. -

-
-

- BTV(s1, - s2, - f2) -

-
-

- Creates a binary transform_view - given sequences, s1 - and s2 and binary - function object or function pointer, f2. -

-
-

- TV(tv) -

-
-

- Copy constructs a transform_view - from another transform_view, - tv. -

-
-

- tv = - tv2 -

-
-

- Assigns to a transform_view, - tv, from another - transform_view, - tv2. -

-
-
- - Example -
-
-struct square
-{
-    template<typename Sig>
-    struct result;
-
-    template<typename U>
-    struct result<square(U)>
-    : remove_reference<U>
-    {};
-
-    template <typename T>
-    T operator()(T x) const
-    {
-        return x * x;
-    }
-};
-
-typedef vector<int, short, double> vector_type;
-vector_type vec(2, 5, 3.3);
-
-transform_view<vector_type, square> transform(vec, square());
-std::cout << transform << std::endl;
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/sequences/views/zip_view.html b/doc/html/fusion/sequences/views/zip_view.html deleted file mode 100644 index 866a7866..00000000 --- a/doc/html/fusion/sequences/views/zip_view.html +++ /dev/null @@ -1,230 +0,0 @@ - - - -zip_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

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

-
- - Header -
-
-#include <boost/fusion/sequence/view/zip_view.hpp>
-
-
- - Synopsis -
-
-template <typename Sequences>
-struct zip_view;
-
-
- - Template - parameters -
-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- Default -

-
-

- Sequences -

-
-

- A Forward - Sequence of references to other Fusion _sequence_s -

-
-

-

-
-
- - Model of -
-
-
-

Notation

-
-
ZV
-

- A joint_view type -

-
s
-

- An instance of Sequences -

-
zv1, - zv2
-

- Instances of ZV -

-
-
-
- - Expression - Semantics -
-

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

-
---- - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- ZV(s) -

-
-

- Creates a zip_view - given a sequence of references to the component _sequence_s. -

-
-

- ZV(zv1) -

-
-

- Copy constructs a zip_view - from another zip_view, - zv. -

-
-

- zv1 = - zv2 -

-
-

- Assigns to a zip_view, - zv, from another - zip_view, zv2. -

-
-
- - Example -
-
-typedef vector<int,int> vec1;
-typedef vector<char,char> vec2;
-vec1 v1(1,2);
-vec2 v2('a','b');
-typedef vector<vec1&, vec2&> sequences;
-std::cout << zip_view<sequences>(sequences(v1, v2)) << std::endl; // ((1 a) (2 b))
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support.html b/doc/html/fusion/support.html deleted file mode 100644 index 06a56770..00000000 --- a/doc/html/fusion/support.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Support - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- A couple of classes and metafunctions provide basic support for Fusion. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html deleted file mode 100644 index 599c514b..00000000 --- a/doc/html/fusion/support/category_of.html +++ /dev/null @@ -1,192 +0,0 @@ - - - -category_of - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- A metafunction that establishes the conceptual classification of a particular - Sequence or Iterator - (see Iterator Concepts and - Sequence Concepts). -

-

- - Synopsis -

-
-namespace traits
-{
-    template <typename T>
-    struct category_of 
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Parameters -

-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- T -

-
-

- Any type -

-
-

- The type to query. -

-
-

- - Expression - Semantics -

-
-typedef traits::category_of<T>::type category;
-
-

- Return type: -

-

- For Iterators, the return type is derived from one of: -

-
-namespace boost { namespace fusion
-{
-    struct incrementable_traversal_tag {};
-
-    struct single_pass_traversal_tag
-        : incrementable_traversal_tag {};
-
-    struct forward_traversal_tag
-        : single_pass_traversal_tag {};
-
-    struct bidirectional_traversal_tag
-        : forward_traversal_tag {};
-
-    struct random_access_traversal_tag
-        : bidirectional_traversal_tag {};
-}}
-
-

- For Sequences, the return type is derived from one of: -

-
-namespace boost { namespace fusion
-{
-    struct incrementable_sequence_tag {};
-
-    struct single_pass_sequence_tag
-        : incrementable_sequence_tag {};
-
-    struct forward_traversal_tag
-        : single_pass_sequence_tag {};
-
-    struct bidirectional_traversal_tag
-        : forward_traversal_tag {};
-
-    struct random_access_traversal_tag
-        : bidirectional_traversal_tag {};
-}}
-
-

- And optionally from: -

-
-namespace boost { namespace fusion
-{
-    struct associative_sequence_tag {};
-}}
-
-

- 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;
-BOOST_MPL_ASSERT(( is_base_of<forward_traversal_tag, list_category> ));
-BOOST_MPL_ASSERT(( is_base_of<random_access_traversal_tag, vector_category> ));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/deduce.html b/doc/html/fusion/support/deduce.html deleted file mode 100644 index 4b7b035b..00000000 --- a/doc/html/fusion/support/deduce.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -deduce - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- Metafunction to apply element - conversion to the full argument type. -

-

- It removes references to const, - references to array types are kept, even if the array is const. - Reference wrappers are removed (see boost::ref). -

-

- - Header -

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

- - Synopsis -

-
-namespace traits
-{
-    template <typename T> 
-    struct deduce
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Example -

-
-template <typename T>
-struct holder
-{
-    typename traits::deduce<T const &>::type element;
-
-    holder(T const & a)
-      : element(a)
-    { }
-};
-
-template <typename T>
-holder<T> make_holder(T const & a)
-{
-    return holder<T>(a);
-}
-
-

- - See also -

- -
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html deleted file mode 100644 index c7423807..00000000 --- a/doc/html/fusion/support/deduce_sequence.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -deduce_sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- Applies element - conversion to each element in a Forward - Sequence. The resulting type is a Random - Access Sequence that provides a converting constructor accepting the - original type as its argument. -

-

- - Header -

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

- - Synopsis -

-
-namespace traits
-{
-    template <class Sequence> 
-    struct deduce_sequence
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Example -

-
-template <class Seq>
-struct holder
-{
-    typename traits::deduce_sequence<Seq>::type element;
-
-    holder(Seq const & a)
-      : element(a)
-    { }
-};
-
-template <typename T0, typename T1>
-holder< vector<T0 const &, T1 const &> > 
-make_holder(T0 const & a0, T1 const & a1)
-{
-    typedef vector<T0 const &, T1 const &> arg_vec_t;
-    return holder<arg_vec_t>( arg_vec_t(a0,a1) ); 
-}
-
-

- - See also -

- -
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html deleted file mode 100644 index c2e96c86..00000000 --- a/doc/html/fusion/support/is_sequence.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -is_sequence - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

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

-
-namespace traits
-{
-    template <typename T>
-    struct is_sequence 
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Parameters -

-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- T -

-
-

- Any type -

-
-

- The type to query. -

-
-

- - Expression - Semantics -

-
-typedef traits::is_sequence<T>::type c;
-
-

- 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_ - 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> > ));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/is_view.html b/doc/html/fusion/support/is_view.html deleted file mode 100644 index 9f245620..00000000 --- a/doc/html/fusion/support/is_view.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -is_view - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- 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 - specialized to accomodate clients providing Fusion conforming views. -

-

- - Synopsis -

-
-namespace traits
-{
-    template <typename T>
-    struct is_view 
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Parameters -

-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- T -

-
-

- Any type -

-
-

- The type to query. -

-
-

- - Expression Semantics -

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

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

-

- - Header -

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

- - Example -

-
-BOOST_MPL_ASSERT_NOT(( traits::is_view<std::vector<int> > ));
-BOOST_MPL_ASSERT_NOT(( traits::is_view<int> ));
-
-using boost::mpl::_
-using boost::is_pointer;
-typedef vector<int*, char, long*, bool, double> vector_type;
-typedef filter_view<vector_type, is_pointer<_> > filter_view_type;
-BOOST_MPL_ASSERT(( traits::is_view<filter_view_type> ));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/pair.html b/doc/html/fusion/support/pair.html deleted file mode 100644 index 92548e61..00000000 --- a/doc/html/fusion/support/pair.html +++ /dev/null @@ -1,337 +0,0 @@ - - - -pair - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

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

-
-template <typename First, typename Second>
-struct pair;
-
-namespace result_of
-{
-    template <typename First, typename Second>
-    struct first;
-
-    template <typename First, typename Second>
-    struct second;
-
-    template <typename First, typename Second>
-    struct make_pair;
-}
-
-template <typename First, typename Second>
-typename result_of::make_pair<First,Second>::type
-make_pair(Second const &);
-
-

- - Template parameters -

-
---- - - - - - - - - - - - - - - -
-

- Parameter -

-
-

- Description -

-
-

- First -

-
-

- The first type. This is purely a type. No data is held. -

-
-

- Second -

-
-

- The second type. This contains data. -

-
-
-

Notation

-
-
P
-

- Fusion pair type -

-
p, - p2
-

- Fusion pairs -

-
F, - S
-

- Arbitrary types -

-
s
-

- Value of type S -

-
o
-

- Output stream -

-
i
-

- Input stream -

-
-
-

- - Expression Semantics -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Expression -

-
-

- Semantics -

-
-

- P::first_type -

-
-

- The type of the first template parameter, F, - equivalent to result_of::first<P>::type. -

-
-

- P::second_type -

-
-

- The type of the second template parameter, S, - equivalent to result_of::second<P>::type. -

-
-

- P() -

-
-

- Default construction. -

-
-

- P(s) -

-
-

- Construct a pair given value for the second type, s. -

-
-

- P(p2) -

-
-

- Copy constructs a pair from another pair, p2. -

-
-

- p = - 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 -

-
-

- o << - p -

-
-

- Output p to output - stream, o. -

-
-

- i >> - p -

-
-

- Input p from input - stream, i. -

-
-

- p == - p2 -

-
-

- Tests two pairs for equality. -

-
-

- p != - p2 -

-
-

- Tests two pairs for inequality. -

-
-

- - Header -

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

- - Example -

-
-pair<int, char> p('X');
-std::cout << p << std::endl;
-std::cout << make_pair<int>('X') << std::endl;
-assert((p == make_pair<int>('X')));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/support/tag_of.html b/doc/html/fusion/support/tag_of.html deleted file mode 100644 index 57404fd6..00000000 --- a/doc/html/fusion/support/tag_of.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -tag_of - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- All conforming Fusion sequences and iterators have an associated tag type. - The purpose of the tag is to enable tag - dispatching from Intrinsic - functions to implementations appropriate for the type. -

-

- This metafunction may be specialized to accomodate clients providing Fusion - conforming sequences. -

-

- - Synopsis -

-
-namespace traits
-{
-    template<typename Sequence>
-    struct tag_of 
-    {
-        typedef unspecified type;
-    };
-}
-
-

- - Parameters -

-
----- - - - - - - - - - - -
-

- Parameter -

-
-

- Requirement -

-
-

- Description -

-
-

- T -

-
-

- Any type -

-
-

- The type to query. -

-
-

- - Expression Semantics -

-
-typedef traits::tag_of<T>::type tag;
-
-

- Return type: Any type. -

-

- 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;
-
-BOOST_MPL_ASSERT((boost::is_same<tag1, tag2>));
-BOOST_MPL_ASSERT((boost::is_same<tag3, tag4>));
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples.html b/doc/html/fusion/tuples.html deleted file mode 100644 index d6045ced..00000000 --- a/doc/html/fusion/tuples.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Tuples - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- 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 - as a type of tuple. -

-

- Fusion provides full support for the TR1 - Tuple interface, and the extended uses of std::pair described - in the TR1 document. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples/class_template_tuple.html b/doc/html/fusion/tuples/class_template_tuple.html deleted file mode 100644 index 2ee19c9a..00000000 --- a/doc/html/fusion/tuples/class_template_tuple.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Class template tuple - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- Fusion's implementation of the TR1 - Tuple is also a fusion Forward - Sequence. As such the fusion tuple type provides a lot of functionality - beyond that required by TR1. -

-

- Currently tuple is basically a synonym for vector, although this may be changed - in future releases of fusion. -

-

- - Synopsis -

-
-template<
-    typename T1 = unspecified,
-    typename T2 = unspecified,
-    ...
-    typename TN = unspecified>
-class tuple;
-
-

- - Header -

-
-#include <boost/fusion/tuple.hpp>
-
-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples/class_template_tuple/construction.html b/doc/html/fusion/tuples/class_template_tuple/construction.html deleted file mode 100644 index 5577f155..00000000 --- a/doc/html/fusion/tuples/class_template_tuple/construction.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -Construction - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- The TR1 - Tuple type provides a default constructor, a constructor that takes - initializers for all of its elements, a copy constructor, and a converting - copy constructor. The details of the various constructors are described - in this section. -

-
- - Specification -
-
-

Notation

-
-
T1 - ... TN, - U1 ... - UN
-

- Tuple element types -

-
P1 - ... PN
-

- Parameter types -

-
Ti, - Ui
-

- The type of the ith - element of a tuple -

-
Pi
-

- The type of the ith - parameter -

-
-
-
-tuple();
-
-

- Requirements: Each Ti - is default constructable. -

-

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

-

- Semantics: Copy initializes each element - with the corresponding parameter. -

-
-tuple(const tuple& t);
-
-

- Requirements: Each Ti - should be copy constructable. -

-

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

-

- Semantics: Constructs each element of - *this - with the corresponding element of t. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples/class_template_tuple/element_access.html b/doc/html/fusion/tuples/class_template_tuple/element_access.html deleted file mode 100644 index 119585a2..00000000 --- a/doc/html/fusion/tuples/class_template_tuple/element_access.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Element - access - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- The TR1 - Tuple provides the get - function to provide access to it's elements by zero based numeric index. -

-
- - Specification -
-
-template<int I, T>
-RJ get(T& t);
-
-

- Requires: 0 - < I - <= 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. -

-

- Returns: A reference to the Ith element of T. -

-
-template<int I, typename T>
-PJ get(T const& t);
-
-

- Requires: 0 - < I - <= 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. -

-

- Returns: A const reference to the Ith element of T. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples/class_template_tuple/relational_operators.html b/doc/html/fusion/tuples/class_template_tuple/relational_operators.html deleted file mode 100644 index 90d031bd..00000000 --- a/doc/html/fusion/tuples/class_template_tuple/relational_operators.html +++ /dev/null @@ -1,207 +0,0 @@ - - - -Relational - operators - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- The TR1 - Tuple provides the standard boolean relational operators. -

-
- - Specification -
-
-

Notation

-
-
T1 - ... TN, - U1 ... - UN
-

- Tuple element types -

-
P1 - ... PN
-

- Parameter types -

-
Ti, - Ui
-

- The type of the ith - element of a tuple -

-
Pi
-

- The type of the ith - parameter -

-
-
-
-template<typename T1, typename T2, ..., typename TN,
-         typename U1, typename U2, ..., typename UN>
-bool operator==(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- 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,
-         typename U1, typename U2, ..., typename UN>
-bool operator<(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- Semantics: Returns the lexicographical - comparison of between lhs - and rhs. -

-
-template<typename T1, typename T2, ..., typename TN,
-         typename U1, typename U2, ..., typename UN>
-bool operator!=(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- Semantics: Returns !(lhs == rhs). -

-
-template<typename T1, typename T2, ..., typename TN,
-         typename U1, typename U2, ..., typename UN>
-bool operator<=(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- Semantics: Returns !(rhs < lhs) -

-
-template<typename T1, typename T2, ..., typename TN,
-         typename U1, typename U2, ..., typename UN>
-bool operator>(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- Semantics: Returns rhs - < lhs. -

-
-template<typename T1, typename T2, ..., typename TN,
-         typename U1, typename U2, ..., typename UN>
-bool operator>=(
-    const tuple<T1, T2, ..., TN>& lhs,
-    const tuple<U1, U2, ..., UN>& rhs);
-
-

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

-

- Semantics: Returns !(lhs < rhs). -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - 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 deleted file mode 100644 index 814625bb..00000000 --- a/doc/html/fusion/tuples/class_template_tuple/tuple_creation_functions.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Tuple - creation functions - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- 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 -
-
-template<typename T1, typename T2, ..., typename TN>
-tuple<V1, V2, ..., VN> make_tuple(const T1& t1, const T2& t2, ..., const TN& tn);
-
-

- Where Vi is X& - if the cv-unqualified type Ti - is reference_wrapper<X>, - otherwise Vi is Ti. -

-

- 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 - value to the corresponding tuple element has has no effect. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - 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 deleted file mode 100644 index 1bd436e1..00000000 --- a/doc/html/fusion/tuples/class_template_tuple/tuple_helper_classes.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -Tuple - helper classes - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -
- - Description -
-

- The TR1 - Tuple provides 2 helper traits, for compile time access to the - tuple size, and the element types. -

-
- - Specification -
-
-tuple_size<T>::value
-
-

- Requires: T - is any fusion sequence type, including tuple. -

-

- Type: MPL - Integral Constant -

-

- 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 <= - I < - 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. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/fusion/tuples/pairs.html b/doc/html/fusion/tuples/pairs.html deleted file mode 100644 index 5060e796..00000000 --- a/doc/html/fusion/tuples/pairs.html +++ /dev/null @@ -1,108 +0,0 @@ - - - -Pairs - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- - Description -

-

- The TR1 - 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 -

-

- Value: Returns 2, the number of elements - in a pair. -

-
-tuple_element<0, std::pair<T1, T2> >::type
-
-

- Type: T1 -

-

- Value: Returns the type of the first element - of the pair -

-
-tuple_element<1, std::pair<T1, T2> >::type
-
-

- Type: T2 -

-

- Value: Returns thetype of the second element - of the pair -

-
-template<int I, typename T1, typename T2>
-P& get(std::pair<T1, T2>& pr);
-
-template<int I, typename T1, typename T2>
-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 - ill-formed. -

-

- Returns: pr.first - if I == - 0 else pr.second.[*Returns: - pr.first if I - == 0 - else pr.second. -

-
- - - -
Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias - Schwinger
-
-
-PrevUpHomeNext -
- - diff --git a/doc/organization.qbk b/doc/organization.qbk index 71fd1a91..2d09da0d 100644 --- a/doc/organization.qbk +++ b/doc/organization.qbk @@ -52,14 +52,13 @@ link against. * map * set * vector + * generation * mpl * functional * sequence * comparison - * conversion * intrinsic * io - * utility * iterator * support @@ -69,7 +68,9 @@ If, for example, you want to use `list`, depending on the granularity that you desire, you may do so by including one of #include + #include #include + #include The first includes all containers The second includes only `list` [footnote Modules may contain smaller components. Header file diff --git a/doc/quick_start.qbk b/doc/quick_start.qbk index 8857b5ea..d1a35d88 100644 --- a/doc/quick_start.qbk +++ b/doc/quick_start.qbk @@ -11,6 +11,7 @@ over which components to include (see section __organization__ for details).]: #include + #include Let's begin with a `__vector__` [footnote Unless otherwise noted, components are in namespace `boost::fusion`. For the sake of simplicity, code in this @@ -32,6 +33,7 @@ the similarity ends there. You can do a lot more with Fusion `__vector__` or First, let's include the algorithms: #include + #include Now, let's write a function object that prints XML of the form data for each member in the tuple. diff --git a/doc/sequence.qbk b/doc/sequence.qbk index 65297189..b4676bc1 100644 --- a/doc/sequence.qbk +++ b/doc/sequence.qbk @@ -11,6 +11,7 @@ Sequence's elements. [heading Header] #include + #include [section Concepts] @@ -349,6 +350,7 @@ have default implementations that will work in majority of cases]. [heading Header] #include + #include [section Functions] @@ -388,6 +390,7 @@ else, __random_access_iterator__ if `seq` is a __random_access_sequence__. [heading Header] #include + #include [heading Example] @@ -433,6 +436,7 @@ the sequence. [heading Header] #include + #include [heading Example] @@ -473,6 +477,7 @@ to `false`. [heading Header] #include + #include [heading Example] @@ -520,6 +525,7 @@ the first element in the sequence. [heading Header] #include + #include [heading Example] @@ -567,6 +573,7 @@ last element in the sequence. [heading Header] #include + #include [heading Example] @@ -606,6 +613,7 @@ in the sequence. [heading Header] #include + #include [heading Example] @@ -658,6 +666,7 @@ sequence. [heading Header] #include + #include [heading Example] @@ -710,6 +719,7 @@ sequence. [heading Header] #include + #include [heading Example] @@ -752,6 +762,7 @@ associated with Key, else, evaluates to `false`. [heading Header] #include + #include [heading Example] @@ -800,6 +811,7 @@ convertable to the element associated with Key. [heading Header] #include + #include [heading Example] @@ -1340,1175 +1352,6 @@ Returns the return type of swap. [endsect] -[section Generation] - -These are the functions that you can use to generate various forms of -__containers__ from elemental values. - -[heading Header] - - #include - -[section Functions] - -[section make_list] - -[heading Description] - -Create a __list__ from one or more values. - -[heading Synopsis] - - template - typename __result_of_make_list__::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` -before including any Fusion header to change the default. Example: - - #define FUSION_MAX_LIST_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_list`]] -] - -[heading Expression Semantics] - - make_list(x0, x1,... xN); - -[*Return type]: __result_of_make_list__`::type` - -[*Semantics]: Create a __list__ from `x0, x1,... xN`. - -[heading Header] - - #include - -[heading Example] - - make_list(123, "hello", 12.5) - -[heading See also] - -__note_boost_ref__ - -[endsect] - -[section make_cons] - -[heading Description] - -Create a __cons__ from `car` (/head/) and optional `cdr` (/tail/). - -[heading Synopsis] - - template - typename __result_of_make_cons__::type - make_cons(Car const& car); - - template - typename __result_of_make_cons__::type - make_cons(Car const& car, Cdr const& cdr); - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`car`] [Instance of `Car`] [The list's head]] - [[`cdr`] [Instance of `Cdr`] [The list's tail (optional)]] -] - -[heading Expression Semantics] - - make_cons(car, cdr); - -[*Return type]: __result_of_make_cons__`::type` or -__result_of_make_cons__`::type` - -[*Semantics]: Create a __cons__ from `car` (/head/) and optional `cdr` (/tail/). - -[heading Header] - - #include - -[heading Example] - - make_cons('x', make_cons(123)) - -[heading See also] - -__note_boost_ref__ - -[endsect] - -[section make_vector] - -[heading Description] - -Create a __vector__ from one or more values. - -[heading Synopsis] - - template - typename __result_of_make_vector__::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` before including any Fusion header to change the -default. Example: - - #define FUSION_MAX_VECTOR_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_vector`]] -] - -[heading Expression Semantics] - - make_vector(x0, x1,... xN); - -[*Return type]: __result_of_make_vector__`::type` - -[*Semantics]: Create a __vector__ from `x0, x1,... xN`. - -[heading Header] - - #include - -[heading Example] - - make_vector(123, "hello", 12.5) - -[heading See also] - -__note_boost_ref__ - -[endsect] - -[section make_set] - -[heading Description] - -Create a __set__ from one or more values. - -[heading Synopsis] - - template - typename __result_of_make_set__::type - make_set(T0 const& x0, T1 const& x1... TN const& xN); - -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`set` is implemented in terms of the vector. That is why we reuse -`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 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_set`]] -] - -[heading Expression Semantics] - - make_set(x0, x1,... xN); - -[*Return type]: __result_of_make_set__`::type` - -[*Semantics]: Create a __set__ from `x0, x1,... xN`. - -[*Precondition]: There may be no duplicate key types. - -[heading Header] - - #include - -[heading Example] - - make_set(123, "hello", 12.5) - -[heading See also] - -__note_boost_ref__ - -[endsect] - -[section make_map] - -[heading Description] - -Create a __map__ from one or more key/data pairs. - -[heading Synopsis] - - template < - typename K0, typename K1,... typename KN - , typename T0, typename T1,... typename TN> - typename __result_of_make_map__::type - make_map(T0 const& x0, T1 const& x1... TN const& xN); - -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`map` is implemented in terms of the vector. That is why we reuse -`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 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`K0, K1,... KN`] [The key types] [Keys associated with `x0, x1,... xN`]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `make_map`]] -] - -[heading Expression Semantics] - - make_map(x0, x1,... xN); - -[*Return type]: __result_of_make_map__`::type` - -[*Semantics]: Create a __map__ from `K0, K1,... KN` keys and -`x0, x1,... xN` data. - -[*Precondition]: There may be no duplicate key types. - -[heading Header] - - #include - -[heading Example] - - make_map( - __fusion_make_pair__('X') - , __fusion_make_pair__("Men")) - -[heading See also] - -__note_boost_ref__, __fusion_pair__ - -[endsect] - -[section Tiers] - -Tiers are sequences, where all elements are non-const reference types. They -are constructed with a call to a couple of /tie/ function templates. The -succeeding sections document the various /tier/ flavors. - -* __list_tie__ -* __vector_tie__ -* __map_tie__ - -Example: - - int i; char c; double d; - ... - __vector_tie__(i, c, a); - -The __vector_tie__ function creates a __vector__ of type -`__vector__`. The same result could be achieved with the call -__make_vector__(__boost_ref_call__(i), __boost_ref_call__(c), __boost_ref_call__(a)) -[footnote see __boost_ref__ for details about `ref`]. - -A /tie/ can be used to 'unpack' another tuple into variables. E.g.: - - int i; char c; double d; - __vector_tie__(i, c, d) = __make_vector__(1,'a', 5.5); - std::cout << i << " " << c << " " << d; - -This code prints 1 a 5.5 to the standard output stream. A sequence -unpacking operation like this is found for example in ML and Python. It is -convenient when calling functions which return sequences. - -[heading Ignore] - -There is also an object called /ignore/ which allows you to ignore an -element assigned by a sequence. The idea is that a function may return a -sequence, only part of which you are interested in. For example: - - char c; - __vector_tie__(ignore, c) = __make_vector__(1, 'a'); - -[endsect] - -[section list_tie] - -[heading Description] - -Constructs a tie using a __list__ sequence. - -[heading Synopsis] - - template - __list__ - 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` -before including any Fusion header to change the default. Example: - - #define FUSION_MAX_LIST_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `list_tie`]] -] - -[heading Expression Semantics] - - list_tie(x0, x1,... xN); - -[*Return type]: __list__ - -[*Semantics]: Create a __list__ of references from `x0, x1,... xN`. - -[heading Header] - - #include - -[heading Example] - - int i = 123; - double d = 123.456; - list_tie(i, d) - -[endsect] - -[section vector_tie] - -[heading Description] - -Constructs a tie using a __vector__ sequence. - -[heading Synopsis] - - template - __vector__ - 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` before including any Fusion header to change the -default. Example: - - #define FUSION_MAX_VECTOR_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `vector_tie`]] -] - -[heading Expression Semantics] - - vector_tie(x0, x1,... xN); - -[*Return type]: __vector__ - -[*Semantics]: Create a __vector__ of references from `x0, x1,... xN`. - -[heading Header] - - #include - -[heading Example] - - int i = 123; - double d = 123.456; - vector_tie(i, d) - -[endsect] - -[section map_tie] - -[heading Description] - -Constructs a tie using a __map__ sequence. - -[heading Synopsis] - - template - __map__<__pair__, __pair__,... __pair__ > - map_tie(D0& d0, D1& d1... DN& dN); - -The variadic function accepts `0` to `FUSION_MAX_MAP_SIZE` elements, -where `FUSION_MAX_MAP_SIZE` is a user definable predefined maximum that -defaults to `10`, and a corresponding number of key types. -You may define the preprocessor constant `FUSION_MAX_MAP_SIZE` before -including any Fusion header to change the default. Example: - - #define FUSION_MAX_MAP_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`K0, K1,... KN`] [Any type][The key types associated with each of the `x1,x2,...,xN` values]] - [[`x0, x1,... xN`] [Instances of `T0, T1,... TN`] [The arguments to `map_tie`]] -] - -[heading Expression Semantics] - - map_tie(x0, x1,... xN); - -[*Return type]: __map__<__pair__, __pair__,... __pair__ > - -[*Semantics]: Create a __map__ of references from `x0, x1,... xN` with keys `K0, K1,... KN` - -[heading Header] - - #include - -[heading Example] - - struct int_key; - struct double_key; - ... - int i = 123; - double d = 123.456; - map_tie(i, d) - -[endsect] - -[endsect] - -[section MetaFunctions] - -[section make_list] - -[heading Description] - -Returns the result type of __make_list__. - -[heading Synopsis] - - template - 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` -before including any Fusion header to change the default. Example: - - #define FUSION_MAX_LIST_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`T0, T1,... TN`] [Any type] [Template arguments to `make_list`]] -] - -[heading Expression Semantics] - - result_of::make_list::type - -[*Return type]: A __list__ with elements of types converted following the -rules for __element_conversion__. - -[*Semantics]: Create a __list__ from `T0, T1,... TN`. - -[heading Header] - - #include - -[heading Example] - - result_of::make_list::type - -[endsect] - -[section make_cons] - -[heading Description] - -Returns the result type of __make_cons__. - -[heading Synopsis] - - template - struct make_cons; - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`Car`] [Any type] [The list's head type]] - [[`Cdr`] [A `cons`] [The list's tail type (optional)]] -] - -[heading Expression Semantics] - - result_of::make_cons::type - -[*Return type]: A __cons__ with head element, `Car`, of type converted -following the rules for __element_conversion__, and tail, `Cdr`. - -[*Semantics]: Create a __cons__ from `Car` (/head/) and optional `Cdr` (/tail/). - -[heading Header] - - #include - -[heading Example] - - result_of::make_cons::type>::type - -[endsect] - -[section make_vector] - -[heading Description] - -Returns the result type of __make_vector__. - -[heading Synopsis] - - template - 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` before including any Fusion header to change the -default. Example: - - #define FUSION_MAX_VECTOR_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`T0, T1,... TN`] [Any type] [Template arguments to `make_vector`]] -] - -[heading Expression Semantics] - - result_of::make_vector::type - -[*Return type]: A __vector__ with elements of types converted following the -rules for __element_conversion__. - -[*Semantics]: Create a __vector__ from `T0, T1,... TN`. - -[heading Header] - - #include - -[heading Example] - - result_of::make_vector::type - -[endsect] - -[section make_set] - -[heading Description] - -Returns the result type of __make_set__. - -[heading Synopsis] - - template - struct make_set; - -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`set` is implemented in terms of the vector. That is why we reuse -`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 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`T0, T1,... TN`] [Any type] [The arguments to `make_set`]] -] - -[heading Expression Semantics] - - result_of::make_set::type - -[*Return type]: A __set__ with elements of types converted following the -rules for __element_conversion__. - -[*Semantics]: Create a __set__ from `T0, T1,... TN`. - -[*Precondition]: There may be no duplicate key types. - -[heading Header] - - #include - -[heading Example] - - result_of::make_set::type - -[endsect] - -[section make_map] - -[heading Description] - -Returns the result type of __make_map__. - -[heading Synopsis] - - template < - typename K0, typename K1,... typename KN - , typename T0, typename T1,... typename TN> - struct make_map; - -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`map` is implemented in terms of the vector. That is why we reuse -`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 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`K0, K1,... KN`] [Any type] [Keys associated with `T0, T1,... TN`]] - [[`T0, T1,... TN`] [Any type] [Data associated with keys `K0, K1,... KN`]] -] - -[heading Expression Semantics] - - resulf_of::make_map::type; - -[*Return type]: __result_of_make_map__`::type` - -[*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 key types. - -[heading Header] - - #include - -[heading Example] - - result_of::make_map::type - -[heading See also] - -__fusion_pair__ - -[endsect] - -[section list_tie] - -[heading Description] - -Returns the result type of __list_tie__. - -[heading Synopsis] - - template - 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` -before including any Fusion header to change the default. Example: - - #define FUSION_MAX_LIST_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`T0, T1,... TN`] [Any type] [The arguments to `list_tie`]] -] - -[heading Expression Semantics] - - result_of::list_tie::type; - -[*Return type]: __list__ - -[*Semantics]: Create a __list__ of references from `T0, T1,... TN`. - -[heading Header] - - #include - -[heading Example] - - result_of::list_tie::type - -[endsect] - -[section vector_tie] - -[heading Description] - -Returns the result type of __vector_tie__. - -[heading Synopsis] - - template - 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` before including any Fusion header to change the -default. Example: - - #define FUSION_MAX_VECTOR_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`T0, T1,... TN`] [Any type] [The arguments to `vector_tie`]] -] - -[heading Expression Semantics] - - result_of::vector_tie::type; - -[*Return type]: __vector__ - -[*Semantics]: Create a __vector__ of references from `T0, T1,... TN`. - -[heading Header] - - #include - -[heading Example] - - result_of::vector_tie::type - -[endsect] - -[section map_tie] - -[heading Description] - -Returns the result type of __map_tie__. - -[heading Synopsis] - - template - struct map_tie; - -The variadic function accepts `0` to `FUSION_MAX_MAP_SIZE` elements, -where `FUSION_MAX_MAP_SIZE` is a user definable predefined maximum that -defaults to `10`. You may define the preprocessor constant -`FUSION_MAX_MAP_SIZE` before including any Fusion header to change the -default. Example: - - #define FUSION_MAX_MAP_SIZE 20 - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`K0, K1,... KN`] [Any type] [The key types for `map_tie`]] - [[`D0, D1,... DN`] [Any type] [The arguments types for `map_tie`]] -] - -[heading Expression Semantics] - - result_of::map_tie::type; - -[*Return type]: __map__<__pair__, __pair__,... __pair__ > - -[*Semantics]: Create a __map__ of references from `D0, D1,... DN` with keys `K0, K1,... KN` - -[heading Header] - - #include - -[heading Example] - - struct int_key; - struct double_key; - ... - result_of::map_tie::type - -[endsect] - -[endsect] - -[endsect] - -[section Conversion] - -All fusion sequences can be converted to one of the __containers__ types -using one of these conversion functions. - -[heading Header] - - #include - -[section Functions] - -[section as_list] - -[heading Description] - -Convert a fusion sequence to a __list__. - -[heading Synopsis] - - template - typename result_of::as_list::type - as_list(Sequence& seq); - - template - typename result_of::as_list::type - as_list(Sequence const& seq); - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`seq`] [An instance of Sequence] [The sequence to convert.]] -] - -[heading Expression Semantics] - - as_list(seq); - -[*Return type]: __result_of_as_list__`::type` - -[*Semantics]: Convert a fusion sequence, `seq`, to a __list__. - -[heading Header] - - #include - -[heading Example] - - as_list(__make_vector__('x', 123, "hello")) - -[endsect] - -[section as_vector] - -[heading Description] - -Convert a fusion sequence to a __vector__. - -[heading Synopsis] - - template - typename result_of::as_vector::type - as_vector(Sequence& seq); - - template - typename result_of::as_vector::type - as_vector(Sequence const& seq); - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`seq`] [An instance of Sequence] [The sequence to convert.]] -] - -[heading Expression Semantics] - - as_vector(seq); - -[*Return type]: __result_of_as_vector__`::type` - -[*Semantics]: Convert a fusion sequence, `seq`, to a __vector__. - -[heading Header] - - #include - -[heading Example] - - as_vector(__make_list__('x', 123, "hello")) - -[endsect] - -[section as_set] - -[heading Description] - -Convert a fusion sequence to a __set__. - -[heading Synopsis] - - template - typename result_of::as_set::type - as_set(Sequence& seq); - - template - typename result_of::as_set::type - as_set(Sequence const& seq); - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`seq`] [An instance of Sequence] [The sequence to convert.]] -] - -[heading Expression Semantics] - - as_set(seq); - -[*Return type]: __result_of_as_set__`::type` - -[*Semantics]: Convert a fusion sequence, `seq`, to a __set__. - -[*Precondition]: There may be no duplicate key types. - -[heading Header] - - #include - -[heading Example] - - as_set(__make_vector__('x', 123, "hello")) - -[endsect] - -[section as_map] - -[heading Description] - -Convert a fusion sequence to a __map__. - -[heading Synopsis] - - template - typename result_of::as_map::type - as_map(Sequence& seq); - - template - typename result_of::as_map::type - as_map(Sequence const& seq); - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`seq`] [An instance of Sequence] [The sequence to convert.]] -] - -[heading Expression Semantics] - - as_map(seq); - -[*Return type]: __result_of_as_map__`::type` - -[*Semantics]: Convert a fusion sequence, `seq`, to a __map__. - -[*Precondition]: The elements of the sequence are assumed to be -__fusion_pair__s. There may be no duplicate __fusion_pair__ key types. - -[heading Header] - - #include - -[heading Example] - - as_map(__make_vector__( - __fusion_make_pair__('X') - , __fusion_make_pair__("Men"))) - -[endsect] - -[endsect] - -[section Metafunctions] - -[section as_list] - -[heading Description] - -Returns the result type of __as_list__. - -[heading Synopsis] - - template - struct as_list; - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`Sequence`] [A fusion __sequence__] [The sequence type to convert.]] -] - -[heading Expression Semantics] - - result_of::as_list::type; - -[*Return type]: A __list__ with same elements as the input sequence, -`Sequence`. - -[*Semantics]: Convert a fusion sequence, `Sequence`, to a __list__. - -[heading Header] - - #include - -[heading Example] - - result_of::as_list<__vector__ >::type - -[endsect] - -[section as_vector] - -[heading Description] - -Returns the result type of __as_vector__. - -[heading Synopsis] - - template - struct as_vector; - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] -] - -[heading Expression Semantics] - - result_of::as_vector::type; - -[*Return type]: A __vector__ with same elements as the input sequence, -`Sequence`. - -[*Semantics]: Convert a fusion sequence, `Sequence`, to a __vector__. - -[heading Header] - - #include - -[heading Example] - - result_of::as_vector<__list__ >::type - -[endsect] - -[section as_set] - -[heading Description] - -Returns the result type of __as_set__. - -[heading Synopsis] - - template - struct as_set; - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] -] - -[heading Expression Semantics] - - result_of::as_set::type; - -[*Return type]: A __set__ with same elements as the input sequence, -`Sequence`. - -[*Semantics]: Convert a fusion sequence, `Sequence`, to a __set__. - -[*Precondition]: There may be no duplicate key types. - -[heading Header] - - #include - -[heading Example] - - result_of::as_set<__vector__ >::type - -[endsect] - -[section as_map] - -[heading Description] - -Returns the result type of __as_map__. - -[heading Synopsis] - - template - struct as_map; - -[heading Parameters] - -[table - [[Parameter] [Requirement] [Description]] - [[`Sequence`] [A fusion __sequence__] [The sequence to convert.]] -] - -[heading Expression Semantics] - - result_of::as_map::type; - -[*Return type]: A __map__ with same elements as the input sequence, -`Sequence`. - -[*Semantics]: Convert a fusion sequence, `Sequence`, to a __map__. - -[*Precondition]: The elements of the sequence are assumed to be -__fusion_pair__s. There may be no duplicate __fusion_pair__ key types. - -[heading Header] - - #include - -[heading Example] - - result_of::as_map<__vector__< - __fusion_pair__ - , __fusion_pair__ > >::type - -[endsect] - -[endsect] - -[endsect] - [section Operator] These operators, like the __algorithms__, work generically on all Fusion @@ -2572,6 +1415,7 @@ representation may not be unambiguously parseable. [heading Header] #include + #include [section in] @@ -2604,6 +1448,7 @@ Read a __sequence__ from an input stream. [heading Header] #include + #include [heading Example] @@ -2643,6 +1488,7 @@ Write a __sequence__ to an output stream. [heading Header] #include + #include [heading Example] @@ -2662,6 +1508,7 @@ performed only until the result is clear. [heading Header] #include + #include [section equal] @@ -2706,6 +1553,7 @@ e and f, e == f returns true. [heading Header] #include + #include [heading Example] @@ -2754,6 +1602,7 @@ Returns !(a == b). [heading Header] #include + #include [heading Example] @@ -2802,6 +1651,7 @@ compile time error. [heading Header] #include + #include [heading Example] @@ -2850,6 +1700,7 @@ compile time error. [heading Header] #include + #include [heading Example] @@ -2898,6 +1749,7 @@ compile time error. [heading Header] #include + #include [heading Example] @@ -2946,6 +1798,7 @@ compile time error. [heading Header] #include + #include [heading Example] diff --git a/doc/support.qbk b/doc/support.qbk index 0efd05b2..4abfdbbb 100644 --- a/doc/support.qbk +++ b/doc/support.qbk @@ -40,6 +40,7 @@ specialized to accomodate clients which provide Fusion conforming sequences. [heading Header] #include + #include [heading Example] @@ -93,6 +94,7 @@ may be specialized to accomodate clients providing Fusion conforming views. [heading Header] #include + #include [heading Example] @@ -147,6 +149,7 @@ conforming sequences. [heading Header] #include + #include [heading Example] @@ -243,6 +246,7 @@ __sequence__ or __iterator__. [heading Header] #include + #include [heading Example] @@ -266,6 +270,7 @@ __note_boost_ref__). [heading Header] #include + #include [heading Synopsis] namespace traits @@ -309,6 +314,7 @@ constructor accepting the original type as its argument. [heading Header] #include + #include [heading Synopsis] namespace traits @@ -413,6 +419,7 @@ It is used as elements in __map__s, for example. [heading Header] #include + #include [heading Example] diff --git a/doc/view.qbk b/doc/view.qbk index 9c90872f..cea9c707 100644 --- a/doc/view.qbk +++ b/doc/view.qbk @@ -11,6 +11,7 @@ lazy nature make them very cheap to copy and be passed around by value. [heading Header] #include + #include [section single_view] @@ -19,6 +20,7 @@ lazy nature make them very cheap to copy and be passed around by value. [heading Header] #include + #include [heading Synopsis] @@ -73,6 +75,7 @@ presents only those elements for which its predicate evaluates to [heading Header] #include + #include [heading Synopsis] @@ -134,6 +137,7 @@ by a pair of iterators. [heading Header] #include + #include [heading Synopsis] @@ -201,6 +205,7 @@ defined in __forward_sequence__. [heading Header] #include + #include [heading Synopsis] @@ -260,6 +265,7 @@ is constructed from a __sequence__ of references to the component __sequence__s. [heading Header] #include + #include [heading Synopsis] @@ -319,6 +325,7 @@ its underlying sequence or sequences. [heading Header] #include + #include [heading Synopsis] @@ -413,6 +420,7 @@ element will be its last and the last element will be its first. [heading Header] #include + #include [heading Synopsis]