diff --git a/doc/functional.qbk b/doc/functional.qbk index 6b83c554..120ae0d2 100644 --- a/doc/functional.qbk +++ b/doc/functional.qbk @@ -10,7 +10,9 @@ Components to call functions and function objects and to make Fusion code callable through a function object interface. -/functional.hpp> +[heading Header] + + #include [heading Fused and unfused forms] @@ -55,6 +57,8 @@ 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. +Constructors can be called applying __boost_func_factory__. + [heading Making Fusion code callable through a function object interface] Transforming a fused function into its unfused counterpart allows to create @@ -62,11 +66,12 @@ 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. +The library provides both a strictly typed and a generic variant for this +transformation. The latter should be used in combination with +__boost_func_forward__ to attack __the_forwarding_problem__. + +Both variants have a corresponding generator function template that returns an +adapter instance for the given argument. [/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ] @@ -257,6 +262,8 @@ 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_call__). +Constructors can be called applying __boost_func_factory__. + [heading Synopsis] template< typename Function, @@ -289,7 +296,9 @@ arguments. [*Semantics]: Invokes `f` with the elements in `s` as arguments and returns the result of the call expression. -/functional/invocation/invoke.hpp> +[heading Header] + + #include [heading Example] __std_plus_doc__ add; @@ -300,6 +309,7 @@ the result of the call expression. * __invoke_function_object__ * __result_of_invoke__ * __fused__ +* __make_fused__ [endsect] @@ -352,7 +362,9 @@ implemented). [*Semantics]: Invokes `f` with the elements in `s` as arguments. -/functional/invocation/invoke_procedure.hpp> +[heading Header] + + #include [heading Example] __vector__ v(1,2); @@ -365,6 +377,7 @@ implemented). * __invoke_function_object__ * __result_of_invoke_procedure__ * __fused_procedure__ +* __make_fused_procedure__ [endsect] @@ -377,6 +390,8 @@ Calls a __poly_func_obj__ 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. +Constructors can be called applying __boost_func_factory__. + [heading Synopsis] template< typename Function, @@ -409,7 +424,9 @@ arguments. [*Semantics]: Invokes `f` with the elements in `s` as arguments and returns the result of the call expression. -/functional/invocation/invoke_function_object.hpp> +[heading Header] + + #include [heading Example] struct sub @@ -439,6 +456,7 @@ result of the call expression. * __invoke_procedure__ * __result_of_invoke_function_object__ * __fused_function_object__ +* __make_fused_function_object__ [endsect] @@ -520,6 +538,23 @@ Returns the result type of __invoke_function_object__. [endsect] [/ Metafunctions ] +[section Limits] + +[heading Header] + + #include + +[heading Macros] + +The following macros can be defined to change the maximum arity. +The default is 6. + +* BOOST_FUSION_INVOKE_MAX_ARITY +* BOOST_FUSION_INVOKE_PROCEDURE_MAX_ARITY +* BOOST_FUSION_INVOKE_FUNCTION_OBJECT_MAX_ARITY + +[endsect] + [endsect] [/ Invocation ] [/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ] @@ -551,7 +586,9 @@ 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_call__). -/functional/adapter/fused.hpp> +[heading Header] + + #include [heading Synopsis] template @@ -594,6 +631,7 @@ __boost_shared_ptr_call__). * __fused_procedure__ * __fused_function_object__ * __invoke__ +* __make_fused__ * __deduce__ [endsect] @@ -627,7 +665,9 @@ 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). -/functional/adapter/fused_procedure.hpp> +[heading Header] + + #include [heading Synopsis] template @@ -683,6 +723,7 @@ is not implemented). * __fused__ * __fused_function_object__ * __invoke_procedure__ +* __make_fused_procedure__ [endsect] @@ -700,7 +741,9 @@ reference. Const qualification is preserved and propagated appropriately target function object that is const or, if the target function object is held by value, the adapter is const). -/functional/adapter/fused_function_object.hpp> +[heading Header] + + #include [heading Synopsis] template @@ -773,150 +816,50 @@ is held by value, the adapter is const). * __fused__ * __fused_procedure__ * __invoke_function_object__ +* __make_fused_function_object__ * __deduce__ [endsect] -[section unfused_generic] - -[heading Description] - -An n-ary __poly_func_obj__ adapter template for an unary __poly_func_obj__ -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. - -[blurb __tip__ Detecting mutable LValues on a per-argument basis is currently a -compile time expensive operation (see __the_forwarding_problem__ for -details). Therefore, there are two, lightweight and more restricted variants -of this class template, __unfused_lvalue_args__ and __unfused_rvalue_args__.] - -The 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). - -/functional/adapter/unfused_generic.hpp> - -[heading Synopsis] - template - class unfused_generic; - -[heading Template parameters] - -[table - [[Parameter] [Description] [Default]] - [[`Function`] [An unary __poly_func_obj__] []] -] - -[heading Model of] - -* __poly_func_obj__ -* __def_callable_obj__ - -[variablelist Notation - [[`F`] [A possibly const qualified, unary __poly_func_obj__ type or reference type thereof]] - [[`f`] [An object convertible to `F`]] - [[`UG`] [The type `unfused_generic`]] - [[`ug`] [An instance of `UG`, initialized with `f`]] - [[`a0`...`aN`] [Arguments to `ug`]] -] - -[heading Expression Semantics] - -[table - [[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`.]] -] - -[heading Example] - template - class fused_bound_1st - { - typename traits::deduce::type fnc_deferred; - typename traits::deduce::type xxx_bound; - public: - - fused_bound_1st(Function deferred, T bound) - : fnc_deferred(deferred), xxx_bound(bound) - { } - - template - struct result; - - template - struct result< Self(Seq) > - : result_of::invoke< Function, typename result_of::push_front< - typename remove_reference::type, T>::type > - { }; - - template - typename result< void(Seq) >::type operator()(Seq const & s) const - { - return invoke(fnc_deferred, push_front(s,xxx_bound)); - } - }; - - template - unfused_generic< fused_bound_1st > - bind_1st(Function f, T const & x) - { - return unfused_generic< fused_bound_1st >( - fused_bound_1st(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(), 1)(0.5f) == 1.5f); - } - -[heading See also] -* __unfused_lvalue_args__ -* __unfused_rvalue_args__ -* __unfused_typed__ -* __deduce__ -* __deduce_sequence__ - -[endsect] - - -[section unfused_lvalue_args] +[section unfused] [heading Description] An n-ary __poly_func_obj__ adapter template for an unary __poly_func_obj__ 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. +object. + +The nullary overload of the call operator can be removed by setting the +second template parameter to `false`, which is very useful if the result type +computation would result in a compile error, otherwise (nullary call +operator's prototypes can't be templates and thus are instantiated as early +as the class template). + +Only __lvalue__ arguments are accepted. To overcome this limitation, apply +__boost_func_forward__. 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 +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). +object is held by value, the adapter is const. -/functional/adapter/unfused_lvalue_args.hpp> +[heading Header] + + #include [heading Synopsis] - template - class unfused_lvalue_args; + template + class unfused; [heading Template parameters] [table [[Parameter] [Description] [Default]] [[`Function`] [A unary __poly_func_obj__] []] + [[`AllowNullary`] [Boolean constant] [true]] ] [heading Model of] @@ -927,7 +870,7 @@ object is held by value, the adapter is const). [variablelist Notation [[`F`] [A possibly const qualified, unary __poly_func_obj__ type or reference type thereof]] [[`f`] [An object convertible to `F`]] - [[`UL`] [The type `unfused_lvalue_args`]] + [[`UL`] [The type `unfused`]] [[`ul`] [An instance of `UL`, initialized with `f`]] [[`a0`...`aN`] [Arguments to `ul`]] ] @@ -959,97 +902,15 @@ object is held by value, the adapter is const). void try_it() { - unfused_lvalue_args increment; + unfused increment; int a = 2; char b = 'X'; increment(a,b); assert(a == 3 && b == 'Y'); } [heading See also] -* __unfused_rvalue_args__ -* __unfused_generic__ * __unfused_typed__ - -[endsect] - -[section unfused_rvalue_args] - -[heading Description] - -An n-ary __poly_func_obj__ adapter template for an unary __poly_func_obj__ -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). - -/functional/adapter/unfused_rvalue_args.hpp> - -[heading Synopsis] - template - class unfused_rvalue_args; - -[heading Template parameters] - -[table - [[Parameter] [Description] [Default]] - [[`Function`] [A unary __poly_func_obj__] []] -] - -[heading Model of] - -* __poly_func_obj__ -* __def_callable_obj__ - -[variablelist Notation - [[`F`] [A possibly const qualified, unary __poly_func_obj__ type or reference type thereof]] - [[`f`] [An object convertible to `F`]] - [[`UR`] [The type `unfused_rvalue_args`]] - [[`ur`] [An instance of `UR`, initialized with `f`]] - [[`a0`...`aN`] [Arguments to `ur`]] -] - -[heading Expression Semantics] - -[table - [[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`.]] -] - -[heading Example] - struct sequence_printer - { - template - struct result - { - typedef void type; - }; - - template - void operator()(Seq const & s) const - { - std::cout << s << std::endl; - } - }; - - void try_it() - { - unfused_rvalue_args print; - print(24,"bottles of beer in",'a',"box."); - } - -[heading See also] -* __unfused_lvalue_args__ -* __unfused_generic__ -* __unfused_typed__ -* __deduce__ -* __deduce_sequence__ +* __make_unfused__ [endsect] @@ -1078,7 +939,9 @@ Therefore the adapter is always treated as if it was const. ] non-reference elements, the element is copied only once - the call operator's signature is optimized automatically to avoid by-value parameters.] -/functional/adapter/unfused_typed.hpp> +[heading Header] + + #include [heading Synopsis] template @@ -1169,7 +1032,7 @@ signature is optimized automatically to avoid by-value parameters.] fused_parallel_adder(tie) ); } }; - unfused_lvalue_args parallel_add; + unfused parallel_add; void try_it() { @@ -1183,14 +1046,29 @@ signature is optimized automatically to avoid by-value parameters.] } [heading See also] -* __unfused_generic__ -* __unfused_lvalue_args__ -* __unfused_rvalue_args__ +* __unfused__ * __deduce__ * __deduce_sequence__ [endsect] +[section Limits] + +[heading Header] + + #include + +[heading Macros] + +The following macros can be defined to change the maximum arity. +The value used for these macros must not exceed `FUSION_MAX_VECTOR_SIZE`. +The default is 6. + +* BOOST_FUSION_UNFUSED_MAX_ARITY +* BOOST_FUSION_UNFUSED_TYPE_MAX_ARITY + +[endsect] + [endsect] [/ Adapters] [/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ] @@ -1353,16 +1231,16 @@ The usual __element_conversion__ is applied to the target function. [endsect] -[section:mk_unfused_genrc make_unfused_generic] +[section:mk_unfused make_unfused] [heading Description] -Creates a __unfused_generic__ adapter for a given, unary __poly_func_obj__. +Creates a __unfused__ adapter for a given, unary __poly_func_obj__. The usual __element_conversion__ is applied to the target function. [heading Synopsis] template - inline typename __result_of_make_unfused_generic__::type - make_unfused_generic(F const & f); + inline typename __result_of_make_unfused__::type + make_unfused(F const & f); [heading Parameters] [table @@ -1372,85 +1250,16 @@ The usual __element_conversion__ is applied to the target function. [heading Expression Semantics] - make_unfused_generic(f); + make_unfused(f); -[*Return type]: A specialization of __unfused_generic__. +[*Return type]: A specialization of __unfused__. -[*Semantics]: Returns a __unfused_generic__ adapter for `f`. +[*Semantics]: Returns a __unfused__ adapter for `f`. [heading Header] - #include - #include - -[heading Example] - struct bottles_song - { - typedef void result_type; - - template - void operator()(Seq & s) const - { - typename result_of::at_c::type n = at_c<0>(s); - typename result_of::at_c::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 - } - -[heading See also] -* __unfused_generic__ -* __deduce__ -* __result_of_make_unfused_generic__ - -[endsect] - -[section:mk_unfused_lvargs make_unfused_lvalue_args] - -[heading Description] -Creates a __unfused_lvalue_args__ adapter for a given, unary __poly_func_obj__. -The usual __element_conversion__ is applied to the target function. - -[heading Synopsis] - template - inline typename __result_of_make_unfused_lvalue_args__::type - make_unfused_lvalue_args(F const & f); - -[heading Parameters] -[table - [[Parameter] [Requirement] [Description]] - [[`f`] [Model of __poly_func_obj__] [The function to transform.]] -] - -[heading Expression Semantics] - - make_unfused_lvalue_args(f); - -[*Return type]: A specialization of __unfused_lvalue_args__. - -[*Semantics]: Returns a __unfused_lvalue_args__ adapter for `f`. - -[heading Header] - - #include - #include + #include + #include [heading Example] struct fused_incrementer @@ -1471,73 +1280,14 @@ The usual __element_conversion__ is applied to the target function. void try_it() { int a = 2; char b = 'X'; - make_unfused_lvalue_args(fused_incrementer())(a,b); + make_unfused(fused_incrementer())(a,b); assert(a == 3 && b == 'Y'); } [heading See also] -* __unfused_lvalue_args__ +* __unfused__ * __deduce__ -* __result_of_make_unfused_lvalue_args__ - -[endsect] - -[section:mk_unfused_rvargs make_unfused_rvalue_args] - -[heading Description] -Creates a __unfused_rvalue_args__ adapter for a given, unary __poly_func_obj__. -The usual __element_conversion__ is applied to the target function. - -[heading Synopsis] - template - inline typename __result_of_make_unfused_rvalue_args__::type - make_unfused_rvalue_args(F const & f); - -[heading Parameters] -[table - [[Parameter] [Requirement] [Description]] - [[`f`] [Model of __poly_func_obj__] [The function to transform.]] -] - -[heading Expression Semantics] - - make_unfused_rvalue_args(f); - -[*Return type]: A specialization of __unfused_rvalue_args__. - -[*Semantics]: Returns a __unfused_rvalue_args__ adapter for `f`. - -[heading Header] - - #include - #include - -[heading Example] - struct sequence_printer - { - template - struct result - { - typedef void type; - }; - - template - 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."); - } - -[heading See also] -* __unfused_rvalue_args__ -* __deduce__ -* __result_of_make_unfused_rvalue_args__ +* __result_of_make_unfused__ [endsect] @@ -1620,78 +1370,28 @@ Returns the result type of __make_fused_function_object__. [endsect] -[section:mk_unfused_genrc make_unfused_generic] +[section:mk_unfused make_unfused] [heading Description] -Returns the result type of __make_unfused_generic__. +Returns the result type of __make_unfused__. [heading Header] - #include - #include + #include + #include [heading Synopsis] namespace result_of { template - struct make_unfused_generic + struct make_unfused { typedef __unspecified__ type; }; } [heading See also] -* __make_unfused_generic__ - -[endsect] - -[section:mk_unfused_lvargs make_unfused_lvalue_args] - -[heading Description] -Returns the result type of __make_unfused_lvalue_args__. - -[heading Header] - - #include - #include - -[heading Synopsis] - namespace result_of - { - template - struct make_unfused_lvalue_args - { - typedef __unspecified__ type; - }; - } - -[heading See also] -* __make_unfused_lvalue_args__ - -[endsect] - -[section:mk_unfused_rvargs make_unfused_rvalue_args] - -[heading Description] -Returns the result type of __make_unfused_rvalue_args__. - -[heading Header] - - #include - #include - -[heading Synopsis] - namespace result_of - { - template - struct make_unfused_rvalue_args - { - typedef __unspecified__ type; - }; - } - -[heading See also] -* __make_unfused_rvalue_args__ +* __make_unfused__ [endsect] diff --git a/doc/fusion.qbk b/doc/fusion.qbk index 69dd235e..f48ff84a 100644 --- a/doc/fusion.qbk +++ b/doc/fusion.qbk @@ -49,6 +49,8 @@ [def __boost_result_of_call__ [@http://www.boost.org/libs/utility/utility.htm#result_of `boost::result_of`]] [def __boost_enable_if__ [@http://www.boost.org/libs/utility/enable_if.html Boost.EnableIf utility]] [def __boost_shared_ptr_call__ [@http://www.boost.org/libs/smart_ptr/shared_ptr.htm `boost::shared_ptr`]] +[def __boost_func_forward__ [@http://www.boost.org/libs/functional/forward/doc/html/index.html Boost.Functional/Forward]] +[def __boost_func_factory__ [@http://www.boost.org/libs/functional/factory/doc/html/index.html Boost.Functional/Factory]] [def __std_pair_doc__ [@http://www.sgi.com/tech/stl/pair.html `std::pair`]] [def __std_plus_doc__ [@http://www.sgi.com/tech/stl/plus.html `std::plus`]] [def __std_minus_doc__ [@http://www.sgi.com/tech/stl/minus.html `std::minus`]] @@ -264,9 +266,7 @@ [def __fused__ [link fusion.functional.adapters.fused `fused`]] [def __fused_procedure__ [link fusion.functional.adapters.fused_procedure `fused_procedure`]] [def __fused_function_object__ [link fusion.functional.adapters.fused_function_object `fused_function_object`]] -[def __unfused_generic__ [link fusion.functional.adapters.unfused_generic `unfused_generic`]] -[def __unfused_lvalue_args__ [link fusion.functional.adapters.unfused_lvalue_args `unfused_lvalue_args`]] -[def __unfused_rvalue_args__ [link fusion.functional.adapters.unfused_rvalue_args `unfused_rvalue_args`]] +[def __unfused__ [link fusion.functional.adapters.unfused `unfused`]] [def __unfused_typed__ [link fusion.functional.adapters.unfused_typed `unfused_typed`]] [def __invoke__ [link fusion.functional.invocation.functions.invoke `invoke`]] [def __invoke_procedure__ [link fusion.functional.invocation.functions.invoke_proc `invoke_procedure`]] @@ -274,18 +274,14 @@ [def __make_fused__ [link fusion.functional.generation.functions.mk_fused `make_fused`]] [def __make_fused_procedure__ [link fusion.functional.generation.functions.mk_fused_proc `make_fused_procedure`]] [def __make_fused_function_object__ [link fusion.functional.generation.functions.mk_fused_fobj `make_fused_function_object`]] -[def __make_unfused_generic__ [link fusion.functional.generation.functions.mk_unfused_genrc `make_unfused_generic`]] -[def __make_unfused_rvalue_args__ [link fusion.functional.generation.functions.mk_unfused_rvargs `make_unfused_rvalue_args`]] -[def __make_unfused_lvalue_args__ [link fusion.functional.generation.functions.mk_unfused_lvargs `make_unfused_lvalue_args`]] +[def __make_unfused__ [link fusion.functional.generation.functions.mk_unfused `make_unfused`]] [def __result_of_invoke__ [link fusion.functional.invocation.metafunctions.invoke `result_of::invoke`]] [def __result_of_invoke_procedure__ [link fusion.functional.invocation.metafunctions.invoke_proc `result_of::invoke_procedure`]] [def __result_of_invoke_function_object__ [link fusion.functional.invocation.metafunctions.invoke_fobj `result_of::invoke_function_object`]] [def __result_of_make_fused__ [link fusion.functional.generation.metafunctions.mk_fused `make_fused`]] [def __result_of_make_fused_procedure__ [link fusion.functional.generation.metafunctions.mk_fused_proc `make_fused_procedure`]] [def __result_of_make_fused_function_object__ [link fusion.functional.generation.metafunctions.mk_fused_fobj `make_fused_function_object`]] -[def __result_of_make_unfused_generic__ [link fusion.functional.generation.metafunctions.mk_unfused_genrc `make_unfused_generic`]] -[def __result_of_make_unfused_rvalue_args__ [link fusion.functional.generation.metafunctions.mk_unfused_rvargs `make_unfused_rvalue_args`]] -[def __result_of_make_unfused_lvalue_args__ [link fusion.functional.generation.metafunctions.mk_unfused_lvargs `make_unfused_lvalue_args`]] +[def __result_of_make_unfused__ [link fusion.functional.generation.metafunctions.mk_unfused `make_unfused`]] [def __recursive_inline__ [link fusion.notes.recursive_inlined_functions Recursive Inlined Functions]] [def __overloaded_functions__ [link fusion.notes.overloaded_functions Overloaded Functions]] diff --git a/doc/html/fusion/acknowledgements.html b/doc/html/fusion/acknowledgements.html index 803937aa..f3349841 100644 --- a/doc/html/fusion/acknowledgements.html +++ b/doc/html/fusion/acknowledgements.html @@ -3,7 +3,7 @@ Acknowledgements - + diff --git a/doc/html/fusion/adapted.html b/doc/html/fusion/adapted.html index 8a1358ae..6e2d299b 100644 --- a/doc/html/fusion/adapted.html +++ b/doc/html/fusion/adapted.html @@ -3,7 +3,7 @@ Adapted - + @@ -34,9 +34,9 @@
BOOST_FUSION_ADAPT_ASSOC_STRUCT

- Fusion provides a couple of adapters for other sequences such as std::pair, + Fusion provides a couple of adapters for other sequences such as std::pair, MPL sequences, - and boost::array. These adapters are written using Fusion's + 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. @@ -46,11 +46,10 @@ various data structures, non-intrusively, as full fledged Fusion sequences.

- + Header

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

@@ -60,15 +59,13 @@ and Fusion. To make Fusion sequences fully conforming MPL sequences, include:

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

If you want bi-directional adaptation to and from MPL and Fusion, simply include:

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

The header includes all the necessary headers. diff --git a/doc/html/fusion/adapted/adapt_assoc.html b/doc/html/fusion/adapted/adapt_assoc.html index 2232d58c..39c2d608 100644 --- a/doc/html/fusion/adapted/adapt_assoc.html +++ b/doc/html/fusion/adapted/adapt_assoc.html @@ -3,7 +3,7 @@ BOOST_FUSION_ADAPT_ASSOC_STRUCT - + @@ -26,7 +26,7 @@

- + Description

@@ -38,11 +38,10 @@ Sequence.

- + Synopsis

-
-BOOST_FUSION_ADAPT_ASSOC_STRUCT(
+
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
     struct_name
     (member_type0, member_name0, key_type0)
     (member_type1, member_name1, key_type1)
@@ -50,39 +49,37 @@
     )
 

- + Semantics

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

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

- + Header

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

- + Example

-
-namespace demo
+
namespace demo
 {
     struct employee
     {
diff --git a/doc/html/fusion/adapted/adapt_struct.html b/doc/html/fusion/adapted/adapt_struct.html
index 49146958..fffe4ea9 100644
--- a/doc/html/fusion/adapted/adapt_struct.html
+++ b/doc/html/fusion/adapted/adapt_struct.html
@@ -3,7 +3,7 @@
 
  BOOST_FUSION_ADAPT_STRUCT
 
-
+
 
 
 
@@ -26,7 +26,7 @@
 
 

- + Description

@@ -36,11 +36,10 @@ Access Sequence.

- + Synopsis

-
-BOOST_FUSION_ADAPT_STRUCT(
+
BOOST_FUSION_ADAPT_STRUCT(
     struct_name
     (member_type0, member_name0)
     (member_type1, member_name1)
@@ -48,36 +47,34 @@
     )
 

- + Semantics

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

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

- + Header

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

- + Example

-
-namespace demo
+
namespace demo
 {
     struct employee
     {
diff --git a/doc/html/fusion/adapted/boost__array.html b/doc/html/fusion/adapted/boost__array.html
index aa011b30..b7986a9c 100644
--- a/doc/html/fusion/adapted/boost__array.html
+++ b/doc/html/fusion/adapted/boost__array.html
@@ -3,7 +3,7 @@
 
 boost::array
 
-
+
 
 
 
@@ -26,42 +26,40 @@
 
 

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

- + Header

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

- + Model of

- + Example

-
-boost::array<int,3> arr = {{1,2,3}};
+
boost::array<int,3> arr = {{1,2,3}};
 
-std::cout << *begin(arr) << std::endl;
-std::cout << *next(begin(arr)) << std::endl;
-std::cout << *advance_c<2>(begin(arr)) << std::endl;
-std::cout << *prior(end(arr)) << std::endl;
-std::cout << at_c<2>(arr) << std::endl;
+std::cout << *begin(arr) << std::endl;
+std::cout << *next(begin(arr)) << std::endl;
+std::cout << *advance_c<2>(begin(arr)) << std::endl;
+std::cout << *prior(end(arr)) << std::endl;
+std::cout << at_c<2>(arr) << std::endl;
 

- + See also

diff --git a/doc/html/fusion/adapted/boost__tuple.html b/doc/html/fusion/adapted/boost__tuple.html index 394ece3e..b17d1f50 100644 --- a/doc/html/fusion/adapted/boost__tuple.html +++ b/doc/html/fusion/adapted/boost__tuple.html @@ -3,7 +3,7 @@ boost::tuple - + @@ -26,37 +26,35 @@

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

- + Header

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

- + Model of

- + Example

-
-boost::tuple<int,std::string> example_tuple(101, "hello");
+
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

diff --git a/doc/html/fusion/adapted/mpl_sequence.html b/doc/html/fusion/adapted/mpl_sequence.html index 6932d063..c08320db 100644 --- a/doc/html/fusion/adapted/mpl_sequence.html +++ b/doc/html/fusion/adapted/mpl_sequence.html @@ -3,7 +3,7 @@ mpl sequence - + @@ -31,15 +31,14 @@ sequences fully conforming fusion sequences.

- + Header

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

- + Model of

    @@ -63,21 +62,20 @@

- + Example

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

- + See also

diff --git a/doc/html/fusion/adapted/std__pair.html b/doc/html/fusion/adapted/std__pair.html index 53e5cbd6..55d17194 100644 --- a/doc/html/fusion/adapted/std__pair.html +++ b/doc/html/fusion/adapted/std__pair.html @@ -3,7 +3,7 @@ std::pair - + @@ -26,45 +26,43 @@

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

- + Header

-
-#include <boost/fusion/adapted/std_pair.hpp>
+
#include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/include/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::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 + std::pair, + TR1 + and std::pair

diff --git a/doc/html/fusion/algorithm.html b/doc/html/fusion/algorithm.html index cf44e1d8..26941ee9 100644 --- a/doc/html/fusion/algorithm.html +++ b/doc/html/fusion/algorithm.html @@ -3,7 +3,7 @@ Algorithm - + @@ -43,7 +43,7 @@

- + Lazy Evaluation

@@ -57,43 +57,42 @@ fusion algorithms are functional in nature such that algorithms are non mutating (no side effects). However, due to the high cost of returning full sequences such as vectors and lists, Views are returned from Fusion - algorithms instead. For example, the transform algorithm does not actually - return a transformed version of the original sequence. transform returns a transform_view. This view holds a + algorithms instead. For example, the transform algorithm does not actually + return a transformed version of the original sequence. transform returns a transform_view. This view holds a reference to the original sequence plus the transform function. Iteration over - the transform_view + the transform_view will apply the transform function over the sequence elements on demand. This lazy evaluation scheme allows us to chain as many algorithms as we want without incurring a high runtime penalty.

- + Sequence Extension

The lazy evaluation scheme where Algorithms return Views also allows operations such - as push_back to be totally generic. In - Fusion, push_back is actually a generic algorithm - that works on all sequences. Given an input sequence s - and a value x, Fusion's push_back algorithm simply returns - a joint_view: - a view that holds a reference to the original sequence s - and the value x. Functions + 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, + 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>
+
#include <boost/fusion/algorithm.hpp>
 #include <boost/fusion/include/algorithm.hpp>
 
diff --git a/doc/html/fusion/algorithm/iteration.html b/doc/html/fusion/algorithm/iteration.html index 5dc0a880..caf164c2 100644 --- a/doc/html/fusion/algorithm/iteration.html +++ b/doc/html/fusion/algorithm/iteration.html @@ -3,7 +3,7 @@ Iteration - + @@ -34,11 +34,10 @@ a sequence repeatedly applying an operation to its elements.

- + Header

-
-#include <boost/fusion/algorithm/iteration.hpp>
+
#include <boost/fusion/algorithm/iteration.hpp>
 #include <boost/fusion/include/iteration.hpp>
 
diff --git a/doc/html/fusion/algorithm/iteration/functions.html b/doc/html/fusion/algorithm/iteration/functions.html index 49c28323..2237feb3 100644 --- a/doc/html/fusion/algorithm/iteration/functions.html +++ b/doc/html/fusion/algorithm/iteration/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/algorithm/iteration/functions/accumulate.html b/doc/html/fusion/algorithm/iteration/functions/accumulate.html index afa5797f..a8d97d19 100644 --- a/doc/html/fusion/algorithm/iteration/functions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/functions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -26,31 +26,30 @@
- + Description

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

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

Table 1.34. Parameters

+

Table 1.34. Parameters

@@ -78,17 +77,17 @@

- seq + seq

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

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

- initial_state + initial_state

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

- f + f

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

@@ -137,41 +136,38 @@
- + Expression Semantics
-
-accumulate(seq, initial_state, f);
+
accumulate(seq, initial_state, f);
 

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
+
#include <boost/fusion/algorithm/iteration/accumulate.hpp>
 #include <boost/fusion/include/accumulate.hpp>
 
- + Example
-
-struct make_string
+
struct make_string
 {
     typedef std::string result_type;
 
@@ -182,8 +178,8 @@
     }
 };
 ...
-const vector<int,int> vec(1,2);
-assert(accumulate(vec,std::string(""), make_string()) == "12");
+const vector<int,int> vec(1,2);
+assert(accumulate(vec,std::string(""), make_string()) == "12");
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/fold.html b/doc/html/fusion/algorithm/iteration/functions/fold.html index 5602ce26..10a6f927 100644 --- a/doc/html/fusion/algorithm/iteration/functions/fold.html +++ b/doc/html/fusion/algorithm/iteration/functions/fold.html @@ -3,7 +3,7 @@ fold - + @@ -26,31 +26,30 @@
- + Description

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

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

Table 1.33. Parameters

+

Table 1.33. Parameters

@@ -78,17 +77,17 @@

- seq + seq

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

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

- initial_state + initial_state

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

- f + f

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

@@ -137,41 +136,38 @@
- + Expression Semantics
-
-fold(seq, initial_state, f);
+
fold(seq, initial_state, f);
 

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
+
#include <boost/fusion/algorithm/iteration/fold.hpp>
 #include <boost/fusion/include/fold.hpp>
 
- + Example
-
-struct make_string
+
struct make_string
 {
     typedef std::string result_type;
 
@@ -182,8 +178,8 @@
     }
 };
 ...
-const vector<int,int> vec(1,2);
-assert(fold(vec,std::string(""), make_string()) == "12");
+const vector<int,int> vec(1,2);
+assert(fold(vec,std::string(""), make_string()) == "12");
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/for_each.html b/doc/html/fusion/algorithm/iteration/functions/for_each.html index 6e1f5acb..7c6d42e2 100644 --- a/doc/html/fusion/algorithm/iteration/functions/for_each.html +++ b/doc/html/fusion/algorithm/iteration/functions/for_each.html @@ -3,7 +3,7 @@ for_each - + @@ -26,26 +26,25 @@
- + Description

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

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

Table 1.35. Parameters

+

Table 1.35. Parameters

@@ -73,16 +72,16 @@

- seq + seq

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

@@ -94,7 +93,7 @@

- f + f

@@ -114,41 +113,38 @@
- + Expression Semantics
-
-for_each(seq, f);
+
for_each(seq, f);
 

- Return type: void + Return type: void

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/for_each.hpp>
+
#include <boost/fusion/algorithm/iteration/for_each.hpp>
 #include <boost/fusion/include/for_each.hpp>
 
- + Example
-
-struct increment
+
struct increment
 {
     template<typename T>
     void operator()(T& t) const
@@ -157,9 +153,9 @@
     }
 };
 ...
-vector<int,int> vec(1,2);
-for_each(vec, increment());
-assert(vec == make_vector(2,3));
+vector<int,int> vec(1,2);
+for_each(vec, increment());
+assert(vec == make_vector(2,3));
 
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions.html b/doc/html/fusion/algorithm/iteration/metafunctions.html index 6e338e90..9166bf48 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html index 10544a1a..4661dcd9 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html @@ -3,7 +3,7 @@ accumulate - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename State,
     typename F>
@@ -47,7 +46,7 @@
 };
 
-

Table 1.37. Parameters

+

Table 1.37. Parameters

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

- Sequence + Sequence

@@ -94,7 +93,7 @@

- State + State

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

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

- F + F

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

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

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
+
#include <boost/fusion/algorithm/iteration/accumulate.hpp>
 #include <boost/fusion/include/accumulate.hpp>
 
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html index 52f2f29f..ba334caf 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html @@ -3,7 +3,7 @@ fold - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename State,
     typename F>
@@ -47,7 +46,7 @@
 };
 
-

Table 1.36. Parameters

+

Table 1.36. Parameters

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

- Sequence + Sequence

@@ -94,7 +93,7 @@

- State + State

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

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

- F + F

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

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

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
+
#include <boost/fusion/algorithm/iteration/fold.hpp>
 #include <boost/fusion/include/fold.hpp>
 
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html index f20f2608..1f6aa5c3 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html @@ -3,7 +3,7 @@ for_each - + @@ -26,19 +26,18 @@

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

- + Description
- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
 >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.38. Parameters

+

Table 1.38. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- F + F

@@ -113,36 +112,34 @@
- + Expression Semantics
-
-result_of::for_each<Sequence, F>::type
+
result_of::for_each<Sequence, F>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/iteration/for_each.hpp>
+
#include <boost/fusion/algorithm/iteration/for_each.hpp>
 #include <boost/fusion/include/for_each.hpp>
 
diff --git a/doc/html/fusion/algorithm/query.html b/doc/html/fusion/algorithm/query.html index ce86f7dc..23c93c72 100644 --- a/doc/html/fusion/algorithm/query.html +++ b/doc/html/fusion/algorithm/query.html @@ -3,7 +3,7 @@ Query - + @@ -33,11 +33,10 @@ The query algorithms provide support for searching and analyzing sequences.

- + Header

-
-#include <boost/fusion/algorithm/query.hpp>
+
#include <boost/fusion/algorithm/query.hpp>
 #include <boost/fusion/include/query.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/functions.html b/doc/html/fusion/algorithm/query/functions.html index 95f520ea..07b2ccee 100644 --- a/doc/html/fusion/algorithm/query/functions.html +++ b/doc/html/fusion/algorithm/query/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/algorithm/query/functions/all.html b/doc/html/fusion/algorithm/query/functions/all.html index f390c520..407765fa 100644 --- a/doc/html/fusion/algorithm/query/functions/all.html +++ b/doc/html/fusion/algorithm/query/functions/all.html @@ -3,7 +3,7 @@ all - + @@ -26,30 +26,29 @@
- + Description

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

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

Table 1.40. Parameters

+

Table 1.40. Parameters

@@ -77,16 +76,16 @@

- seq + seq

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

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

- f + f

@@ -116,43 +115,40 @@
- + Expression Semantics
-
-all(seq, f);
+
all(seq, f);
 

- Return type: bool + Return type: bool

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/all.hpp>
+
#include <boost/fusion/algorithm/query/all.hpp>
 #include <boost/fusion/include/all.hpp>
 
- + Example
-
-struct odd
+
struct odd
 {
     template<typename T>
     bool operator()(T t) const
@@ -161,8 +157,8 @@
     }
 };
 ...
-assert(all(make_vector(1,3), odd()));
-assert(!all(make_vector(1,2), odd()));
+assert(all(make_vector(1,3), odd()));
+assert(!all(make_vector(1,2), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/functions/any.html b/doc/html/fusion/algorithm/query/functions/any.html index 6fa8e22e..28f82794 100644 --- a/doc/html/fusion/algorithm/query/functions/any.html +++ b/doc/html/fusion/algorithm/query/functions/any.html @@ -3,7 +3,7 @@ any - + @@ -26,30 +26,29 @@
- + Description

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

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

Table 1.39. Parameters

+

Table 1.39. Parameters

@@ -77,16 +76,16 @@

- seq + seq

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

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

- f + f

@@ -116,43 +115,40 @@
- + Expression semantics
-
-any(seq, f);
+
any(seq, f);
 

- Return type: bool + Return type: bool

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/any.hpp>
+
#include <boost/fusion/algorithm/query/any.hpp>
 #include <boost/fusion/include/any.hpp>
 
- + Example
-
-struct odd
+
struct odd
 {
     template<typename T>
     bool operator()(T t) const
@@ -161,8 +157,8 @@
     }
 };
 ...
-assert(any(make_vector(1,2), odd()));
-assert(!any(make_vector(2,4), odd()));
+assert(any(make_vector(1,2), odd()));
+assert(!any(make_vector(2,4), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/functions/count.html b/doc/html/fusion/algorithm/query/functions/count.html index 768ad2c9..53b5876c 100644 --- a/doc/html/fusion/algorithm/query/functions/count.html +++ b/doc/html/fusion/algorithm/query/functions/count.html @@ -3,7 +3,7 @@ count - + @@ -26,26 +26,25 @@
- + Description

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

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

Table 1.44. Parameters

+

Table 1.44. Parameters

@@ -73,17 +72,17 @@

- seq + seq

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

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

- T + T

@@ -113,43 +112,40 @@
- + Expression Semantics
-
-count(seq, t);
+
count(seq, t);
 

- Return type: int + Return type: int

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/count.hpp>
+
#include <boost/fusion/algorithm/query/count.hpp>
 #include <boost/fusion/include/count.hpp>
 
- + Example
-
-const vector<double,int,int> vec(1.0,2,3);
-assert(count(vec,2) == 1);
+
const vector<double,int,int> vec(1.0,2,3);
+assert(count(vec,2) == 1);
 
diff --git a/doc/html/fusion/algorithm/query/functions/count_if.html b/doc/html/fusion/algorithm/query/functions/count_if.html index 9324da53..f4cd0d58 100644 --- a/doc/html/fusion/algorithm/query/functions/count_if.html +++ b/doc/html/fusion/algorithm/query/functions/count_if.html @@ -3,7 +3,7 @@ count_if - + @@ -26,27 +26,26 @@
- + Description

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

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

Table 1.45. Parameters

+

Table 1.45. Parameters

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

- seq + seq

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

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

- f + f

@@ -113,42 +112,39 @@
- + Expression Semantics
-
-count_if(seq, f)
+
count_if(seq, f)
 

- Return type: int + Return type: int

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/count_if.hpp>
+
#include <boost/fusion/algorithm/query/count_if.hpp>
 #include <boost/fusion/include/count_if.hpp>
 
- + Example
-
-const vector<int,int,int> vec(1,2,3);
-assert(count_if(vec,odd()) == 2);
+
const vector<int,int,int> vec(1,2,3);
+assert(count_if(vec,odd()) == 2);
 
diff --git a/doc/html/fusion/algorithm/query/functions/find.html b/doc/html/fusion/algorithm/query/functions/find.html index 61426ca5..59be8504 100644 --- a/doc/html/fusion/algorithm/query/functions/find.html +++ b/doc/html/fusion/algorithm/query/functions/find.html @@ -3,7 +3,7 @@ find - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename T,
     typename Sequence
     >
@@ -50,7 +49,7 @@
 unspecified find(Sequence& seq);
 
-

Table 1.42. Parameters

+

Table 1.42. Parameters

@@ -78,7 +77,7 @@

- seq + seq

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

- T + T

@@ -115,46 +114,43 @@
- + Expression Semantics
-
-find<T>(seq)
+
find<T>(seq)
 

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/find.hpp>
+
#include <boost/fusion/algorithm/query/find.hpp>
 #include <boost/fusion/include/find.hpp>
 
- + Example
-
-const vector<char,int> vec('a','0');
-assert(*find<int>(vec) == '0');
-assert(find<double>(vec) == end(vec));
+
const vector<char,int> vec('a','0');
+assert(*find<int>(vec) == '0');
+assert(find<double>(vec) == end(vec));
 
diff --git a/doc/html/fusion/algorithm/query/functions/find_if.html b/doc/html/fusion/algorithm/query/functions/find_if.html index 373bdb84..0a89dd6c 100644 --- a/doc/html/fusion/algorithm/query/functions/find_if.html +++ b/doc/html/fusion/algorithm/query/functions/find_if.html @@ -3,7 +3,7 @@ find_if - + @@ -28,18 +28,17 @@

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

- + Description
- + Synopsis
-
-template<
+
template<
     typename F,
     typename Sequence
     >
@@ -52,7 +51,7 @@
 unspecified find_if(Sequence& seq);
 
-

Table 1.43. Parameters

+

Table 1.43. Parameters

@@ -80,7 +79,7 @@

- seq + seq

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

- F + F

@@ -118,42 +117,40 @@
- + Expression Semantics
-
-find_if<F>(seq)
+
find_if<F>(seq)
 

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

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

- + Complexity

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

/algorithm/query/find_if.hpp>

- + Example
-
-const vector<double,int> vec(1.0,2);
-assert(*find_if<is_integral<mpl::_> >(vec) == 2);
-assert(find_if<is_class<mpl::_> >(vec) == end(vec));
+
const vector<double,int> vec(1.0,2);
+assert(*find_if<is_integral<mpl::_> >(vec) == 2);
+assert(find_if<is_class<mpl::_> >(vec) == end(vec));
 
diff --git a/doc/html/fusion/algorithm/query/functions/none.html b/doc/html/fusion/algorithm/query/functions/none.html index b27f3216..b6343107 100644 --- a/doc/html/fusion/algorithm/query/functions/none.html +++ b/doc/html/fusion/algorithm/query/functions/none.html @@ -3,7 +3,7 @@ none - + @@ -26,30 +26,29 @@
- + Description

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

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

Table 1.41. Parameters

+

Table 1.41. Parameters

@@ -77,16 +76,16 @@

- seq + seq

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

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

- f + f

@@ -116,43 +115,40 @@
- + Expression Semantics
-
-none(seq, f);
+
none(seq, f);
 

- Return type: bool + Return type: bool

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/none.hpp>
+
#include <boost/fusion/algorithm/query/none.hpp>
 #include <boost/fusion/include/none.hpp>
 
- + Example
-
-struct odd
+
struct odd
 {
     template<typename T>
     bool operator()(T t) const
@@ -161,8 +157,8 @@
     }
 };
 ...
-assert(none(make_vector(2,4), odd()));
-assert(!none(make_vector(1,2), odd()));
+assert(none(make_vector(2,4), odd()));
+assert(!none(make_vector(1,2), odd()));
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions.html b/doc/html/fusion/algorithm/query/metafunctions.html index 51fd7502..7a323743 100644 --- a/doc/html/fusion/algorithm/query/metafunctions.html +++ b/doc/html/fusion/algorithm/query/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithm/query/metafunctions/all.html b/doc/html/fusion/algorithm/query/metafunctions/all.html index 38f893ae..c6f74f76 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/all.html +++ b/doc/html/fusion/algorithm/query/metafunctions/all.html @@ -3,7 +3,7 @@ all - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -47,7 +46,7 @@
 };
 
-

Table 1.47. Parameters

+

Table 1.47. Parameters

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

- Sequence + Sequence

@@ -94,7 +93,7 @@

- F + F

@@ -114,38 +113,36 @@
- + Expression Semantics
-
-result_of::all<Sequence, F>::type
+
result_of::all<Sequence, F>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/query/all.hpp>
+
#include <boost/fusion/algorithm/query/all.hpp>
 #include <boost/fusion/include/all.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/any.html b/doc/html/fusion/algorithm/query/metafunctions/any.html index 7f1f5dfb..9280553b 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/any.html +++ b/doc/html/fusion/algorithm/query/metafunctions/any.html @@ -3,7 +3,7 @@ any - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -47,7 +46,7 @@
 };
 
-

Table 1.46. Parameters

+

Table 1.46. Parameters

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

- Sequence + Sequence

@@ -94,7 +93,7 @@

- F + F

@@ -114,38 +113,36 @@
- + Expression Semantics
-
-result_of::any<Sequence, F>::type
+
result_of::any<Sequence, F>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/query/any.hpp>
+
#include <boost/fusion/algorithm/query/any.hpp>
 #include <boost/fusion/include/any.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/count.html b/doc/html/fusion/algorithm/query/metafunctions/count.html index ba0a6c9d..316ff757 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/count.html +++ b/doc/html/fusion/algorithm/query/metafunctions/count.html @@ -3,7 +3,7 @@ count - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.51. Parameters

+

Table 1.51. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,34 +112,32 @@
- + Expression Semantics
-
-result_of::count<T>::type
+
result_of::count<T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/query/count.hpp>
+
#include <boost/fusion/algorithm/query/count.hpp>
 #include <boost/fusion/include/count.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/count_if.html b/doc/html/fusion/algorithm/query/metafunctions/count_if.html index ac63d902..383e8fd6 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/count_if.html +++ b/doc/html/fusion/algorithm/query/metafunctions/count_if.html @@ -3,7 +3,7 @@ count_if - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Pred
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.52. Parameters

+

Table 1.52. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- Pred + Pred

@@ -113,34 +112,32 @@
- + Expression Semantics
-
-result_of::count_if<Sequence, Pred>::type
+
result_of::count_if<Sequence, Pred>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/query/count_if.hpp>
+
#include <boost/fusion/algorithm/query/count_if.hpp>
 #include <boost/fusion/include/count_if.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/find.html b/doc/html/fusion/algorithm/query/metafunctions/find.html index 9292780b..58e1886d 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/find.html +++ b/doc/html/fusion/algorithm/query/metafunctions/find.html @@ -3,7 +3,7 @@ find - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.49. Parameters

+

Table 1.49. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,36 +112,34 @@
- + Expression Semantics
-
-result_of::find<Sequence, T>::type
+
result_of::find<Sequence, T>::type
 

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/find.hpp>
+
#include <boost/fusion/algorithm/query/find.hpp>
 #include <boost/fusion/include/find.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/find_if.html b/doc/html/fusion/algorithm/query/metafunctions/find_if.html index d5b827c6..cc252843 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/find_if.html +++ b/doc/html/fusion/algorithm/query/metafunctions/find_if.html @@ -3,7 +3,7 @@ find_if - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Pred
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.50. Parameters

+

Table 1.50. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- Pred + Pred

@@ -114,36 +113,34 @@
- + Expression Semantics
-
-result_of::find_if<Sequence, Pred>::type
+
result_of::find_if<Sequence, Pred>::type
 

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

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

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/find_if.hpp>
+
#include <boost/fusion/algorithm/query/find_if.hpp>
 #include <boost/fusion/include/find_if.hpp>
 
diff --git a/doc/html/fusion/algorithm/query/metafunctions/none.html b/doc/html/fusion/algorithm/query/metafunctions/none.html index e4550802..d308a34f 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/none.html +++ b/doc/html/fusion/algorithm/query/metafunctions/none.html @@ -3,7 +3,7 @@ none - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -47,7 +46,7 @@
 };
 
-

Table 1.48. Parameters

+

Table 1.48. Parameters

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

- Sequence + Sequence

@@ -94,7 +93,7 @@

- F + F

@@ -114,38 +113,36 @@
- + Expression Semantics
-
-result_of::none<Sequence, F>::type
+
result_of::none<Sequence, F>::type
 

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

- Semantics: Returns the return type of - none - given a sequence of type Sequence + 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. + Function Object of type F. + The return type is always bool.

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/query/none.hpp>
+
#include <boost/fusion/algorithm/query/none.hpp>
 #include <boost/fusion/include/none.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation.html b/doc/html/fusion/algorithm/transformation.html index 7bc9e08f..a62cb896 100644 --- a/doc/html/fusion/algorithm/transformation.html +++ b/doc/html/fusion/algorithm/transformation.html @@ -3,7 +3,7 @@ Transformation - + @@ -39,18 +39,17 @@ [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>
+
#include <boost/fusion/algorithm/transformation.hpp>
 #include <boost/fusion/include/transformation.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/functions.html b/doc/html/fusion/algorithm/transformation/functions.html index c6a3c502..2cab406b 100644 --- a/doc/html/fusion/algorithm/transformation/functions.html +++ b/doc/html/fusion/algorithm/transformation/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/algorithm/transformation/functions/clear.html b/doc/html/fusion/algorithm/transformation/functions/clear.html index 756245e2..0b0afa90 100644 --- a/doc/html/fusion/algorithm/transformation/functions/clear.html +++ b/doc/html/fusion/algorithm/transformation/functions/clear.html @@ -3,7 +3,7 @@ clear - + @@ -26,24 +26,23 @@
- + Description

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

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

Table 1.62. Parameters

+

Table 1.62. Parameters

@@ -70,7 +69,7 @@

- seq + seq

@@ -89,43 +88,40 @@
- + Expression Semantics
-
-clear(seq);
+
clear(seq);
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/clear.hpp>
+
#include <boost/fusion/algorithm/transformation/clear.hpp>
 #include <boost/fusion/include/clear.hpp>
 
- + Example
-
-assert(clear(make_vector(1,2,3)) == make_vector());
+
assert(clear(make_vector(1,2,3)) == make_vector());
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/erase.html b/doc/html/fusion/algorithm/transformation/functions/erase.html index c20a213c..0e866043 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase.html @@ -3,7 +3,7 @@ erase - + @@ -26,7 +26,7 @@
- + Description

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

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

Table 1.63. Parameters

+

Table 1.63. Parameters

@@ -82,7 +81,7 @@ @@ -141,59 +140,55 @@

- seq + seq

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

- it1 + it1

@@ -113,14 +112,14 @@

- Iterator into seq + Iterator into seq

- it2 + it2

@@ -132,8 +131,8 @@

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

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

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

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

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

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/erase.hpp>
+
#include <boost/fusion/algorithm/transformation/erase.hpp>
 #include <boost/fusion/include/erase.hpp>
 
- + Example
-
-const vector<int, double, char> vec(1, 2.0, 'c');
-assert(erase(vec, next(begin(vec))) == make_vector(1, 'c'));
-assert(erase(vec, next(begin(vec)), end(vec)) == make_vector(1));
+
const vector<int, double, char> vec(1, 2.0, 'c');
+assert(erase(vec, next(begin(vec))) == make_vector(1, 'c'));
+assert(erase(vec, next(begin(vec)), end(vec)) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/erase_key.html b/doc/html/fusion/algorithm/transformation/functions/erase_key.html index 6ff008a2..7b345a4b 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase_key.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase_key.html @@ -3,7 +3,7 @@ erase_key - + @@ -26,31 +26,30 @@
- + Description

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

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

Table 1.64. Parameters

+

Table 1.64. Parameters

@@ -78,7 +77,7 @@

- seq + seq

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

- Key + Key

@@ -115,44 +114,41 @@
- + Expression Semantics
-
-erase_key<Key>(seq);
+
erase_key<Key>(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/erase_key.hpp>
+
#include <boost/fusion/algorithm/transformation/erase_key.hpp>
 #include <boost/fusion/include/erase_key.hpp>
 
- + Example
-
-assert(erase_key<int>(make_map<int, long>('a', 'b')) == make_map<long>('b'));
+
assert(erase_key<int>(make_map<int, long>('a', 'b')) == make_map<long>('b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/filter.html b/doc/html/fusion/algorithm/transformation/functions/filter.html index dd4aed39..5d7f558f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter.html @@ -3,7 +3,7 @@ filter - + @@ -26,7 +26,7 @@
- + Description

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

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

Table 1.53. Parameters

+

Table 1.53. Parameters

@@ -73,7 +72,7 @@

- seq + seq

@@ -92,7 +91,7 @@

- T + T

@@ -110,46 +109,43 @@
- + Expression Semantics
-
-filter<T>(seq);
+
filter<T>(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/filter.hpp>
+
#include <boost/fusion/algorithm/transformation/filter.hpp>
 #include <boost/fusion/include/filter.hpp>
 
- + Example
-
-const vector<int,int,long,long> vec(1,2,3,4);
-assert(filter<int>(vec) == make_vector(1,2));
+
const vector<int,int,long,long> vec(1,2,3,4);
+assert(filter<int>(vec) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/filter_if.html b/doc/html/fusion/algorithm/transformation/functions/filter_if.html index 65de295c..6a4ebe3f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter_if.html @@ -3,7 +3,7 @@ filter_if - + @@ -26,27 +26,26 @@
- + Description

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

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

Table 1.54. Parameters

+

Table 1.54. Parameters

@@ -74,7 +73,7 @@

- seq + seq

@@ -93,7 +92,7 @@

- Pred + Pred

@@ -112,47 +111,44 @@
- + Expression Semantics
-
-filter_if<Pred>(seq);
+
filter_if<Pred>(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/filter_if.hpp>
+
#include <boost/fusion/algorithm/transformation/filter_if.hpp>
 #include <boost/fusion/include/filter_if.hpp>
 
- + Example
-
-const vector<int,int,double,double> vec(1,2,3.0,4.0);
-assert(filter_if<is_integral<mpl::_> >(vec) == make_vector(1,2));
+
const vector<int,int,double,double> vec(1,2,3.0,4.0);
+assert(filter_if<is_integral<mpl::_> >(vec) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert.html b/doc/html/fusion/algorithm/transformation/functions/insert.html index 8dcfb8e9..c2b8f96f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert.html @@ -3,7 +3,7 @@ insert - + @@ -26,7 +26,7 @@
- + Description

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

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

Table 1.65. Parameters

+

Table 1.65. Parameters

@@ -74,7 +73,7 @@

- seq + seq

@@ -93,7 +92,7 @@

- pos + pos

@@ -112,7 +111,7 @@

- t + t

@@ -130,47 +129,44 @@
- + Expression Semantics
-
-insert(seq, p, t);
+
insert(seq, p, t);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/insert.hpp>
+
#include <boost/fusion/algorithm/transformation/insert.hpp>
 #include <boost/fusion/include/insert.hpp>
 
- + Example
-
-const vector<int,int> vec(1,2);
-assert(insert(vec, next(begin(vec)), 3) == make_vector(1,3,2));
+
const vector<int,int> vec(1,2);
+assert(insert(vec, next(begin(vec)), 3) == make_vector(1,3,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert_range.html b/doc/html/fusion/algorithm/transformation/functions/insert_range.html index 3b36d880..abdce260 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert_range.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert_range.html @@ -3,7 +3,7 @@ insert_range - + @@ -26,7 +26,7 @@
- + Description

@@ -34,20 +34,19 @@ iterator.

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

Table 1.66. Parameters

+

Table 1.66. Parameters

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

- seq + seq

@@ -94,7 +93,7 @@

- pos + pos

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

- range + range

@@ -133,47 +132,44 @@
- + Expression Semantics
-
-insert(seq, pos, range);
+
insert(seq, pos, range);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/insert_range.hpp>
+
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
 #include <boost/fusion/include/insert_range.hpp>
 
- + Example
-
-const vector<int,int> vec(1,2);
-assert(insert_range(vec, next(begin(vec)), make_vector(3,4)) == make_vector(1,3,4,2));
+
const vector<int,int> vec(1,2);
+assert(insert_range(vec, next(begin(vec)), make_vector(3,4)) == make_vector(1,3,4,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/join.html b/doc/html/fusion/algorithm/transformation/functions/join.html index 9bcb5c97..e5d6db33 100644 --- a/doc/html/fusion/algorithm/transformation/functions/join.html +++ b/doc/html/fusion/algorithm/transformation/functions/join.html @@ -3,7 +3,7 @@ join - + @@ -26,7 +26,7 @@
- + Description

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

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

Table 1.67. Parameters

+

Table 1.67. Parameters

@@ -72,7 +71,7 @@

- lhs + lhs

@@ -91,7 +90,7 @@

- rhs + rhs

@@ -111,47 +110,44 @@
- + Expression Semantics
-
-join(lhs, rhs);
+
join(lhs, rhs);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/join.hpp>
+
#include <boost/fusion/algorithm/transformation/join.hpp>
 #include <boost/fusion/include/join.hpp>
 
- + Example
-
-vector<int,char> v1(1, 'a');
-vector<int,char> v2(2, 'b');
-assert(join(v1, v2) == make_vector(1,'a',2,'b'));
+
vector<int,char> v1(1, 'a');
+vector<int,char> v2(2, 'b');
+assert(join(v1, v2) == make_vector(1,'a',2,'b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/pop_back.html b/doc/html/fusion/algorithm/transformation/functions/pop_back.html index 91dcfc3c..2bb4c364 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_back.html @@ -3,7 +3,7 @@ pop_back - + @@ -26,24 +26,23 @@
- + Description

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

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

Table 1.69. Parameters

+

Table 1.69. Parameters

@@ -70,7 +69,7 @@

- seq + seq

@@ -89,45 +88,42 @@
- + Expression Semantics
-
-pop_back(seq);
+
pop_back(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/pop_back.hpp>
+
#include <boost/fusion/algorithm/transformation/pop_back.hpp>
 #include <boost/fusion/include/pop_back.hpp>
 
- + Example
-
-assert(___pop_back__(make_vector(1,2,3)) == make_vector(1,2));
+
assert(___pop_back__(make_vector(1,2,3)) == make_vector(1,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/pop_front.html b/doc/html/fusion/algorithm/transformation/functions/pop_front.html index 70cc977c..f510558c 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_front.html @@ -3,7 +3,7 @@ pop_front - + @@ -26,24 +26,23 @@
- + Description

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

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

Table 1.70. Parameters

+

Table 1.70. Parameters

@@ -70,7 +69,7 @@

- seq + seq

@@ -89,45 +88,42 @@
- + Expression Semantics
-
-pop_front(seq);
+
pop_front(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/pop_front.hpp>
+
#include <boost/fusion/algorithm/transformation/pop_front.hpp>
 #include <boost/fusion/include/pop_front.hpp>
 
- + Example
-
-assert(pop_front(make_vector(1,2,3)) == make_vector(2,3));
+
assert(pop_front(make_vector(1,2,3)) == make_vector(2,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/push_back.html b/doc/html/fusion/algorithm/transformation/functions/push_back.html index 01209484..b6dca85f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_back.html @@ -3,7 +3,7 @@ push_back - + @@ -26,26 +26,25 @@
- + Description

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

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

Table 1.71. Parameters

+

Table 1.71. Parameters

@@ -73,7 +72,7 @@

- seq + seq

@@ -92,7 +91,7 @@

- t + t

@@ -110,45 +109,42 @@
- + Expression Semantics
-
-push_back(seq, t);
+
push_back(seq, t);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/push_back.hpp>
+
#include <boost/fusion/algorithm/transformation/push_back.hpp>
 #include <boost/fusion/include/push_back.hpp>
 
- + Example
-
-assert(push_back(make_vector(1,2,3),4) == make_vector(1,2,3,4));
+
assert(push_back(make_vector(1,2,3),4) == make_vector(1,2,3,4));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/push_front.html b/doc/html/fusion/algorithm/transformation/functions/push_front.html index e152ca6c..160346f1 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_front.html @@ -3,7 +3,7 @@ push_front - + @@ -26,26 +26,25 @@
- + Description

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

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

Table 1.72. Parameters

+

Table 1.72. Parameters

@@ -73,7 +72,7 @@

- seq + seq

@@ -92,7 +91,7 @@

- t + t

@@ -110,46 +109,43 @@
- + Expression Semantics
-
-push_back(seq, t);
+
push_back(seq, t);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/push_front.hpp>
+
#include <boost/fusion/algorithm/transformation/push_front.hpp>
 #include <boost/fusion/include/push_front.hpp>
 
- + Example
-
-assert(push_front(make_vector(1,2,3),0) == make_vector(0,1,2,3));
+
assert(push_front(make_vector(1,2,3),0) == make_vector(0,1,2,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove.html b/doc/html/fusion/algorithm/transformation/functions/remove.html index 5e60dd9b..05c62714 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove.html @@ -3,7 +3,7 @@ remove - + @@ -26,7 +26,7 @@
- + Description

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

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

Table 1.59. Parameters

+

Table 1.59. Parameters

@@ -73,7 +72,7 @@

- seq + seq

@@ -92,7 +91,7 @@

- T + T

@@ -110,46 +109,43 @@
- + Expression Semantics
-
-remove<T>(seq);
+
remove<T>(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/remove.hpp>
+
#include <boost/fusion/algorithm/transformation/remove.hpp>
 #include <boost/fusion/include/remove.hpp>
 
- + Example
-
-const vector<int,double> vec(1,2.0);
-assert(remove<double>(vec) == make_vector(1));
+
const vector<int,double> vec(1,2.0);
+assert(remove<double>(vec) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove_if.html b/doc/html/fusion/algorithm/transformation/functions/remove_if.html index de7c3010..2dd38b21 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove_if.html @@ -3,7 +3,7 @@ remove_if - + @@ -26,26 +26,25 @@
- + Description

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

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

Table 1.60. Parameters

+

Table 1.60. Parameters

@@ -73,7 +72,7 @@

- seq + seq

@@ -92,7 +91,7 @@

- Pred + Pred

@@ -111,47 +110,44 @@
- + Expression Semantics
-
-remove_if<Pred>(seq);
+
remove_if<Pred>(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/remove_if.hpp>
+
#include <boost/fusion/algorithm/transformation/remove_if.hpp>
 #include <boost/fusion/include/remove_if.hpp>
 
- + Example
-
-const vector<int,double> vec(1,2.0);
-assert(remove_if<is_floating_point<mpl::_> >(vec) == make_vector(1));
+
const vector<int,double> vec(1,2.0);
+assert(remove_if<is_floating_point<mpl::_> >(vec) == make_vector(1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/replace.html b/doc/html/fusion/algorithm/transformation/functions/replace.html index 23001b52..ff2e5701 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace.html @@ -3,7 +3,7 @@ replace - + @@ -26,7 +26,7 @@
- + Description

@@ -34,19 +34,18 @@ a new value.

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

Table 1.57. Parameters

+

Table 1.57. Parameters

@@ -74,18 +73,18 @@

- seq + seq

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

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

- old_value + old_value

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

- new_value + new_value

@@ -132,45 +131,42 @@
- + Expression Semantics
-
-replace(seq, old_value, new_value);
+
replace(seq, old_value, new_value);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/replace.hpp>
+
#include <boost/fusion/algorithm/transformation/replace.hpp>
 #include <boost/fusion/include/replace.hpp>
 
- + Example
-
-assert(replace(make_vector(1,2), 2, 3) == make_vector(1,3));
+
assert(replace(make_vector(1,2), 2, 3) == make_vector(1,3));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/replace_if.html b/doc/html/fusion/algorithm/transformation/functions/replace_if.html index 45044eab..592f4bf6 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace_if.html @@ -3,7 +3,7 @@ replace_if - + @@ -26,28 +26,27 @@
- + Description

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

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

Table 1.58. Parameters

+

Table 1.58. Parameters

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

- seq + seq

@@ -94,14 +93,14 @@

- f + f

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

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

- new_value + new_value

@@ -131,46 +130,43 @@
- + Expression Semantics
-
-replace_if(seq, f, new_value);
+
replace_if(seq, f, new_value);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/replace_if.hpp>
+
#include <boost/fusion/algorithm/transformation/replace_if.hpp>
 #include <boost/fusion/include/replace_if.hpp>
 
- + Example
-
-struct odd
+
struct odd
 {
     template<typename T>
     bool operator()(T t) const
@@ -179,7 +175,7 @@
     }
 };
 ...
-assert(replace_if(make_vector(1,2), odd(), 3) == make_vector(3,2));
+assert(replace_if(make_vector(1,2), odd(), 3) == make_vector(3,2));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/reverse.html b/doc/html/fusion/algorithm/transformation/functions/reverse.html index 11bf809c..4d94513e 100644 --- a/doc/html/fusion/algorithm/transformation/functions/reverse.html +++ b/doc/html/fusion/algorithm/transformation/functions/reverse.html @@ -3,7 +3,7 @@ reverse - + @@ -26,24 +26,23 @@
- + Description

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

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

Table 1.61. Parameters

+

Table 1.61. Parameters

@@ -70,7 +69,7 @@

- seq + seq

@@ -89,44 +88,41 @@
- + Expression Semantics
-
-reverse(seq);
+
reverse(seq);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/reverse.hpp>
+
#include <boost/fusion/algorithm/transformation/reverse.hpp>
 #include <boost/fusion/include/reverse.hpp>
 
- + Example
-
-assert(reverse(make_vector(1,2,3)) == make_vector(3,2,1));
+
assert(reverse(make_vector(1,2,3)) == make_vector(3,2,1));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/transform.html b/doc/html/fusion/algorithm/transformation/functions/transform.html index 135e5489..1f1a335e 100644 --- a/doc/html/fusion/algorithm/transformation/functions/transform.html +++ b/doc/html/fusion/algorithm/transformation/functions/transform.html @@ -3,7 +3,7 @@ transform - + @@ -26,31 +26,30 @@
- + Description

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

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

Table 1.55. Parameters

+

Table 1.55. Parameters

@@ -78,7 +77,7 @@

- seq + seq

@@ -97,15 +96,15 @@

- f + f

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

@@ -118,39 +117,37 @@
- + Expression Semantics
-
-transform(seq, f);
+
transform(seq, f);
 

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

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

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

Table 1.56. Parameters

+

Table 1.56. Parameters

@@ -178,7 +175,7 @@

- seq1 + seq1

@@ -197,7 +194,7 @@

- seq2 + seq2

@@ -216,16 +213,16 @@

- f + f

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

@@ -238,36 +235,34 @@

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/transform.hpp>
+
#include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/include/transform.hpp>
 
- + Example
-
-struct triple
+
struct triple
 {
     typedef int result_type;
 
@@ -277,7 +272,7 @@
     };
 };
 ...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
+assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/zip.html b/doc/html/fusion/algorithm/transformation/functions/zip.html index 199ab464..a6588e99 100644 --- a/doc/html/fusion/algorithm/transformation/functions/zip.html +++ b/doc/html/fusion/algorithm/transformation/functions/zip.html @@ -3,7 +3,7 @@ zip - + @@ -26,7 +26,7 @@
- + Description

@@ -34,21 +34,20 @@ of the members of the component sequences.

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

Table 1.68. Parameters

+

Table 1.68. Parameters

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

- seq1 to seqN + seq1 to seqN

@@ -94,51 +93,48 @@
- + Expression Semantics
-
-zip(seq1, seq2, ... seqN);
+
zip(seq1, seq2, ... seqN);
 

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/zip.hpp>
+
#include <boost/fusion/algorithm/transformation/zip.hpp>
 #include <boost/fusion/include/zip.hpp>
 
- + Example
-
-vector<int,char> v1(1, 'a');
-vector<int,char> v2(2, 'b');
-assert(zip(v1, v2) == make_vector(make_vector(1, 2),make_vector('a', 'b'));
+
vector<int,char> v1(1, 'a');
+vector<int,char> v2(2, 'b');
+assert(zip(v1, v2) == make_vector(make_vector(1, 2),make_vector('a', 'b'));
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions.html b/doc/html/fusion/algorithm/transformation/metafunctions.html index 9ffc7d57..2a3cd58c 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html index 8fb27b3c..11176849 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html @@ -3,7 +3,7 @@ clear - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence
     >
 struct clear
@@ -47,7 +46,7 @@
 };
 
-

Table 1.82. Parameters

+

Table 1.82. Parameters

@@ -74,7 +73,7 @@

- Sequence + Sequence

@@ -91,34 +90,32 @@
- + Expression Semantics
-
-result_of::clear<Sequence>::type
+
result_of::clear<Sequence>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/clear.hpp>
+
#include <boost/fusion/algorithm/transformation/clear.hpp>
 #include <boost/fusion/include/clear.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html index c32a4b43..774fe7d6 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html @@ -3,7 +3,7 @@ erase - + @@ -26,19 +26,18 @@

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

- + Description
- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename It1,
     typename It2 = unspecified>
@@ -48,7 +47,7 @@
 };
 
-

Table 1.83. Parameters

+

Table 1.83. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- It1 + It1

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

- It2 + It2

@@ -134,48 +133,45 @@
- + Expression Semantics
-
-result_of::erase<Sequence, It1>::type
+
result_of::erase<Sequence, It1>::type
 

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

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

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

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/erase.hpp>
+
#include <boost/fusion/algorithm/transformation/erase.hpp>
 #include <boost/fusion/include/erase.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html index 85a718b6..6386ed58 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html @@ -3,7 +3,7 @@ erase_key - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Key
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.84. Parameters

+

Table 1.84. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- Key + Key

@@ -113,36 +112,34 @@
- + Expression Semantics
-
-result_of::erase_key<Sequence, Key>::type
+
result_of::erase_key<Sequence, Key>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/erase_key.hpp>
+
#include <boost/fusion/algorithm/transformation/erase_key.hpp>
 #include <boost/fusion/include/erase_key.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html index ba16d426..ee7d130f 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html @@ -3,7 +3,7 @@ filter - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.73. Parameter

+

Table 1.73. Parameter

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,38 +112,36 @@
- + Expression Semantics
-
-result_of::filter<Sequence, T>::type
+
result_of::filter<Sequence, T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/filter.hpp>
+
#include <boost/fusion/algorithm/transformation/filter.hpp>
 #include <boost/fusion/include/filter.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html index 602f8fa4..b2da03be 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html @@ -3,7 +3,7 @@ filter_if - + @@ -26,20 +26,19 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Pred
     >
@@ -49,7 +48,7 @@
 };
 
-

Table 1.74. Parameter

+

Table 1.74. Parameter

@@ -77,7 +76,7 @@

- Sequence + Sequence

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

- Pred + Pred

@@ -115,37 +114,35 @@
- + Expression Semantics
-
-result_of::filter_if<Sequence, Pred>::type
+
result_of::filter_if<Sequence, Pred>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/filter_if.hpp>
+
#include <boost/fusion/algorithm/transformation/filter_if.hpp>
 #include <boost/fusion/include/filter_if.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html index 5bce505a..2c756830 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html @@ -3,7 +3,7 @@ insert - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Position,
     typename T
@@ -49,7 +48,7 @@
 };
 
-

Table 1.85. Parameters

+

Table 1.85. Parameters

@@ -77,7 +76,7 @@

- Sequence + Sequence

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

- Position + Position

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

- T + T

@@ -133,37 +132,35 @@
- + Expression Semantics
-
-result_of::insert<Sequence, Position, T>::type
+
result_of::insert<Sequence, Position, T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/insert.hpp>
+
#include <boost/fusion/algorithm/transformation/insert.hpp>
 #include <boost/fusion/include/insert.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html index 236e8355..d8119673 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html @@ -3,7 +3,7 @@ insert_range - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Position,
     typename Range
@@ -49,7 +48,7 @@
 };
 
-

Table 1.86. Parameters

+

Table 1.86. Parameters

@@ -77,7 +76,7 @@

- Sequence + Sequence

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

- Position + Position

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

- Range + Range

@@ -135,37 +134,35 @@
- + Expression Semantics
-
-result_of::insert_range<Sequence, Position, Range>::type
+
result_of::insert_range<Sequence, Position, Range>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/insert_range.hpp>
+
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
 #include <boost/fusion/include/insert_range.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/join.html b/doc/html/fusion/algorithm/transformation/metafunctions/join.html index 0c8f3fb3..3b63937f 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/join.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/join.html @@ -3,7 +3,7 @@ join - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename LhSequence,
     typename RhSequence
     >
@@ -47,37 +46,35 @@
 };
 
- + Expression Semantics
-
-result_of::join<LhSequence, RhSequence>::type
+
result_of::join<LhSequence, RhSequence>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/join.hpp>
+
#include <boost/fusion/algorithm/transformation/join.hpp>
 #include <boost/fusion/include/join.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html index 48bc70d6..f8672d95 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html @@ -3,7 +3,7 @@ pop_back - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence
     >
 struct pop_back
@@ -47,7 +46,7 @@
 };
 
-

Table 1.87. Parameters

+

Table 1.87. Parameters

@@ -74,7 +73,7 @@

- Sequence + Sequence

@@ -93,36 +92,34 @@
- + Expression Semantics
-
-result_of::pop_back<Sequence>::type
+
result_of::pop_back<Sequence>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/tranformation/pop_back.hpp>
+
#include <boost/fusion/algorithm/tranformation/pop_back.hpp>
 #include <boost/fusion/include/pop_back.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html index a6d0a6ce..1d06e361 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html @@ -3,7 +3,7 @@ pop_front - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence
     >
 struct pop_front
@@ -47,7 +46,7 @@
 };
 
-

Table 1.88. Parameters

+

Table 1.88. Parameters

@@ -74,7 +73,7 @@

- Sequence + Sequence

@@ -93,25 +92,24 @@
- + Expression Semantics
-
-result_of::pop_front<Sequence>::type
+
result_of::pop_front<Sequence>::type
 

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

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

- + Complexity

diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html index 0f6c814d..0ff2fdd2 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html @@ -3,7 +3,7 @@ push_back - + @@ -26,19 +26,18 @@

- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.89. Parameters

+

Table 1.89. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,26 +112,25 @@
- + Expression Semantics
-
-result_of::push_back<Sequence, T>::type
+
result_of::push_back<Sequence, T>::type
 

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

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

- + Complexity

diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html index 1809423b..344426e0 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html @@ -3,7 +3,7 @@ push_front - + @@ -26,19 +26,18 @@

- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.90. Parameters

+

Table 1.90. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,26 +112,25 @@
- + Expression Semantics
-
-result_of::push_front<Sequence, T>::type
+
result_of::push_front<Sequence, T>::type
 

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

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

- + Complexity

diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html index 667c78ce..ffa4b3cf 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html @@ -3,7 +3,7 @@ remove - + @@ -26,19 +26,18 @@

- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.79. Parameters

+

Table 1.79. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,38 +112,36 @@
- + Expression Semantics
-
-result_of::remove<Sequence, T>::type
+
result_of::remove<Sequence, T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/remove.hpp>
+
#include <boost/fusion/algorithm/transformation/remove.hpp>
 #include <boost/fusion/include/remove.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html index d5959258..0b64c657 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html @@ -3,7 +3,7 @@ remove_if - + @@ -26,20 +26,19 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename Pred
     >
@@ -49,7 +48,7 @@
 };
 
-

Table 1.80. Parameters

+

Table 1.80. Parameters

@@ -77,7 +76,7 @@ @@ -115,37 +114,35 @@

- Sequence + Sequence

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

- Pred + Pred

@@ -107,7 +106,7 @@

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

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

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/remove_if.hpp>
+
#include <boost/fusion/algorithm/transformation/remove_if.hpp>
 #include <boost/fusion/include/remove_if.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html index e30d64c8..40a33690 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html @@ -3,7 +3,7 @@ replace - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -48,7 +47,7 @@
 };
 
-

Table 1.77. Parameters

+

Table 1.77. Parameters

@@ -76,7 +75,7 @@

- Sequence + Sequence

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

- T + T

@@ -113,35 +112,33 @@
- + Expression Semantics
-
-result_of::replace<Sequence,T>::type
+
result_of::replace<Sequence,T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/replace.hpp>
+
#include <boost/fusion/algorithm/transformation/replace.hpp>
 #include <boost/fusion/include/replace.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html index 5f1d7401..fb2b2d5d 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html @@ -3,7 +3,7 @@ replace_if - + @@ -26,21 +26,20 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F,
     typename T>
@@ -50,7 +49,7 @@
 };
 
-

Table 1.78. Parameters

+

Table 1.78. Parameters

@@ -78,7 +77,7 @@

- Sequence + Sequence

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

- F + F

@@ -116,7 +115,7 @@

- T + T

@@ -134,35 +133,33 @@
- + Expression Semantics
-
-result_of::replace_if<Sequence,F,T>::type
+
result_of::replace_if<Sequence,F,T>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/replace_if.hpp>
+
#include <boost/fusion/algorithm/transformation/replace_if.hpp>
 #include <boost/fusion/include/replace_if.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html index 6937de0e..c911b4a1 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html @@ -3,7 +3,7 @@ reverse - + @@ -26,19 +26,18 @@
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence
     >
 struct reverse
@@ -47,7 +46,7 @@
 };
 
-

Table 1.81. Parameters

+

Table 1.81. Parameters

@@ -74,7 +73,7 @@

- Sequence + Sequence

@@ -93,35 +92,33 @@
- + Expression Semantics
-
-result_of::reverse<Sequence>::type
+
result_of::reverse<Sequence>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/reverse.hpp>
+
#include <boost/fusion/algorithm/transformation/reverse.hpp>
 #include <boost/fusion/include/reverse.hpp>
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html index 04477d12..b3021959 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html @@ -3,7 +3,7 @@ transform - + @@ -26,31 +26,30 @@
- + Description

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

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

Table 1.75. Parameters

+

Table 1.75. Parameters

@@ -78,7 +77,7 @@

- seq + seq

@@ -97,15 +96,15 @@

- f + f

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

@@ -118,39 +117,37 @@
- + Expression Semantics
-
-transform(seq, f);
+
transform(seq, f);
 

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

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

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

Table 1.76. Parameters

+

Table 1.76. Parameters

@@ -178,7 +175,7 @@

- seq1 + seq1

@@ -197,7 +194,7 @@

- seq2 + seq2

@@ -216,16 +213,16 @@

- f + f

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

@@ -238,36 +235,34 @@

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

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

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
-
-#include <boost/fusion/algorithm/transformation/transform.hpp>
+
#include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/include/transform.hpp>
 
- + Example
-
-struct triple
+
struct triple
 {
     typedef int result_type;
 
@@ -277,7 +272,7 @@
     };
 };
 ...
-assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
+assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html index 840c9039..4a4d85cb 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html @@ -3,7 +3,7 @@ zip - + @@ -26,7 +26,7 @@
- + Description

@@ -34,11 +34,10 @@ of the members of the component sequences.

- + Synopsis
-
-template<
+
template<
     typename Sequence1,
     typename Sequence2,
     ...
@@ -50,41 +49,39 @@
 };
 
- + Expression Semantics
-
-result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
+
result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
 

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

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

- + Complexity

Constant.

- + Header
-
-#include <boost/fusion/algorithm/transformation/zip.hpp>
+
#include <boost/fusion/algorithm/transformation/zip.hpp>
 #include <boost/fusion/include/zip.hpp>
 
diff --git a/doc/html/fusion/change_log.html b/doc/html/fusion/change_log.html index 0964a7a2..8b8b0d80 100644 --- a/doc/html/fusion/change_log.html +++ b/doc/html/fusion/change_log.html @@ -3,7 +3,7 @@ Change log - + @@ -30,11 +30,11 @@

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

- + Header

-
-#include <boost/fusion/container.hpp>
+
#include <boost/fusion/container.hpp>
 #include <boost/fusion/include/container.hpp>
 
diff --git a/doc/html/fusion/container/cons.html b/doc/html/fusion/container/cons.html index d257fb55..82609204 100644 --- a/doc/html/fusion/container/cons.html +++ b/doc/html/fusion/container/cons.html @@ -3,7 +3,7 @@ cons - + @@ -26,39 +26,37 @@

- + Description

- cons is a simple cons is a simple Forward - Sequence. It is a lisp style recursive list structure where car is the head and - cdr is the tail: - usually another cons structure or nil: - the empty list. Fusion's list is built on top of this more - primitive data structure. It is more efficient than vector when the target sequence + 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/container/list/cons.hpp>
+
#include <boost/fusion/container/list/cons.hpp>
 #include <boost/fusion/include/cons.hpp>
 

- + Synopsis

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

- + Template parameters

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

- Car + Car

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

- Cdr + Cdr

@@ -114,14 +112,14 @@

- nil + nil

- + Model of

- + Expression Semantics

@@ -193,7 +191,7 @@

- nil() + nil()

@@ -205,7 +203,7 @@

- C() + C()

@@ -217,12 +215,12 @@

- C(car) + C(car)

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

@@ -230,81 +228,80 @@

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

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

- C(s) + C(s)

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

- l = - s + l = + s

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

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

- The Nth element from the beginning of the sequence; see at. + 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;
+
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;
 
diff --git a/doc/html/fusion/container/conversion.html b/doc/html/fusion/container/conversion.html index 31f53102..0cac4af3 100644 --- a/doc/html/fusion/container/conversion.html +++ b/doc/html/fusion/container/conversion.html @@ -3,7 +3,7 @@ Conversion - + @@ -34,11 +34,10 @@ types using one of these conversion functions.

- + Header

-
-#include <boost/fusion/include/convert.hpp>
+
#include <boost/fusion/include/convert.hpp>
 
diff --git a/doc/html/fusion/container/conversion/functions.html b/doc/html/fusion/container/conversion/functions.html index 63cc387c..108ad8a8 100644 --- a/doc/html/fusion/container/conversion/functions.html +++ b/doc/html/fusion/container/conversion/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/container/conversion/functions/as_list.html b/doc/html/fusion/container/conversion/functions/as_list.html index 0c763d69..754e58ce 100644 --- a/doc/html/fusion/container/conversion/functions/as_list.html +++ b/doc/html/fusion/container/conversion/functions/as_list.html @@ -3,7 +3,7 @@ as_list - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 typename result_of::as_list<Sequence>::type
 as_list(Sequence& seq);
 
@@ -46,7 +45,7 @@
 as_list(Sequence const& seq);
 
- + Parameters
@@ -75,7 +74,7 @@

- seq + seq

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

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

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

- + Header
-
-#include <boost/fusion/container/list/convert.hpp>
+
#include <boost/fusion/container/list/convert.hpp>
 #include <boost/fusion/include/as_list.hpp>
 
- + Example
-
-as_list(make_vector('x', 123, "hello"))
+
as_list(make_vector('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_map.html b/doc/html/fusion/container/conversion/functions/as_map.html index 3748d16e..afb111e3 100644 --- a/doc/html/fusion/container/conversion/functions/as_map.html +++ b/doc/html/fusion/container/conversion/functions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 typename result_of::as_map<Sequence>::type
 as_map(Sequence& seq);
 
@@ -46,7 +45,7 @@
 as_map(Sequence const& seq);
 
- + Parameters
@@ -75,7 +74,7 @@

- seq + seq

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

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

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

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

- + Header
-
-#include <boost/fusion/container/map/convert.hpp>
+
#include <boost/fusion/container/map/convert.hpp>
 #include <boost/fusion/include/as_map.hpp>
 
- + Example
-
-as_map(make_vector(
-    make_pair<int>('X')
-  , make_pair<double>("Men")))
+
as_map(make_vector(
+    make_pair<int>('X')
+  , make_pair<double>("Men")))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_set.html b/doc/html/fusion/container/conversion/functions/as_set.html index 5df2befb..517a96d0 100644 --- a/doc/html/fusion/container/conversion/functions/as_set.html +++ b/doc/html/fusion/container/conversion/functions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 typename result_of::as_set<Sequence>::type
 as_set(Sequence& seq);
 
@@ -46,7 +45,7 @@
 as_set(Sequence const& seq);
 
- + Parameters
@@ -75,7 +74,7 @@

- seq + seq

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

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

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

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

- + Header
-
-#include <boost/fusion/container/set/convert.hpp>
+
#include <boost/fusion/container/set/convert.hpp>
 #include <boost/fusion/include/as_set.hpp>
 
- + Example
-
-as_set(make_vector('x', 123, "hello"))
+
as_set(make_vector('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/functions/as_vector.html b/doc/html/fusion/container/conversion/functions/as_vector.html index 38c553a9..14ebc63d 100644 --- a/doc/html/fusion/container/conversion/functions/as_vector.html +++ b/doc/html/fusion/container/conversion/functions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -26,18 +26,17 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 typename result_of::as_vector<Sequence>::type
 as_vector(Sequence& seq);
 
@@ -46,7 +45,7 @@
 as_vector(Sequence const& seq);
 
- + Parameters
@@ -75,7 +74,7 @@

- seq + seq

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

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

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

- + Header
-
-#include <boost/fusion/container/vector/convert.hpp>
+
#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/include/as_vector.hpp>
 
- + Example
-
-as_vector(make_list('x', 123, "hello"))
+
as_vector(make_list('x', 123, "hello"))
 
diff --git a/doc/html/fusion/container/conversion/metafunctions.html b/doc/html/fusion/container/conversion/metafunctions.html index fc5e7fc0..b77d0c36 100644 --- a/doc/html/fusion/container/conversion/metafunctions.html +++ b/doc/html/fusion/container/conversion/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/container/conversion/metafunctions/as_list.html b/doc/html/fusion/container/conversion/metafunctions/as_list.html index da828883..b04efa87 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_list.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_list.html @@ -3,7 +3,7 @@ as_list - + @@ -26,22 +26,21 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_list;
 
- + Parameters
@@ -70,7 +69,7 @@

- Sequence + Sequence

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

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

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

- + Header
-
-#include <boost/fusion/container/list/convert.hpp>
+
#include <boost/fusion/container/list/convert.hpp>
 #include <boost/fusion/include/as_list.hpp>
 
- + Example
-
-result_of::as_list<vector<char, int> >::type
+
result_of::as_list<vector<char, int> >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_map.html b/doc/html/fusion/container/conversion/metafunctions/as_map.html index b109321d..72e93f9c 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_map.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_map.html @@ -3,7 +3,7 @@ as_map - + @@ -26,22 +26,21 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_map;
 
- + Parameters
@@ -70,7 +69,7 @@

- Sequence + Sequence

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

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

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

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

- + Header
-
-#include <boost/fusion/container/map/convert.hpp>
+
#include <boost/fusion/container/map/convert.hpp>
 #include <boost/fusion/include/as_map.hpp>
 
- + Example
-
-result_of::as_map<vector<
-    fusion::pair<int, char>
-  , fusion::pair<double, std::string> > >::type
+
result_of::as_map<vector<
+    fusion::pair<int, char>
+  , fusion::pair<double, std::string> > >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_set.html b/doc/html/fusion/container/conversion/metafunctions/as_set.html index b0813dc8..f94e1e78 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_set.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_set.html @@ -3,7 +3,7 @@ as_set - + @@ -26,22 +26,21 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_set;
 
- + Parameters
@@ -70,7 +69,7 @@

- Sequence + Sequence

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

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

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

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

- + Header
-
-#include <boost/fusion/container/set/convert.hpp>
+
#include <boost/fusion/container/set/convert.hpp>
 #include <boost/fusion/include/as_set.hpp>
 
- + Example
-
-result_of::as_set<vector<char, int> >::type
+
result_of::as_set<vector<char, int> >::type
 
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_vector.html b/doc/html/fusion/container/conversion/metafunctions/as_vector.html index 54eb2fa9..b43bf7d5 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_vector.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_vector.html @@ -3,7 +3,7 @@ as_vector - + @@ -26,22 +26,21 @@
- + Description

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

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_vector;
 
- + Parameters
@@ -70,7 +69,7 @@

- Sequence + Sequence

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

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

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

- + Header
-
-#include <boost/fusion/container/vector/convert.hpp>
+
#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/include/as_vector.hpp>
 
- + Example
-
-result_of::as_vector<list<char, int> >::type
+
result_of::as_vector<list<char, int> >::type
 
diff --git a/doc/html/fusion/container/generation.html b/doc/html/fusion/container/generation.html index 81cf6840..fc59f162 100644 --- a/doc/html/fusion/container/generation.html +++ b/doc/html/fusion/container/generation.html @@ -3,7 +3,7 @@ Generation - + @@ -33,11 +33,10 @@ These are the functions that you can use to generate various forms of Container from elemental values.

- + Header

-
-#include <boost/fusion/container/generation.hpp>
+
#include <boost/fusion/container/generation.hpp>
 #include <boost/fusion/include/generation.hpp>
 
diff --git a/doc/html/fusion/container/generation/functions.html b/doc/html/fusion/container/generation/functions.html index da076b46..ca636859 100644 --- a/doc/html/fusion/container/generation/functions.html +++ b/doc/html/fusion/container/generation/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/container/generation/functions/list_tie.html b/doc/html/fusion/container/generation/functions/list_tie.html index cb73d6ce..846c29a9 100644 --- a/doc/html/fusion/container/generation/functions/list_tie.html +++ b/doc/html/fusion/container/generation/functions/list_tie.html @@ -3,7 +3,7 @@ list_tie - + @@ -26,34 +26,32 @@
- + Description

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

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
-list<T0&, T1&,... TN&>
+
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 + 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
+
#define FUSION_MAX_LIST_SIZE 20
 
- + Parameters
@@ -82,52 +80,49 @@

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

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

- The arguments to list_tie + The arguments to list_tie

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

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

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

- + Header
-
-#include <boost/fusion/container/generation/list_tie.hpp>
+
#include <boost/fusion/container/generation/list_tie.hpp>
 #include <boost/fusion/include/list_tie.hpp>
 
- + Example
-
-int i = 123;
+
int i = 123;
 double d = 123.456;
 list_tie(i, d)
 
diff --git a/doc/html/fusion/container/generation/functions/make_cons.html b/doc/html/fusion/container/generation/functions/make_cons.html index 2462133c..29b6dc93 100644 --- a/doc/html/fusion/container/generation/functions/make_cons.html +++ b/doc/html/fusion/container/generation/functions/make_cons.html @@ -3,7 +3,7 @@ make_cons - + @@ -26,29 +26,28 @@
- + Description

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

- + Synopsis
-
-template <typename Car>
-typename result_of::make_cons<Car>::type
+
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
+typename result_of::make_cons<Car, Cdr>::type
 make_cons(Car const& car, Cdr const& cdr);
 
- + Parameters
@@ -78,12 +77,12 @@

- car + car

- Instance of Car + Instance of Car

@@ -95,12 +94,12 @@

- cdr + cdr

- Instance of Cdr + Instance of Cdr

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

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

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

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

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/make_list.html b/doc/html/fusion/container/generation/functions/make_list.html index 49ca486d..f03124e0 100644 --- a/doc/html/fusion/container/generation/functions/make_list.html +++ b/doc/html/fusion/container/generation/functions/make_list.html @@ -3,7 +3,7 @@ make_list - + @@ -26,35 +26,33 @@
- + Description

- Create a list + 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
+
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 + 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
+
#define FUSION_MAX_LIST_SIZE 20
 
- + Parameters
@@ -83,59 +81,56 @@

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

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

- The arguments to make_list + The arguments to make_list

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

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

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

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

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/make_map.html b/doc/html/fusion/container/generation/functions/make_map.html index 8b202e40..4d213add 100644 --- a/doc/html/fusion/container/generation/functions/make_map.html +++ b/doc/html/fusion/container/generation/functions/make_map.html @@ -3,7 +3,7 @@ make_map - + @@ -26,38 +26,36 @@
- + Description

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

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

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

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

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

@@ -99,83 +97,80 @@

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

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

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

- The arguments to make_map + The arguments to make_map

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

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

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

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

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

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



-

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

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

diff --git a/doc/html/fusion/container/generation/functions/make_set.html b/doc/html/fusion/container/generation/functions/make_set.html index 833359b4..4c1b2a78 100644 --- a/doc/html/fusion/container/generation/functions/make_set.html +++ b/doc/html/fusion/container/generation/functions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -26,36 +26,34 @@
- + Description

- Create a set + 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
+
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 + 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
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -84,69 +82,66 @@

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

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

- The arguments to make_set + The arguments to make_set

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

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

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

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

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

- boost::ref + boost::ref



-

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

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

diff --git a/doc/html/fusion/container/generation/functions/make_vector.html b/doc/html/fusion/container/generation/functions/make_vector.html index c51e7fa5..c2eccd79 100644 --- a/doc/html/fusion/container/generation/functions/make_vector.html +++ b/doc/html/fusion/container/generation/functions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -26,35 +26,33 @@
- + Description

- Create a vector + 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
+
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 + 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
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -83,59 +81,56 @@

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

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

- The arguments to make_vector + The arguments to make_vector

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

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

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

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

- boost::ref + boost::ref

diff --git a/doc/html/fusion/container/generation/functions/map_tie.html b/doc/html/fusion/container/generation/functions/map_tie.html index 87173dfa..38e32dfa 100644 --- a/doc/html/fusion/container/generation/functions/map_tie.html +++ b/doc/html/fusion/container/generation/functions/map_tie.html @@ -3,7 +3,7 @@ map_tie - + @@ -26,34 +26,32 @@
- + Description

- Constructs a tie using a map sequence. + 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&> >
+
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 + 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
+
#define FUSION_MAX_MAP_SIZE 20
 
- + Parameters
@@ -83,9 +81,9 @@ @@ -103,54 +101,51 @@

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

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

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

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

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

- The arguments to map_tie + The arguments to map_tie

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

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

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

- + Header
-
-#include <boost/fusion/container/generation/map_tie.hpp>
+
#include <boost/fusion/container/generation/map_tie.hpp>
 #include <boost/fusion/include/map_tie.hpp>
 
- + Example
-
-struct int_key;
+
struct int_key;
 struct double_key;
 ...
 int i = 123;
diff --git a/doc/html/fusion/container/generation/functions/tiers.html b/doc/html/fusion/container/generation/functions/tiers.html
index 548bb727..e73ecdc4 100644
--- a/doc/html/fusion/container/generation/functions/tiers.html
+++ b/doc/html/fusion/container/generation/functions/tiers.html
@@ -3,7 +3,7 @@
 
 Tiers
 
-
+
 
 
 
@@ -32,33 +32,31 @@
             flavors.
           

Example:

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

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

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

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

- + Ignore

@@ -76,15 +74,14 @@ may return a sequence, only part of which you are interested in. For example:

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


-

[11] +

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

diff --git a/doc/html/fusion/container/generation/functions/vector_tie.html b/doc/html/fusion/container/generation/functions/vector_tie.html index 0bd4d472..767dac61 100644 --- a/doc/html/fusion/container/generation/functions/vector_tie.html +++ b/doc/html/fusion/container/generation/functions/vector_tie.html @@ -3,7 +3,7 @@ vector_tie - + @@ -26,34 +26,32 @@
- + Description

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

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
-vector<T0&, T1&,... TN&>
+
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 + 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
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -82,52 +80,49 @@

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

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

- The arguments to vector_tie + The arguments to vector_tie

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

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

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

- + Header
-
-#include <boost/fusion/container/generation/vector_tie.hpp>
+
#include <boost/fusion/container/generation/vector_tie.hpp>
 #include <boost/fusion/include/vector_tie.hpp>
 
- + Example
-
-int i = 123;
+
int i = 123;
 double d = 123.456;
 vector_tie(i, d)
 
diff --git a/doc/html/fusion/container/generation/metafunctions.html b/doc/html/fusion/container/generation/metafunctions.html index 0d62c1f0..a73c65e1 100644 --- a/doc/html/fusion/container/generation/metafunctions.html +++ b/doc/html/fusion/container/generation/metafunctions.html @@ -3,7 +3,7 @@ MetaFunctions - + diff --git a/doc/html/fusion/container/generation/metafunctions/list_tie.html b/doc/html/fusion/container/generation/metafunctions/list_tie.html index 9ee4acfc..b3dfa90a 100644 --- a/doc/html/fusion/container/generation/metafunctions/list_tie.html +++ b/doc/html/fusion/container/generation/metafunctions/list_tie.html @@ -3,7 +3,7 @@ list_tie - + @@ -26,33 +26,31 @@
- + Description

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

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

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

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

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

@@ -93,40 +91,37 @@

- The arguments to list_tie + The arguments to list_tie

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

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

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

- + Header
-
-#include <boost/fusion/container/generation/list_tie.hpp>
+
#include <boost/fusion/container/generation/list_tie.hpp>
 #include <boost/fusion/include/list_tie.hpp>
 
- + Example
-
-result_of::list_tie<int, double>::type
+
result_of::list_tie<int, double>::type
 
diff --git a/doc/html/fusion/container/generation/metafunctions/make_cons.html b/doc/html/fusion/container/generation/metafunctions/make_cons.html index 7865c497..0a8c3244 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_cons.html +++ b/doc/html/fusion/container/generation/metafunctions/make_cons.html @@ -3,7 +3,7 @@ make_cons - + @@ -26,22 +26,21 @@
- + Description

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

- + Synopsis
-
-template <typename Car, typename Cdr = nil>
+
template <typename Car, typename Cdr = nil>
 struct make_cons;
 
- + Parameters
@@ -71,7 +70,7 @@

- Car + Car

@@ -88,12 +87,12 @@

- Cdr + Cdr

- A cons + A cons

@@ -105,37 +104,34 @@
- + Expression Semantics
-
-result_of::make_cons<Car, Cdr>::type
+
result_of::make_cons<Car, Cdr>::type
 

- Return type: A cons with head element, Car, of type converted following the + Return type: A cons with head element, Car, of type converted following the rules for element - conversion, and tail, Cdr. + conversion, and tail, Cdr.

- Semantics: Create a cons from Car - (head) and optional Cdr + Semantics: Create a cons from Car + (head) and optional Cdr (tail).

- + Header
-
-#include <boost/fusion/container/generation/make_cons.hpp>
+
#include <boost/fusion/container/generation/make_cons.hpp>
 #include <boost/fusion/include/make_cons.hpp>
 
- + Example
-
-result_of::make_cons<char, result_of::make_cons<int>::type>::type
+
result_of::make_cons<char, result_of::make_cons<int>::type>::type
 
diff --git a/doc/html/fusion/container/generation/metafunctions/make_list.html b/doc/html/fusion/container/generation/metafunctions/make_list.html index 43db74f4..fc09b9c5 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_list.html +++ b/doc/html/fusion/container/generation/metafunctions/make_list.html @@ -3,7 +3,7 @@ make_list - + @@ -26,33 +26,31 @@
- + Description

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

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

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

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

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

@@ -93,41 +91,38 @@

- Template arguments to make_list + Template arguments to make_list

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

- Return type: A list with elements of types + Return type: A list with elements of types converted following the rules for element conversion.

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

- + Header
-
-#include <boost/fusion/container/generation/make_list.hpp>
+
#include <boost/fusion/container/generation/make_list.hpp>
 #include <boost/fusion/include/make_list.hpp>
 
- + Example
-
-result_of::make_list<int, const char(&)[7], double>::type
+
result_of::make_list<int, const char(&)[7], double>::type
 
diff --git a/doc/html/fusion/container/generation/metafunctions/make_map.html b/doc/html/fusion/container/generation/metafunctions/make_map.html index d4d83836..131962ad 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_map.html +++ b/doc/html/fusion/container/generation/metafunctions/make_map.html @@ -3,7 +3,7 @@ make_map - + @@ -26,36 +26,34 @@
- + Description

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

- + Synopsis
-
-template <
+
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 + 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
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -85,9 +83,9 @@

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

@@ -97,16 +95,16 @@

- Keys associated with T0, T1,... TN + Keys associated with T0, T1,... TN

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

@@ -116,60 +114,57 @@

- Data associated with keys K0, K1,... KN + Data associated with keys K0, K1,... KN

- + Expression Semantics
-
-resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
+
resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
 

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

- Semantics: A map with fusion::pair elements where the second_type is converted following + Semantics: A map with fusion::pair elements where the second_type is converted following the rules for element conversion.

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

- + Header
-
-#include <boost/fusion/container/generation/make_map.hpp>
+
#include <boost/fusion/container/generation/make_map.hpp>
 #include <boost/fusion/include/make_map.hpp>
 
- + Example
-
-result_of::make_map<int, double, char, double>::type
+
result_of::make_map<int, double, char, double>::type
 
- + See also

- fusion::pair + fusion::pair



-

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

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

diff --git a/doc/html/fusion/container/generation/metafunctions/make_set.html b/doc/html/fusion/container/generation/metafunctions/make_set.html index 85ffe4e6..faba3830 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_set.html +++ b/doc/html/fusion/container/generation/metafunctions/make_set.html @@ -3,7 +3,7 @@ make_set - + @@ -26,34 +26,32 @@
- + Description

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

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
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 + 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
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -82,9 +80,9 @@

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

@@ -94,51 +92,48 @@

- The arguments to make_set + The arguments to make_set

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

- Return type: A set with elements of types converted + Return type: A set with elements of types converted following the rules for element conversion.

- Semantics: Create a set from T0, T1,... TN. + Semantics: Create a set from T0, T1,... TN.

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

- + Header
-
-#include <boost/fusion/container/generation/make_set.hpp>
+
#include <boost/fusion/container/generation/make_set.hpp>
 #include <boost/fusion/include/make_set.hpp>
 
- + Example
-
-result_of::make_set<int, char, double>::type
+
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 +

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

diff --git a/doc/html/fusion/container/generation/metafunctions/make_vector.html b/doc/html/fusion/container/generation/metafunctions/make_vector.html index a03c568b..de08c769 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_vector.html +++ b/doc/html/fusion/container/generation/metafunctions/make_vector.html @@ -3,7 +3,7 @@ make_vector - + @@ -26,33 +26,31 @@
- + Description

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

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

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

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -81,9 +79,9 @@

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

@@ -93,41 +91,38 @@

- Template arguments to make_vector + Template arguments to make_vector

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

- Return type: A vector with elements of types + Return type: A vector with elements of types converted following the rules for element conversion.

- Semantics: Create a vector from T0, T1,... TN. + Semantics: Create a vector from T0, T1,... TN.

- + Header
-
-#include <boost/fusion/container/generation/make_list.hpp>
+
#include <boost/fusion/container/generation/make_list.hpp>
 #include <boost/fusion/include/make_list.hpp>
 
- + Example
-
-result_of::make_vector<int, const char(&)[7], double>::type
+
result_of::make_vector<int, const char(&)[7], double>::type
 
diff --git a/doc/html/fusion/container/generation/metafunctions/map_tie.html b/doc/html/fusion/container/generation/metafunctions/map_tie.html index b41c1ba8..24c3fcd4 100644 --- a/doc/html/fusion/container/generation/metafunctions/map_tie.html +++ b/doc/html/fusion/container/generation/metafunctions/map_tie.html @@ -3,7 +3,7 @@ map_tie - + @@ -26,33 +26,31 @@
- + Description

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

- + Synopsis
-
-template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
+
template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
 struct map_tie;
 

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

-
-#define FUSION_MAX_MAP_SIZE 20
+
#define FUSION_MAX_MAP_SIZE 20
 
- + Parameters
@@ -82,9 +80,9 @@

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

@@ -94,16 +92,16 @@

- The key types for map_tie + The key types for map_tie

- D0, + D0, D1,... - DN + DN

@@ -113,42 +111,39 @@

- The arguments types for map_tie + The arguments types for map_tie

- + Expression Semantics
-
-result_of::map_tie<K0, K1,... KN, D0, D1,... DN>::type;
+
result_of::map_tie<K0, K1,... KN, D0, D1,... DN>::type;
 

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

- Semantics: Create a map of references from D0, D1,... DN with keys K0, K1,... KN + Semantics: Create a map of references from D0, D1,... DN with keys K0, K1,... KN

- + Header
-
-#include <boost/fusion/container/generation/map_tie.hpp>
+
#include <boost/fusion/container/generation/map_tie.hpp>
 #include <boost/fusion/include/map_tie.hpp>
 
- + Example
-
-struct int_key;
+
struct int_key;
 struct double_key;
 ...
 result_of::map_tie<int_key, double_key, int, double>::type
diff --git a/doc/html/fusion/container/generation/metafunctions/vector_tie.html b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
index 01797d8f..8dbfd3bb 100644
--- a/doc/html/fusion/container/generation/metafunctions/vector_tie.html
+++ b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
@@ -3,7 +3,7 @@
 
 vector_tie
 
-
+
 
 
 
@@ -26,33 +26,31 @@
 
 
- + Description

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

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

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

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_VECTOR_SIZE 20
 
- + Parameters
@@ -81,9 +79,9 @@

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

@@ -93,40 +91,37 @@

- The arguments to vector_tie + The arguments to vector_tie

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

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

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

- + Header
-
-#include <boost/fusion/container/generation/vector_tie.hpp>
+
#include <boost/fusion/container/generation/vector_tie.hpp>
 #include <boost/fusion/include/vector_tie.hpp>
 
- + Example
-
-result_of::vector_tie<int, double>::type
+
result_of::vector_tie<int, double>::type
 
diff --git a/doc/html/fusion/container/list.html b/doc/html/fusion/container/list.html index ec9a83e1..d1e3a35d 100644 --- a/doc/html/fusion/container/list.html +++ b/doc/html/fusion/container/list.html @@ -3,7 +3,7 @@ list - + @@ -26,33 +26,31 @@

- + Description

- list is a list is a Forward - Sequence of heterogenous typed data built on top of cons. It is more efficient than - vector + Sequence of heterogenous typed data built on top of cons. It is more efficient than + vector when the target sequence is constructed piecemeal (a data at a time). The runtime cost of access to each element is peculiarly constant (see Recursive Inlined Functions).

- + Header

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

- + Synopsis

-
-template <
+
template <
     typename T0 = unspecified
   , typename T1 = unspecified
   , typename T2 = unspecified
@@ -62,24 +60,22 @@
 struct list;
 

- The variadic class interface accepts 0 - to FUSION_MAX_LIST_SIZE elements, - where FUSION_MAX_LIST_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_LIST_SIZE elements, + where FUSION_MAX_LIST_SIZE + is a user definable predefined maximum that defaults to 10. Example:

-
-list<int, char, double>
+
list<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_LIST_SIZE + You may define the preprocessor constant FUSION_MAX_LIST_SIZE before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_LIST_SIZE 20
+
#define FUSION_MAX_LIST_SIZE 20
 

- + Template parameters

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

- T0...TN + T0...TN

@@ -124,7 +120,7 @@

- + Model of

- + Expression Semantics

@@ -187,7 +183,7 @@

- L() + L()

@@ -199,79 +195,78 @@

- L(e0, e1,... - en) + L(e0, e1,... + en)

- Creates a list with elements e0...en. + Creates a list with elements e0...en.

- L(s) + L(s)

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

- l = - s + l = + s

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

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

- The Nth element from the beginning of the sequence; see at. + 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;
+
list<int, float> l(12, 5.5f);
+std::cout << at_c<0>(l) << std::endl;
+std::cout << at_c<1>(l) << std::endl;
 
diff --git a/doc/html/fusion/container/map.html b/doc/html/fusion/container/map.html index ff01a0c8..f70586a7 100644 --- a/doc/html/fusion/container/map.html +++ b/doc/html/fusion/container/map.html @@ -3,7 +3,7 @@ map - + @@ -26,35 +26,33 @@

- + Description

map is an Associative Sequence of heteregenous typed data elements. Each element is a key/data - pair (see fusion::pair) + pair (see fusion::pair) where the key has no data (type only). Type identity is used to impose an equivalence relation on keys. A map may contain at most one element for each key. Membership testing and element key lookup has constant runtime complexity (see Overloaded Functions).

- + Header

-
-#include <boost/fusion/container/map.hpp>
+
#include <boost/fusion/container/map.hpp>
 #include <boost/fusion/include/map.hpp>
 #include <boost/fusion/container/map_fwd.hpp>
 #include <boost/fusion/include/map_fwd.hpp>
 

- + Synopsis

-
-template <
+
template <
     typename T0 = unspecified
   , typename T1 = unspecified
   , typename T2 = unspecified
@@ -64,24 +62,22 @@
 struct map;
 

- The variadic class interface accepts 0 - to FUSION_MAX_MAP_SIZE elements, - where FUSION_MAX_MAP_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_MAP_SIZE elements, + where FUSION_MAX_MAP_SIZE + is a user definable predefined maximum that defaults to 10. Example:

-
-map<pair<int, char>, pair<char, char>, pair<double, char> >
+
map<pair<int, char>, pair<char, char>, pair<double, char> >
 

- You may define the preprocessor constant FUSION_MAX_MAP_SIZE + You may define the preprocessor constant FUSION_MAX_MAP_SIZE before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_MAP_SIZE 20
+
#define FUSION_MAX_MAP_SIZE 20
 

- + Template parameters

@@ -110,7 +106,7 @@

- T0...TN + T0...TN

@@ -126,7 +122,7 @@

- + Model of

    @@ -139,19 +135,19 @@

    Notation

    -
    M
    +
    M

    - A map type + A map type

    -
    m
    +
    m

    - An instance of map + An instance of map

    -
    e0...en
    +
    e0...en

    - Heterogeneous key/value pairs (see fusion::pair) + Heterogeneous key/value pairs (see fusion::pair)

    -
    s
    +
    s

    A Forward Sequence @@ -159,7 +155,7 @@

    - + Expression Semantics

    @@ -191,7 +187,7 @@

    - M() + M()

    @@ -203,64 +199,63 @@

    - M(e0, e1,... - en) + M(e0, e1,... + en)

    - Creates a map with element pairs e0...en. + Creates a map with element pairs e0...en.

    - M(s) + M(s)

    Copy constructs a map from a Forward - Sequence s. + Sequence s.

    - m = - s + m = + s

    - Assigns to a map, m, + Assigns to a map, m, from a Forward - Sequence s. + Sequence s.

- + Example

-
-typedef map<
-    pair<int, char>
-  , pair<double, std::string> >
+
typedef map<
+    pair<int, char>
+  , pair<double, std::string> >
 map_type;
 
 map_type m(
-    make_pair<int>('X')
-  , make_pair<double>("Men"));
+    make_pair<int>('X')
+  , make_pair<double>("Men"));
 
-std::cout << at_key<int>(m) << std::endl;
-std::cout << at_key<double>(m) << std::endl;
+std::cout << at_key<int>(m) << std::endl;
+std::cout << at_key<double>(m) << std::endl;
 
diff --git a/doc/html/fusion/container/set.html b/doc/html/fusion/container/set.html index 61fba0c4..0783bc2e 100644 --- a/doc/html/fusion/container/set.html +++ b/doc/html/fusion/container/set.html @@ -3,7 +3,7 @@ set - + @@ -26,7 +26,7 @@

- + Description

@@ -39,21 +39,19 @@ Functions).

- + Header

-
-#include <boost/fusion/container/set.hpp>
+
#include <boost/fusion/container/set.hpp>
 #include <boost/fusion/include/set.hpp>
 #include <boost/fusion/container/set_fwd.hpp>
 #include <boost/fusion/include/set_fwd.hpp>
 

- + Synopsis

-
-template <
+
template <
     typename T0 = unspecified
   , typename T1 = unspecified
   , typename T2 = unspecified
@@ -63,24 +61,22 @@
 struct set;
 

- The variadic class interface accepts 0 - to FUSION_MAX_SET_SIZE elements, - where FUSION_MAX_SET_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic class interface accepts 0 + to FUSION_MAX_SET_SIZE elements, + where FUSION_MAX_SET_SIZE + is a user definable predefined maximum that defaults to 10. Example:

-
-set<int, char, double>
+
set<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_SET_SIZE + You may define the preprocessor constant FUSION_MAX_SET_SIZE before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_SET_SIZE 20
+
#define FUSION_MAX_SET_SIZE 20
 

- + Template parameters

@@ -109,7 +105,7 @@

- T0...TN + T0...TN

@@ -125,7 +121,7 @@

- + Model of

    @@ -138,19 +134,19 @@

    Notation

    -
    S
    +
    S

    - A set type + A set type

    -
    s
    +
    s

    - An instance of set + An instance of set

    -
    e0...en
    +
    e0...en

    Heterogeneous values

    -
    fs
    +
    fs

    A Forward Sequence @@ -158,7 +154,7 @@

    - + Expression Semantics

    @@ -190,7 +186,7 @@

    - S() + S()

    @@ -202,58 +198,57 @@

    - S(e0, e1,... - en) + S(e0, e1,... + en)

    - Creates a set with elements e0...en. + Creates a set with elements e0...en.

    - S(fs) + S(fs)

    Copy constructs a set from a Forward - Sequence fs. + Sequence fs.

    - s = - fs + s = + fs

    - Assigns to a set, s, + Assigns to a set, s, from a Forward - Sequence fs. + Sequence fs.

- + Example

-
-typedef set<int, float> S;
+
typedef set<int, float> S;
 S s(12, 5.5f);
-std::cout << at_key<int>(s) << std::endl;
-std::cout << at_key<float>(s) << std::endl;
-std::cout << result_of::has_key<S, double>::value << std::endl;
+std::cout << at_key<int>(s) << std::endl;
+std::cout << at_key<float>(s) << std::endl;
+std::cout << result_of::has_key<S, double>::value << std::endl;
 
diff --git a/doc/html/fusion/container/vector.html b/doc/html/fusion/container/vector.html index b4ab929d..751a0e3b 100644 --- a/doc/html/fusion/container/vector.html +++ b/doc/html/fusion/container/vector.html @@ -3,7 +3,7 @@ vector - + @@ -26,24 +26,23 @@

- + Description

- vector is a vector is a Random Access Sequence of heterogenous typed data structured as a simple - struct where each element is - held as a member variable. vector + struct where each element is + held as a member variable. vector is the simplest of the Fusion sequence container, and in many cases the most efficient.

- + Header

-
-#include <boost/fusion/container/vector.hpp>
+
#include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/include/vector.hpp>
 #include <boost/fusion/container/vector/vector_fwd.hpp>
 #include <boost/fusion/include/vector_fwd.hpp>
@@ -61,15 +60,13 @@
 #include <boost/fusion/include/vector50.hpp>
 

- + Synopsis

- Numbered forms + Numbered forms

-
-template <>
-struct vector0;
+
struct vector0;
 
 template <typename T0>
 struct vector1;
@@ -86,10 +83,9 @@
 struct vectorN;
 

- Variadic form + Variadic form

-
-template <
+
template <
     typename T0 = unspecified
   , typename T1 = unspecified
   , typename T2 = unspecified
@@ -101,28 +97,25 @@
 

The numbered form accepts the exact number of elements. Example:

-
-vector3<int, char, double>
+
vector3<int, char, double>
 

- The variadic form accepts 0 to - FUSION_MAX_VECTOR_SIZE elements, - where FUSION_MAX_VECTOR_SIZE - is a user definable predefined maximum that defaults to 10. + The variadic form accepts 0 to + FUSION_MAX_VECTOR_SIZE elements, + where FUSION_MAX_VECTOR_SIZE + is a user definable predefined maximum that defaults to 10. Example:

-
-vector<int, char, double>
+
vector<int, char, double>
 

- You may define the preprocessor constant FUSION_MAX_VECTOR_SIZE + You may define the preprocessor constant FUSION_MAX_VECTOR_SIZE before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_VECTOR_SIZE 20
 

- + Template parameters

@@ -151,7 +144,7 @@

- T0...TN + T0...TN

@@ -167,7 +160,7 @@

- + Model of

- + Expression Semantics

@@ -226,7 +219,7 @@

- V() + V()

@@ -238,56 +231,55 @@

- V(e0, e1,... - en) + V(e0, e1,... + en)

- Creates a vector with elements e0...en. + Creates a vector with elements e0...en.

- V(s) + V(s)

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

- v = - s + v = + s

- Assigns to a vector, v, + Assigns to a vector, v, from a Forward - Sequence, s. + Sequence, s.

- + Example

-
-vector<int, float> v(12, 5.5f);
-std::cout << at_c<0>(v) << std::endl;
-std::cout << at_c<1>(v) << std::endl;
+
vector<int, float> v(12, 5.5f);
+std::cout << at_c<0>(v) << std::endl;
+std::cout << at_c<1>(v) << std::endl;
 
diff --git a/doc/html/fusion/extension.html b/doc/html/fusion/extension.html index 5c2a61b6..9a243c24 100644 --- a/doc/html/fusion/extension.html +++ b/doc/html/fusion/extension.html @@ -3,7 +3,7 @@ Extension - + diff --git a/doc/html/fusion/extension/ext_full.html b/doc/html/fusion/extension/ext_full.html index 879138c3..b25c4cdf 100644 --- a/doc/html/fusion/extension/ext_full.html +++ b/doc/html/fusion/extension/ext_full.html @@ -3,7 +3,7 @@ The Full Extension Mechanism - + @@ -27,8 +27,8 @@ The Full Extension Mechanism

The Fusion library is designed to be extensible, new sequences types can - easily be added. In fact, the library support for std::pair, - boost::array and MPL + easily be added. In fact, the library support for std::pair, + boost::array and MPL sequences is entirely provided using the extension mechanism.

@@ -48,15 +48,14 @@

- + Our example

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

-
-namespace example
+
namespace example
 {
     struct example_struct
     {
@@ -73,14 +72,14 @@
 

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

- + Enabling Tag Dispatching

@@ -90,19 +89,17 @@ 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 {
+
namespace example {
     struct example_sequence_tag; // Only definition needed
 }
 

- Next we need to enable the traits::tag_of + Next we need to enable the traits::tag_of metafunction to return our newly chosen tag type for operations involving - our sequence. This is done by specializing traits::tag_of + our sequence. This is done by specializing traits::tag_of for our sequence type.

-
-#include <boost/fusion/support/tag_of_fwd.hpp>
+
#include <boost/fusion/support/tag_of_fwd.hpp>
 #include <boost/fusion/include/tag_of_fwd.hpp>
 
 namespace boost { namespace fusion { namespace traits {
@@ -114,17 +111,16 @@
 }}}
 

- traits::tag_of also has a second template argument, - that can be used in conjuction with boost::enable_if + traits::tag_of also has a second template argument, + that can be used in conjuction with boost::enable_if to provide tag support for groups of related types. This feature is not necessary for our sequence, but for an example see the code in:

-
-#include <boost/fusion/adapted/array/tag_of.hpp>
+
#include <boost/fusion/adapted/array/tag_of.hpp>
 #include <boost/fusion/include/tag_of.hpp>
 

- + Designing a suitable iterator

@@ -134,12 +130,11 @@ a random access iterator in our example.

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

-
-template<typename Struct, int Pos>
+
template<typename Struct, int Pos>
 struct example_struct_iterator
     : boost::fusion::iterator_base<example_struct_iterator<Struct, Pos> >
 {
@@ -163,41 +158,40 @@
           index of the current element.
         
 
  • - The typedefs struct_type - and index provide convenient + The typedefs struct_type + and index provide convenient access to information we will need later in the implementation.
  • - The typedef category allows - the traits::category_of + The typedef category allows + the traits::category_of metafunction to establish the traversal category of the iterator.
  • - The constructor stores a reference to the example_struct + The constructor stores a reference to the example_struct being iterated over.
  • We also need to enable tag dispatching for our iterator type, with another specialization - of traits::tag_of. + of traits::tag_of.

    In isolation, the iterator implementation is pretty dry. Things should become clearer as we add features to our implementation.

    - + A first couple of instructive features

    - To start with, we will get the result_of::value_of metafunction working. To - do this, we provide a specialization of the boost::fusion::extension::value_of_impl + To start with, we will get the result_of::value_of metafunction working. To + do this, we provide a specialization of the boost::fusion::extension::value_of_impl template for our iterator's tag type.

    -
    -template<>
    +
    template<>
     struct value_of_impl<example::example_struct_iterator_tag>
     {
         template<typename Iterator>
    @@ -218,22 +212,21 @@
     

    The implementation itself is pretty simple, it just uses 2 partial specializations - to provide the type of the 2 different members of example_struct, + to provide the type of the 2 different members of example_struct, based on the index of the iterator.

    - To understand how value_of_impl - is used by the library we will look at the implementation of value_of: + To understand how value_of_impl + is used by the library we will look at the implementation of value_of:

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

    - So value_of + So value_of uses tag dispatching to select an MPL Metafunction Class to provide its functionality. You will notice @@ -241,10 +234,9 @@

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

    -
    -template<>
    +
    template<>
     struct deref_impl<example::example_struct_iterator_tag>
     {
         template<typename Iterator>
    @@ -279,17 +271,16 @@
     }
     

    - The use of deref_impl is - very similar to that of value_of_impl, - but it also provides some runtime functionality this time via the call static member function. To see how - deref_impl is used, lets - have a look at the implementation of deref: + The use of deref_impl is + very similar to that of value_of_impl, + but it also provides some runtime functionality this time via the call static member function. To see how + deref_impl is used, lets + have a look at the implementation of deref:

    -
    -namespace result_of
    +
    namespace result_of
     {
         template <typename Iterator>
    -    struct deref
    +    struct deref
             : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
                 template apply<Iterator>
         {};
    @@ -297,24 +288,24 @@
     
     template <typename Iterator>
     typename result_of::deref<Iterator>::type
    -deref(Iterator const& i)
    +deref(Iterator const& i)
     {
         typedef result_of::deref<Iterator> deref_meta;
         return deref_meta::call(i);
     }
     

    - So again result_of::deref uses tag - dispatching in exactly the same way as the value_of implementation. The runtime - functionality used by deref is provided by the call static function of the selected MPL + So again result_of::deref uses tag + dispatching in exactly the same way as the value_of implementation. The runtime + functionality used by deref is provided by the call static function of the selected MPL Metafunction Class.

    - The actual implementation of deref_impl - is slightly more complex than that of value_of_impl. - We also need to implement the call + The actual implementation of deref_impl + is slightly more complex than that of value_of_impl. + We also need to implement the call function, which returns a reference to the appropriate member of the underlying - sequence. We also require a little bit of metaprogramming to return const references if the underlying sequence + sequence. We also require a little bit of metaprogramming to return const references if the underlying sequence is const.

    @@ -322,26 +313,25 @@ -
    [Note] Note

    +

    Although there is a fair amount of left to do to produce a fully fledged - Fusion sequence, value_of and deref illustrate all the signficant + Fusion sequence, value_of and deref illustrate all the signficant concepts required. The remainder of the process is very repetitive, simply - requiring implementation of a suitable xxxx_impl - for each feature xxxx. + requiring implementation of a suitable xxxx_impl + for each feature xxxx.

    - + Implementing the remaining iterator functionality

    - Ok, now we have seen the way value_of and deref work, everything else will + Ok, now we have seen the way value_of and deref work, everything else will work in pretty much the same way. Lets start with forward iteration, by providing - a next_impl: + a next_impl:

    -
    -template<>
    +
    template<>
     struct next_impl<example::example_struct_iterator_tag>
     {
         template<typename Iterator>
    @@ -360,44 +350,43 @@
     };
     

    - This should be very familiar from our deref_impl + This should be very familiar from our deref_impl implementation, we will be using this approach again and again now. Our design - is simply to increment the index + is simply to increment the index counter to move on to the next element. The various other iterator manipulations - we need to perform will all just involve simple calculations with the index variables. + we need to perform will all just involve simple calculations with the index variables.

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

    - Full implementations of prior_impl, - advance_impl, distance_impl and equal_to_impl + Full implementations of prior_impl, + advance_impl, distance_impl and equal_to_impl are provided in the example code.

    - + Implementing the intrinsic functions of the sequence

    In order that Fusion can correctly identify our sequence as a Fusion sequence, - we need to enable is_sequence - for our sequence type. As usual we just create an impl + we need to enable is_sequence + for our sequence type. As usual we just create an impl type specialized for our sequence tag:

    -
    -template<>
    +
    template<>
     struct is_sequence_impl<example::example_sequence_tag>
     {
         template<typename T>
    @@ -405,18 +394,17 @@
     };
     

    - We've some similar formalities to complete, providing category_of_impl - so Fusion can correctly identify our sequence type, and is_view_impl + We've some similar formalities to complete, providing category_of_impl + so Fusion can correctly identify our sequence type, and is_view_impl so Fusion can correctly identify our sequence as not being a View type. Implementations are provide in the example code.

    Now we've completed some formalities, on to more interesting features. Lets - get begin working so that we can get + get begin working so that we can get an iterator to start accessing the data in our sequence.

    -
    -template<>
    +
    template<>
     struct begin_impl<example::example_sequence_tag>
     {
         template<typename Sequence>
    @@ -435,37 +423,36 @@
     

    The implementation uses the same ideas we have applied throughout, in this case we are just creating one of the iterators we developed earlier, pointing - to the first element in the sequence. The implementation of end is very similar, and is provided + to the first element in the sequence. The implementation of end is very similar, and is provided in the example code.

    For our Random - Access Sequence we will also need to implement size_impl, - value_at_impl and at_impl. + Access Sequence we will also need to implement size_impl, + value_at_impl and at_impl.

    - + Enabling our type as an associative container

    - In order for example_struct + In order for example_struct to serve as an associative container, we need to enable 3 lookup features, - at_key, value_at_key and has_key. We also need to provide - an implementation of the is_associative + at_key, value_at_key and has_key. We also need to provide + an implementation of the is_associative trait so that our sequence can be correctly identified as an associative container.

    - To implement at_key_impl - we need to associate the fields::age and - fields::age types described in the Quick - Start guide with the appropriate members of example_struct. + To implement at_key_impl + we need to associate the fields::age and + fields::age types described in the Quick + Start guide with the appropriate members of example_struct. Our implementation is as follows:

    -
    -template<>
    +
    template<>
     struct at_key_impl<example::example_sequence_tag>
     {
         template<typename Sequence, typename Key>
    @@ -504,16 +491,16 @@
     

    Its all very similar to the implementations we've seen previously, such as - deref_impl and value_of_impl. Instead of identifying the + deref_impl and value_of_impl. Instead of identifying the members by index or position, we are now selecting them using the types - fields::name and fields::age. - The implementations of value_at_key_impl - and has_key_impl are equally + fields::name and fields::age. + The implementations of value_at_key_impl + and has_key_impl are equally straightforward, and are provided in the example code, along with an implementation - of is_associative_impl. + of is_associative_impl.

    - + Summary

    @@ -523,8 +510,8 @@ pattern.

    - The support for std::pair, MPL - sequences, and boost::array all use the same approach, and provide + The support for std::pair, MPL + sequences, and boost::array all use the same approach, and provide additional examples of the approach for a variety of types.

    diff --git a/doc/html/fusion/extension/iterator_facade.html b/doc/html/fusion/extension/iterator_facade.html index ce1c74f7..b5870ca0 100644 --- a/doc/html/fusion/extension/iterator_facade.html +++ b/doc/html/fusion/extension/iterator_facade.html @@ -3,7 +3,7 @@ Iterator Facade - + @@ -26,24 +26,23 @@

    - + Description

    - The iterator_facade + The iterator_facade template provides an intrusive mechanism for producing a conforming Fusion iterator.

    - + Synopsis

    -
    -template<typename Derived, typename TravesalTag>
    +
    template<typename Derived, typename TravesalTag>
     struct iterator_facade;
     

    - + Usage

    @@ -57,7 +56,7 @@ type.

    -

    Table 1.93. Parameters

    +

    Table 1.93. Parameters

    @@ -79,20 +78,20 @@

    - iterator, It, It1, - It2 + iterator, It, It1, + It2

    - A type derived from iterator_facade + A type derived from iterator_facade

    - N + N

    @@ -106,7 +105,7 @@
    -

    Table 1.94. Key Expressions

    +

    Table 1.94. Key Expressions

    @@ -134,12 +133,12 @@ @@ -310,13 +309,13 @@ @@ -365,19 +364,18 @@

    - iterator::template value_of<It>::type + iterator::template value_of<It>::type

    - The element stored at iterator position It + The element stored at iterator position It

    @@ -151,12 +150,12 @@

    - iterator::template deref<It>::type + iterator::template deref<It>::type

    - The type returned when dereferencing an iterator of type It + The type returned when dereferencing an iterator of type It

    @@ -168,12 +167,12 @@

    - iterator::template deref<It>::call(it) + iterator::template deref<It>::call(it)

    - Dereferences iterator it + Dereferences iterator it

    @@ -185,12 +184,12 @@

    - iterator::template next<It>::type + iterator::template next<It>::type

    - The type of the next element from It + The type of the next element from It

    @@ -202,12 +201,12 @@

    - iterator::template next<It>::call(it) + iterator::template next<It>::call(it)

    - The next iterator after it + The next iterator after it

    @@ -219,12 +218,12 @@

    - iterator::template prior<It>::type + iterator::template prior<It>::type

    - The type of the next element from It + The type of the next element from It

    @@ -236,12 +235,12 @@

    - iterator::template prior<It>::call(it) + iterator::template prior<It>::call(it)

    - The next iterator after it + The next iterator after it

    @@ -253,51 +252,51 @@

    - iterator::template advance<It, N>::type + iterator::template advance<It, N>::type

    - The type of an iterator advanced N - elements from It + The type of an iterator advanced N + elements from It

    - Implemented in terms of next - and prior + Implemented in terms of next + and prior

    - iterator::template advance<It, N>::call(it) + iterator::template advance<It, N>::call(it)

    - An iterator advanced N - elements from it + An iterator advanced N + elements from it

    - Implemented in terms of next - and prior + Implemented in terms of next + and prior

    - iterator::template distance<It1, It2>::type + iterator::template distance<It1, It2>::type

    - The distance between iterators of type It1 - and It2 as an MPL + The distance between iterators of type It1 + and It2 as an MPL Integral Constant

    - iterator::template distance<It1, It2>::call(it1, it2) + iterator::template distance<It1, It2>::call(it1, it2)

    - The distance between iterator it1 - and it2 + The distance between iterator it1 + and it2

    @@ -328,36 +327,36 @@

    - iterator::template equal_to<It1, It2>::type + iterator::template equal_to<It1, It2>::type

    - The distance between iterators of type It1 - and It2 + The distance between iterators of type It1 + and It2

    - boost::same_type<It1, It2>::type + boost::same_type<It1, It2>::type

    - iterator::template equal_to<It1, It2>::call(it1, it2) + iterator::template equal_to<It1, It2>::call(it1, it2)

    - The distance between iterators it1 - and it2 + The distance between iterators it1 + and it2

    - boost::same_type<It1, It2>::type() + boost::same_type<It1, It2>::type()

    - + Header

    -
    -#include <boost/fusion/iterator/iterator_facade.hpp>
    +
    #include <boost/fusion/iterator/iterator_facade.hpp>
     #include <boost/fusion/include/iterator_facade.hpp>
     

    - + Example

    - A full working example using iterator_facade is provided in triple.cpp + A full working example using iterator_facade is provided in triple.cpp in the extension examples.

    diff --git a/doc/html/fusion/extension/sequence_facade.html b/doc/html/fusion/extension/sequence_facade.html index 23a08090..5a2f18bf 100644 --- a/doc/html/fusion/extension/sequence_facade.html +++ b/doc/html/fusion/extension/sequence_facade.html @@ -3,7 +3,7 @@ Sequence Facade - + @@ -26,32 +26,31 @@

    - + Description

    - The sequence_facade + The sequence_facade template provides an intrusive mechanism for producing a conforming Fusion iterator.

    - + Synopsis

    -
    -template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
    +
    template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
     struct sequence_facade;
     

    - + Usage

    - The user of sequence_facade derives his sequence - type from a specialization of sequence_facade and passes the derived + The user of sequence_facade derives his sequence + type from a specialization of sequence_facade and passes the derived sequence type as the first template parameter. The second template parameter should be the traversal category of the sequence being implemented. The 3rd - parameter should be set to mpl::true_ + parameter should be set to mpl::true_ if the sequence is a view.

    @@ -59,7 +58,7 @@ type.

    -

    Table 1.91. Parameters

    +

    Table 1.91. Parameters

    @@ -81,19 +80,19 @@

    - sequence, Seq + sequence, Seq

    - A type derived from sequence_facade + A type derived from sequence_facade

    - N + N

    @@ -107,7 +106,7 @@
    -

    Table 1.92. Key Expressions

    +

    Table 1.92. Key Expressions

    @@ -129,60 +128,60 @@ @@ -243,19 +242,18 @@

    - sequence::template begin<Seq>::type + sequence::template begin<Seq>::type

    - The type of an iterator to the beginning of a sequence of type Seq + The type of an iterator to the beginning of a sequence of type Seq

    - sequence::template begin<Seq>::call(seq) + sequence::template begin<Seq>::call(seq)

    - An iterator to the beginning of sequence seq + An iterator to the beginning of sequence seq

    - sequence::template end<Seq>::type + sequence::template end<Seq>::type

    - The type of an iterator to the end of a sequence of type Seq + The type of an iterator to the end of a sequence of type Seq

    - sequence::template end<Seq>::call(seq) + sequence::template end<Seq>::call(seq)

    - An iterator to the end of sequence seq + An iterator to the end of sequence seq

    - sequence::template size<Seq>::type + sequence::template size<Seq>::type

    - The size of a sequence of type Seq + The size of a sequence of type Seq as an MPL Integral Constant

    @@ -191,51 +190,51 @@

    - sequence::template size<Seq>::call(seq) + sequence::template size<Seq>::call(seq)

    - The size of sequence seq + The size of sequence seq

    - sequence::template at<Seq, N>::type + sequence::template at<Seq, N>::type

    - The type of element N - in a sequence of type Seq + The type of element N + in a sequence of type Seq

    - sequence::template at<Seq, N>::call(seq) + sequence::template at<Seq, N>::call(seq)

    - Element N in sequence - seq + Element N in sequence + seq

    - sequence::template value_at<Sequence, N>::type + sequence::template value_at<Sequence, N>::type

    - The type of the Nth - element in a sequence of type Seq + The type of the Nth + element in a sequence of type Seq

    - + Include

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

    - + Example

    - A full working example using sequence_facade is provided in triple.cpp + A full working example using sequence_facade is provided in triple.cpp in the extension examples.

    diff --git a/doc/html/fusion/functional.html b/doc/html/fusion/functional.html index d5ad9ee6..89f008a3 100644 --- a/doc/html/fusion/functional.html +++ b/doc/html/fusion/functional.html @@ -3,7 +3,7 @@ Functional - + @@ -40,16 +40,16 @@
    Functions
    Metafunctions
    +
    Limits
    Adapters
    fused
    fused_procedure
    fused_function_object
    -
    unfused_generic
    -
    unfused_lvalue_args
    -
    unfused_rvalue_args
    +
    unfused
    unfused_typed
    +
    Limits
    Generation
    @@ -61,48 +61,48 @@ Components to call functions and function objects and to make Fusion code callable through a function object interface.

    -

    - /functional.hpp> -

    +

    + + Header +

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

    - + Fused and unfused forms

    What is a function call?

    -
    -f (a,b,c)
    +
    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) + 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)
    +
    invoke(f,my_sequence)
     

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

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

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

    - + Calling functions and function objects

    @@ -129,8 +129,11 @@ variant has a corresponding generator function template that returns an adapter instance for the given argument.

    +

    + Constructors can be called applying Boost.Functional/Factory. +

    - + Making Fusion code callable through a function object interface

    @@ -141,11 +144,14 @@ 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. + The library provides both a strictly typed and a generic variant for this transformation. + The latter should be used in combination with Boost.Functional/Forward + to attack The + Forwarding Problem. +

    +

    + Both variants have a corresponding generator function template that returns + an adapter instance for the given argument.

    diff --git a/doc/html/fusion/functional/adapters.html b/doc/html/fusion/functional/adapters.html index 6b152eb6..b87649da 100644 --- a/doc/html/fusion/functional/adapters.html +++ b/doc/html/fusion/functional/adapters.html @@ -3,11 +3,10 @@ Adapters - + - + @@ -21,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    Function object templates to transform a particular target function. @@ -50,7 +48,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html index 53e548d3..964bf42f 100644 --- a/doc/html/fusion/functional/adapters/fused.html +++ b/doc/html/fusion/functional/adapters/fused.html @@ -3,7 +3,7 @@ fused - + @@ -26,7 +26,7 @@
    - + Description

    @@ -41,33 +41,35 @@

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for a target function object that is const or, if the target function object is held by value, the adapter is const - these semantics have nothing to do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified + to the type of object pointed to by this which is specified with the first element in the sequence passed to the adapter).

    If the target function is a pointer to a class members, the corresponding object can be specified as a reference, pointer, or smart pointer. In case - of the latter, a freestanding get_pointer function must - be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). -

    -

    - /functional/adapter/fused.hpp> + 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>
    +
    template <typename Function>
     class fused;
     
    - + Template parameters
    @@ -97,7 +99,7 @@

    - Function + Function

    @@ -114,7 +116,7 @@
    - + Model of
      @@ -128,29 +130,29 @@

      Notation

      -
      R
      +
      R

      A possibly const qualified Deferred Callable Object type or reference type thereof

      -
      r
      +
      r

      - An object convertible to R + An object convertible to R

      -
      s
      +
      s

      A Sequence of arguments that - are accepted by r + are accepted by r

      -
      f
      +
      f

      - An instance of fused<R> + An instance of fused<R>

      - + Expression Semantics
      @@ -175,38 +177,38 @@

      - fused<R>(r) + fused<R>(r)

      Creates a fused function as described above, initializes the target - function with r. + function with r.

      - fused<R>() + fused<R>()

      - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

      - f(s) + f(s)

      - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

      @@ -214,22 +216,23 @@
    - + Example
    -
    -fused< std::plus<long> > f;
    -assert(f(make_vector(1,2l)) == 3l);
    +
    fused< std::plus<long> > f;
    +assert(f(make_vector(1,2l)) == 3l);
     
    - + See also
    diff --git a/doc/html/fusion/functional/adapters/fused_function_object.html b/doc/html/fusion/functional/adapters/fused_function_object.html index 40b73855..2bc88a2a 100644 --- a/doc/html/fusion/functional/adapters/fused_function_object.html +++ b/doc/html/fusion/functional/adapters/fused_function_object.html @@ -3,11 +3,11 @@ fused_function_object - + - +
    @@ -20,13 +20,13 @@

    -PrevUpHomeNext +PrevUpHomeNext
    - + Description

    @@ -41,23 +41,25 @@

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for an target function object that is const or, if the target function object is held by value, the adapter is const).

    -

    - /functional/adapter/fused_function_object.hpp> -

    +
    + + Header +
    +
    #include <boost/fusion/functional/adapter/fused_function_object.hpp>
    +
    - + Synopsis
    -
    -template <class Function>
    +
    template <class Function>
     class fused_function_object;
     
    - + Template parameters
    @@ -87,7 +89,7 @@

    - Function + Function

    @@ -104,7 +106,7 @@
    - + Model of
    @@ -119,29 +121,29 @@

    Notation

    -
    R
    +
    R

    A possibly const qualified Polymorphic Function Object type or reference type thereof

    -
    r
    +
    r

    - An object convertible to R + An object convertible to R

    -
    s
    +
    s

    A Sequence of arguments that - are accepted by r + are accepted by r

    -
    f
    +
    f

    - An instance of fused<R> + An instance of fused<R>

    - + Expression Semantics
    @@ -166,38 +168,38 @@

    - fused_function_object<R>(r) + fused_function_object<R>(r)

    Creates a fused function as described above, initializes the target - function with r. + function with r.

    - fused_function_object<R>() + fused_function_object<R>()

    - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

    - f(s) + f(s)

    - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

    @@ -205,16 +207,15 @@
    - + Example
    -
    -template<class SeqOfSeqs, class Func>
    -typename result_of::transform< zip_view<SeqOfSeqs> const,
    +
    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),
    +    return transform(zip_view<SeqOfSeqs>(s),
             fused_function_object<Func const &>(f));
     }
     
    @@ -236,23 +237,25 @@
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<int,float> c(1,0.5f);
    -    assert(c == n_ary_transform(vector_tie(a,b), sub()));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<int,float> c(1,0.5f);
    +    assert(c == n_ary_transform(vector_tie(a,b), sub()));
     }
     
    - + See also
    @@ -266,7 +269,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html index 11f3c6d9..b54b2cc9 100644 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -3,7 +3,7 @@ fused_procedure - + @@ -26,7 +26,7 @@
    - + Description

    @@ -38,43 +38,45 @@ Sequence that contains the arguments for the target function.

    - The result is discared and the adapter's return type is void. + The result is discared and the adapter's return type is void.

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used for a target function object that is const or, if the target function object is held by value, the adapter is const - these semantics have nothing to do with the const qualification of a member function, which is referring - to the type of object pointed to by this which is specified + to the type of object pointed to by this which is specified with the first element in the sequence passed to the adapter).

    If the target function is a pointer to a members function, the corresponding object can be specified as a reference, pointer, or smart pointer. In case - of the latter, a freestanding get_pointer function must - be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). + of the latter, a freestanding get_pointer function must + be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr).

    The target function must not be a pointer to a member object (dereferencing such a pointer without returning anything does not make sense, so this case is not implemented).

    -

    - /functional/adapter/fused_procedure.hpp> -

    +
    + + Header +
    +
    #include <boost/fusion/functional/adapter/fused_procedure.hpp>
    +
    - + Synopsis
    -
    -template <typename Function>
    +
    template <typename Function>
     class fused_procedure;
     
    - + Template parameters
    @@ -104,7 +106,7 @@

    - Function + Function

    @@ -120,7 +122,7 @@
    - + Model of
    @@ -135,28 +137,28 @@

    Notation

    -
    R
    +
    R

    A possibly const qualified Callable Object type or reference type thereof

    -
    r
    +
    r

    - An object convertible to R + An object convertible to R

    -
    s
    +
    s

    A Sequence of arguments that - are accepted by r + are accepted by r

    -
    f
    +
    f

    - An instance of fused<R> + An instance of fused<R>

    - + Expression Semantics
    @@ -181,38 +183,38 @@

    - fused_procedure<R>(r) + fused_procedure<R>(r)

    Creates a fused function as described above, initializes the target - function with r. + function with r.

    - fused_procedure<R>() + fused_procedure<R>()

    - Creates a fused function as described above, attempts to use R's default constructor. + Creates a fused function as described above, attempts to use R's default constructor.

    - f(s) + f(s)

    - Calls r with the - elements in s as + Calls r with the + elements in s as its arguments.

    @@ -220,36 +222,37 @@
    - + Example
    -
    -template<class SequenceOfSequences, class Func>
    +
    template<class SequenceOfSequences, class Func>
     void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
     {
    -    for_each(zip_view<SequenceOfSequences>(s),
    +    for_each(zip_view<SequenceOfSequences>(s),
             fused_procedure<Func const &>(f));
     }
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
         using namespace boost::lambda;
    -    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    -    assert(a == make_vector(1,0.5f));
    +    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    +    assert(a == make_vector(1,0.5f));
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/adapters/limits.html b/doc/html/fusion/functional/adapters/limits.html new file mode 100644 index 00000000..29236c7c --- /dev/null +++ b/doc/html/fusion/functional/adapters/limits.html @@ -0,0 +1,66 @@ + + + +Limits + + + + + + + + +
    + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Header +
    +
    #include <boost/fusion/functional/adapter/limits.hpp>
    +
    +
    + + Macros +
    +

    + The following macros can be defined to change the maximum arity. The value + used for these macros must not exceed FUSION_MAX_VECTOR_SIZE. + The default is 6. +

    +
      +
    • + BOOST_FUSION_UNFUSED_MAX_ARITY +
    • +
    • + BOOST_FUSION_UNFUSED_TYPE_MAX_ARITY +
    • +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/adapters/unfused.html b/doc/html/fusion/functional/adapters/unfused.html new file mode 100644 index 00000000..a1781e05 --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused.html @@ -0,0 +1,295 @@ + + + +unfused + + + + + + + + + + + + + + + +
    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. +

    +

    + The nullary overload of the call operator can be removed by setting the + second template parameter to false, + which is very useful if the result type computation would result in a compile + error, otherwise (nullary call operator's prototypes can't be templates + and thus are instantiated as early as the class template). +

    +

    + Only LValue arguments are accepted. To overcome this limitation, apply + Boost.Functional/Forward. +

    +

    + 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.hpp>
    +
    +
    + + Synopsis +
    +
    template <class Function, bool AllowNullary = true>
    +class unfused;
    +
    +
    + + Template + parameters +
    +
    +++++ + + + + + + + + + + + + + + + + + +
    +

    + Parameter +

    +
    +

    + Description +

    +
    +

    + Default +

    +
    +

    + Function +

    +
    +

    + A unary Polymorphic + Function Object +

    +
    +

    +

    +
    +

    + AllowNullary +

    +
    +

    + Boolean constant +

    +
    +

    + true +

    +
    +
    + + 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<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<fused_incrementer> increment;
    +    int a = 2; char b = 'X';
    +    increment(a,b);
    +    assert(a == 3 && b == 'Y');
    +}
    +
    +
    + + See also +
    + +
    + + + +
    +
    +
    +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 b632d7b1..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). -

    -

    - /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 -
    - -
    - - - -
    -
    -
    -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 05e7deec..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). -

    -

    - /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 -
    - -
    - - - -
    -
    -
    -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 19d9a1d1..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). -

    -

    - /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 -
    - -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html index 41608679..03c08b0e 100644 --- a/doc/html/fusion/functional/adapters/unfused_typed.html +++ b/doc/html/fusion/functional/adapters/unfused_typed.html @@ -3,11 +3,11 @@ unfused_typed - + - - + + @@ -20,13 +20,13 @@

    -PrevUpHomeNext +PrevUpHomeNext
    - + Description

    @@ -46,7 +46,7 @@

    The type of the target function is allowed to be const qualified or a reference. Const qualification is preserved and propagated appropriately (in other - words, only const versions of operator() can be used + words, only const versions of operator() can be used if the target function object is const - or, in case the target function object is held by value, the adapter is const).

    @@ -61,19 +61,21 @@ non-reference elements, the element is copied only once - the call operator's signature is optimized automatically to avoid by-value parameters.

    -

    - /functional/adapter/unfused_typed.hpp> -

    +
    + + Header +
    +
    #include <boost/fusion/functional/adapter/unfused_typed.hpp>
    +
    - + Synopsis
    -
    -template <class Function, class Sequence>
    +
    template <class Function, class Sequence>
     class unfused_typed;
     
    - + Template parameters
    @@ -104,7 +106,7 @@

    - Function + Function

    @@ -122,7 +124,7 @@

    - Sequence + Sequence

    @@ -138,7 +140,7 @@
    - + Model of
    @@ -153,38 +155,38 @@

    Notation

    -
    F
    +
    F

    A possibly const qualified, unary Polymorphic Function Object type or reference type thereof

    -
    f
    +
    f

    - An object convertible to F + An object convertible to F

    -
    S
    +
    S

    A Sequence of parameter types

    -
    UT
    +
    UT

    - The type unfused_typed<F,S> + The type unfused_typed<F,S>

    -
    ut
    +
    ut

    - An instance of UT, - initialized with f + An instance of UT, + initialized with f

    -
    a0...aN
    +
    a0...aN

    - Arguments to ut, convertible - to the types in S + Arguments to ut, convertible + to the types in S

    - + Expression Semantics
    @@ -209,52 +211,51 @@

    - UT(f) + UT(f)

    Creates a fused function as described above, initializes the target - function with f. + function with f.

    - UT() + UT()

    - Creates a fused function as described above, attempts to use F's default constructor. + Creates a fused function as described above, attempts to use F's default constructor.

    - ut(a0...aN) + ut(a0...aN)

    - Calls f with an - instance of S (or - a subsequence of S + Calls f with an + instance of S (or + a subsequence of S starting at the first element, if fewer arguments are given and - the overload hasn't been disabled) initialized with a0...aN. + the overload hasn't been disabled) initialized with a0...aN.

    - + Example
    -
    -struct add_assign // applies operator+=
    +
    struct add_assign // applies operator+=
     {
         typedef void result_type; // for simplicity
     
    @@ -305,7 +306,7 @@
                 fused_parallel_adder<Seq>(tie) );
         }
     };
    -unfused_lvalue_args<fused_parallel_adder_maker> parallel_add;
    +unfused<fused_parallel_adder_maker> parallel_add;
     
     void try_it()
     {
    @@ -319,15 +320,13 @@
     }
     
    - + See also
    @@ -341,7 +340,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/concepts.html b/doc/html/fusion/functional/concepts.html index b6ddb1b3..c0ad6632 100644 --- a/doc/html/fusion/functional/concepts.html +++ b/doc/html/fusion/functional/concepts.html @@ -3,7 +3,7 @@ Concepts - + diff --git a/doc/html/fusion/functional/concepts/callable.html b/doc/html/fusion/functional/concepts/callable.html index 3126568c..d431a5fe 100644 --- a/doc/html/fusion/functional/concepts/callable.html +++ b/doc/html/fusion/functional/concepts/callable.html @@ -3,7 +3,7 @@ Callable Object - + @@ -27,7 +27,7 @@
    - + Description

    @@ -36,7 +36,7 @@ of a function call operator.

    - + Models
      @@ -51,11 +51,10 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     & a_class::a_nonstatic_data_member
     & a_class::a_nonstatic_member_function
    @@ -64,7 +63,7 @@
     bind(std::less<int>(), _1, 5)
     lambda::_1 += lambda::_2;
     fusion::make_fused_function_object(std::less<int>())
    +          make_fused_function_object">make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html index 47e13671..4e2cfcaf 100644 --- a/doc/html/fusion/functional/concepts/def_callable.html +++ b/doc/html/fusion/functional/concepts/def_callable.html @@ -4,7 +4,7 @@ Deferred Callable Object - + Deferred Callable Object
    - + Description

    @@ -40,48 +40,48 @@ to determine the result of a call.

    - + Refinement of

    Notation

    -
    F
    +
    F

    A possibly const qualified Deferred Callable Object type

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

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

    -
    T1 - ...TN
    +
    T1 + ...TN

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

    - + Expression requirements
    @@ -105,21 +105,21 @@

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

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

    - + Models
      @@ -133,11 +133,10 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     & a_class::a_nonstatic_data_member
     & a_class::a_nonstatic_member_function
    @@ -146,7 +145,7 @@
     bind(std::less<int>(), _1, 5)
     // Note: Boost.Lambda expressions don't work with __boost_result_of__
     fusion::make_fused_function_object(std::less<int>())
    +          make_fused_function_object">make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html index e8329338..54d408d5 100644 --- a/doc/html/fusion/functional/concepts/poly.html +++ b/doc/html/fusion/functional/concepts/poly.html @@ -4,7 +4,7 @@ Polymorphic Function Object - + Polymorphic Function Object
    - + Description

    @@ -39,7 +39,7 @@ Callable Object type.

    - + Refinement of
    @@ -54,36 +54,36 @@

    Notation

    -
    F
    +
    F

    A possibly const-qualified Polymorphic Function Object type

    -
    f
    +
    f

    An object or reference to an object of type F

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

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

    -
    T1 - ...TN
    +
    T1 + ...TN

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

    - + Expression requirements
    @@ -113,15 +113,15 @@

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

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

    @@ -132,7 +132,7 @@
    - + Models
      @@ -147,18 +147,17 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     std::less<int>()
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     // Note: Boost.Lambda expressions don't work with __boost_result_of__
     fusion::make_fused_function_object(std::less<int>())
    +          make_fused_function_object">make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/concepts/reg_callable.html b/doc/html/fusion/functional/concepts/reg_callable.html index 2728c32d..c3cdb382 100644 --- a/doc/html/fusion/functional/concepts/reg_callable.html +++ b/doc/html/fusion/functional/concepts/reg_callable.html @@ -4,7 +4,7 @@ Regular Callable Object - + @@ -30,7 +30,7 @@ Object"> Regular Callable Object
    - + Description

    @@ -39,7 +39,7 @@ can appear immediately to the left of a function call operator.

    - + Refinement of
    @@ -47,29 +47,29 @@

    Notation

    -
    F
    +
    F

    A possibly const qualified Deferred Callable Object type

    -
    f
    +
    f

    An object or reference to an object of type F

    -
    A1 - ...AN
    +
    A1 + ...AN

    Argument types

    -
    a1 - ...aN
    +
    a1 + ...aN

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

    - + Expression requirements
    @@ -99,8 +99,8 @@

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

    @@ -116,7 +116,7 @@
    - + Models
      @@ -128,18 +128,17 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     std::less<int>()
     // using namespace boost;
     bind(std::less<int>(), _1, 5)
     lambda::_1 += lambda::_2;
     fusion::make_fused_function_object(std::less<int>())
    +          make_fused_function_object">make_fused_function_object(std::less<int>())
     
    diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html index 4620cf2c..372bf7a5 100644 --- a/doc/html/fusion/functional/generation.html +++ b/doc/html/fusion/functional/generation.html @@ -3,10 +3,10 @@ Generation - + - + @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -41,7 +41,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html index c9603fba..83133aaa 100644 --- a/doc/html/fusion/functional/generation/functions.html +++ b/doc/html/fusion/functional/generation/functions.html @@ -3,7 +3,7 @@ Functions - + @@ -33,12 +33,8 @@ make_fused_procedure
    make_fused_function_object
    -
    - make_unfused_generic
    -
    - make_unfused_lvalue_args
    -
    - make_unfused_rvalue_args
    +
    + make_unfused

    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused.html b/doc/html/fusion/functional/generation/functions/mk_fused.html index c210e657..67b43538 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused.html @@ -4,7 +4,7 @@ make_fused - + @@ -30,27 +30,26 @@ make_fused"> make_fused
    - + Description

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

    - + Synopsis
    -
    -template <typename F>
    +
    template <typename F>
     inline typename make_fused<F>::type
    +          make_fused">make_fused<F>::type
     make_fused(F const & f);
     
    - + Parameters
    @@ -79,7 +78,7 @@

    - f + f

    @@ -97,53 +96,50 @@
    - + Expression Semantics
    -
    -make_fused(f);
    +
    make_fused(f);
     

    - Return type: A specialization of fused. + Return type: A specialization of fused.

    - Semantics: Returns a fused adapter for f. + Semantics: Returns a fused adapter for f.

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused.hpp>
     #include <boost/fusion/include/make_fused.hpp>
     
    - + Example
    -
    -float sub(float a, float b) { return a - b; }
    +
    float sub(float a, float b) { return a - b; }
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<float,float> c(1.0f,0.5f);
    -    assert(c == transform(zip(a,b), make_fused(& sub)));
    -    assert(c == transform(zip(a,b), make_fused(std::minus<float>())));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<float,float> c(1.0f,0.5f);
    +    assert(c == transform(zip(a,b), make_fused(& sub)));
    +    assert(c == transform(zip(a,b), make_fused(std::minus<float>())));
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html index 04de9c87..1ab34c11 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html @@ -4,13 +4,13 @@ make_fused_function_object - + - +
    @@ -23,7 +23,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -31,28 +31,27 @@ make_fused_function_object"> make_fused_function_object
    - + Description

    - Creates a fused_function_object adapter + 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>
    +
    template <typename F>
     inline typename make_fused_function_object<F>::type
    +          make_fused_function_object">make_fused_function_object<F>::type
     make_fused_function_object(F const & f);
     
    - + Parameters
    @@ -81,7 +80,7 @@

    - f + f

    @@ -99,34 +98,31 @@
    - + Expression Semantics
    -
    -make_fused_function_object(f);
    +
    make_fused_function_object(f);
     

    - Return type: A specialization of fused_function_object. + Return type: A specialization of fused_function_object.

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

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - + Example
    -
    -struct sub
    +
    struct sub
     {
         template <typename Sig>
         struct result;
    @@ -144,22 +140,22 @@
     
     void try_it()
     {
    -    vector<int,float> a(2,2.0f);
    -    vector<int,float> b(1,1.5f);
    -    vector<int,float> c(1,0.5f);
    -    assert(c == transform(zip(a,b), make_fused_function_object(sub())));
    +    vector<int,float> a(2,2.0f);
    +    vector<int,float> b(1,1.5f);
    +    vector<int,float> c(1,0.5f);
    +    assert(c == transform(zip(a,b), make_fused_function_object(sub())));
     }
     
    - + See also
    @@ -173,7 +169,7 @@

    -PrevUpHomeNext +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 index 9d554eb0..e62cb861 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html @@ -4,7 +4,7 @@ make_fused_procedure - + make_fused_procedure
    - + Description

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

    - + Synopsis
    -
    -template <typename F>
    +
    template <typename F>
     inline typename make_fused_procedure<F>::type
    +          make_fused_procedure">make_fused_procedure<F>::type
     make_fused_procedure(F const & f);
     
    - + Parameters
    @@ -81,7 +80,7 @@

    - f + f

    @@ -98,48 +97,45 @@
    - + Expression Semantics
    -
    -make_fused_procedure(f);
    +
    make_fused_procedure(f);
     

    - Return type: A specialization of fused_procedure. + Return type: A specialization of fused_procedure.

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

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused_procedure.hpp>
     #include <boost/fusion/include/make_fused_procedure.hpp>
     
    - + Example
    -
    -vector<int,int,int> v(1,2,3);
    +
    vector<int,int,int> v(1,2,3);
     using namespace boost::lambda;
     make_fused_procedure(_1 += _2 - _3)(v);
    -assert(front(v) == 0);
    +assert(front(v) == 0);
     
    - + See also
    diff --git a/doc/html/fusion/functional/generation/functions/mk_unfused.html b/doc/html/fusion/functional/generation/functions/mk_unfused.html new file mode 100644 index 00000000..eec8a9c0 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/mk_unfused.html @@ -0,0 +1,171 @@ + + + + + make_unfused + + + + + + + + +
    + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Description +
    +

    + Creates a unfused 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<F>::type
    +make_unfused(F const & f);
    +
    +
    + + Parameters +
    +
    +++++ + + + + + + + + + + +
    +

    + Parameter +

    +
    +

    + Requirement +

    +
    +

    + Description +

    +
    +

    + f +

    +
    +

    + Model of Polymorphic + Function Object +

    +
    +

    + The function to transform. +

    +
    +
    + + Expression + Semantics +
    +
    make_unfused(f);
    +
    +

    + Return type: A specialization of unfused. +

    +

    + Semantics: Returns a unfused adapter for f. +

    +
    + + Header +
    +
    #include <boost/fusion/functional/generation/make_unfused.hpp>
    +#include <boost/fusion/include/make_unfused.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(fused_incrementer())(a,b);
    +    assert(a == 3 && b == 'Y');
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    +
    +
    +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 9ad4aa02..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html +++ /dev/null @@ -1,186 +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>
    -#include <boost/fusion/include/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 -
    - -
    - - - -
    -
    -
    -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 4f96799e..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html +++ /dev/null @@ -1,177 +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>
    -#include <boost/fusion/include/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 -
    - -
    - - - -
    -
    -
    -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 632a5f71..00000000 --- a/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html +++ /dev/null @@ -1,175 +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>
    -#include <boost/fusion/include/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 -
    - -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/fusion/functional/generation/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html index 5d165479..62c4fc0e 100644 --- a/doc/html/fusion/functional/generation/metafunctions.html +++ b/doc/html/fusion/functional/generation/metafunctions.html @@ -3,11 +3,11 @@ Metafunctions - + - + @@ -22,7 +22,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +49,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html index 34b602b1..dd2bdc15 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html @@ -4,7 +4,7 @@ make_fused - + @@ -30,27 +30,25 @@ make_fused"> make_fused
    - + Description

    Returns the result type of make_fused. + make_fused">make_fused.

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused.hpp>
     #include <boost/fusion/include/make_fused.hpp>
     
    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<typename Function>
         struct make_fused
    @@ -60,12 +58,12 @@
     }
     
    - + See also
    + make_fused">make_fused diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html index cc35e263..e13433df 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html @@ -4,13 +4,13 @@ make_fused_function_object - + - +
    @@ -23,7 +23,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -31,27 +31,25 @@ make_fused_function_object"> make_fused_function_object
    - + Description

    Returns the result type of make_fused_function_object. + make_fused_function_object">make_fused_function_object.

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<typename Function>
         struct make_fused_function_object
    @@ -61,12 +59,12 @@
     }
     
    - + See also
    + make_fused_function_object">make_fused_function_object
    @@ -79,7 +77,7 @@

    -PrevUpHomeNext +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 index 6a29a24e..e3ee560c 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html @@ -4,7 +4,7 @@ make_fused_procedure - + make_fused_procedure
    - + Description

    Returns the result type of make_fused_procedure. + make_fused_procedure">make_fused_procedure.

    - + Header
    -
    -#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
    +
    #include <boost/fusion/functional/generation/make_fused_procedure.hpp>
     #include <boost/fusion/include/make_fused_procedure.hpp>
     
    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<typename Function>
         struct make_fused_procedure
    @@ -61,12 +59,12 @@
     }
     
    - + See also
    + make_fused_procedure">make_fused_procedure diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html similarity index 55% rename from doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html rename to doc/html/fusion/functional/generation/metafunctions/mk_unfused.html index 0dc1670f..11abded5 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html @@ -2,15 +2,14 @@ - make_unfused_generic + make_unfused - + - +
    @@ -23,50 +22,48 @@

    -PrevUpHomeNext +PrevUpHomeNext
    +
    + + Description

    - Returns the result type of make_unfused_generic. + Returns the result type of make_unfused.

    -
    - - Header +
    + + Header
    -
    -#include <boost/fusion/functional/generation/make_unfused_generic.hpp>
    -#include <boost/fusion/include/make_unfused_generic.hpp>
    +
    #include <boost/fusion/functional/generation/make_unfused.hpp>
    +#include <boost/fusion/include/make_unfused.hpp>
     
    -
    - - Synopsis +
    + + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<typename Function>
    -    struct make_unfused_generic
    +    struct make_unfused
         {
             typedef unspecified type;
         };
     }
     
    -
    - - See +
    + + See also
    - + @@ -79,7 +76,7 @@

    -PrevUpHomeNext +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 cfede75a..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html +++ /dev/null @@ -1,85 +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>
    -#include <boost/fusion/include/make_unfused_lvalue_args.hpp>
    -
    -
    - - Synopsis -
    -
    -namespace result_of
    -{
    -    template<typename Function>
    -    struct make_unfused_lvalue_args
    -    {
    -        typedef unspecified type;
    -    };
    -}
    -
    -
    - - See - also -
    - -
    - - - -
    -
    -
    -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 5fd2b9d8..00000000 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html +++ /dev/null @@ -1,84 +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>
    -#include <boost/fusion/include/make_unfused_rvalue_args.hpp>
    -
    -
    - - Synopsis -
    -
    -namespace result_of
    -{
    -    template<typename Function>
    -    struct make_unfused_rvalue_args
    -    {
    -        typedef unspecified type;
    -    };
    -}
    -
    -
    - - See - also -
    - -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html index d1a29b0a..986994e0 100644 --- a/doc/html/fusion/functional/invocation.html +++ b/doc/html/fusion/functional/invocation.html @@ -3,7 +3,7 @@ Invocation - +
    Functions
    Metafunctions
    +
    Limits
    diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html index abcc99ac..000f910c 100644 --- a/doc/html/fusion/functional/invocation/functions.html +++ b/doc/html/fusion/functional/invocation/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/functional/invocation/functions/invoke.html b/doc/html/fusion/functional/invocation/functions/invoke.html index b8b6c449..91f5ed80 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke.html +++ b/doc/html/fusion/functional/invocation/functions/invoke.html @@ -3,7 +3,7 @@ invoke - + @@ -27,7 +27,7 @@
    - + Description

    @@ -42,31 +42,33 @@

    If the target function is a pointer to a class members, the corresponding object can be specified as a reference, pointer, or smart pointer. In - case of the latter, a freestanding get_pointer function - must be defined (Boost provides this function for std::auto_ptr - and boost::shared_ptr). + case of the latter, a freestanding get_pointer function + must be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr). +

    +

    + Constructors can be called applying Boost.Functional/Factory.

    - + Synopsis
    -
    -template<
    +
    template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke<Function, Sequence>::type
    +typename result_of::invoke<Function, Sequence>::type
     invoke(Function f, Sequence & s);
     
     template<
         typename Function,
         class Sequence
         >
    -typename result_of::invoke<Function, Sequence const>::type
    +typename result_of::invoke<Function, Sequence const>::type
     invoke(Function f, Sequence const & s);
     
    - + Parameters
    @@ -96,7 +98,7 @@

    - f + f

    @@ -115,7 +117,7 @@

    - s + s

    @@ -134,45 +136,48 @@
    - + Expression Semantics
    -
    -invoke(f,s);
    +
    invoke(f,s);
     

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

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

    -

    - /functional/invocation/invoke.hpp> -

    +
    + + Header +
    +
    #include <boost/fusion/functional/invocation/invoke.hpp>
    +
    - + Example
    -
    -std::plus<int> add;
    -assert(invoke(add,make_vector(1,1)) == 2);
    +
    std::plus<int> add;
    +assert(invoke(add,make_vector(1,1)) == 2);
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html index a509ae35..5cdf1e42 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html @@ -4,7 +4,7 @@ invoke_function_object - + invoke_function_object
    - + Description

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

    +

    + Constructors can be called applying Boost.Functional/Factory. +

    - + Synopsis
    -
    -template<
    +
    template<
         typename Function,
         class Sequence
         >
     typename result_of::invoke_function_object<Function, Sequence>::type
    +          invoke_function_object">result_of::invoke_function_object<Function, Sequence>::type
     invoke_function_object(Function f, Sequence & s);
     
     template<
    @@ -60,11 +62,11 @@
         class Sequence
         >
     typename result_of::invoke_function_object<Function, Sequence const>::type
    +          invoke_function_object">result_of::invoke_function_object<Function, Sequence const>::type
     invoke_function_object(Function f, Sequence const & s);
     
    - + Parameters
    @@ -94,7 +96,7 @@

    - f + f

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

    - s + s

    @@ -132,31 +134,32 @@
    - + Expression Semantics
    -
    -invoke_function_object(f,s);
    +
    invoke_function_object(f,s);
     

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

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

    -

    - /functional/invocation/invoke_function_object.hpp> -

    +
    + + Header +
    +
    #include <boost/fusion/functional/invocation/invoke_function_object.hpp>
    +
    - + Example
    -
    -struct sub
    +
    struct sub
     {
         template <typename Sig>
         struct result;
    @@ -175,21 +178,23 @@
     void try_it()
     {
         sub f;
    -    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
    +    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_proc.html b/doc/html/fusion/functional/invocation/functions/invoke_proc.html index f969edf9..dba8dd85 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_proc.html @@ -4,7 +4,7 @@ invoke_procedure - + @@ -30,7 +30,7 @@ invoke_procedure"> invoke_procedure
    - + Description

    @@ -45,8 +45,8 @@

    For pointers to class members corresponding object can be specified as a reference, pointer, or smart pointer. In case of the latter, a freestanding - get_pointer function must be defined (Boost provides - this function for std::auto_ptr and boost::shared_ptr). + get_pointer function must be defined (Boost provides + this function for std::auto_ptr and boost::shared_ptr).

    The target function must not be a pointer to a member object (dereferencing @@ -54,16 +54,15 @@ isn't implemented).

    - + Synopsis
    -
    -template<
    +
    template<
         typename Function,
         class Sequence
         >
     typename result_of::invoke_procedure<Function, Sequence>::type
    +          invoke_procedure">result_of::invoke_procedure<Function, Sequence>::type
     invoke_procedure(Function f, Sequence & s);
     
     template<
    @@ -71,11 +70,11 @@
         class Sequence
         >
     typename result_of::invoke_procedure<Function, Sequence const>::type
    +          invoke_procedure">result_of::invoke_procedure<Function, Sequence const>::type
     invoke_procedure(Function f, Sequence const & s);
     
    - + Parameters
    @@ -105,7 +104,7 @@

    - f + f

    @@ -123,7 +122,7 @@

    - s + s

    @@ -142,46 +141,49 @@
    - + Expression Semantics
    -
    -invoke_procedure(f,s);
    +
    invoke_procedure(f,s);
     

    - Return type: void + Return type: void

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

    -

    - /functional/invocation/invoke_procedure.hpp> -

    +
    + + Header +
    +
    #include <booost/fusion/functional/invocation/invoke_procedure.hpp>
    +
    - + Example
    -
    -vector<int,int> v(1,2);
    +
    vector<int,int> v(1,2);
     using namespace boost::lambda;
     invoke_procedure(_1 += _2, v);
    -assert(front(v) == 3);
    +assert(front(v) == 3);
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/limits.html b/doc/html/fusion/functional/invocation/limits.html new file mode 100644 index 00000000..cd7dc9d3 --- /dev/null +++ b/doc/html/fusion/functional/invocation/limits.html @@ -0,0 +1,69 @@ + + + +Limits + + + + + + + + +
    + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    + +
    + + Header +
    +
    #include <boost/fusion/functional/invocation/limits.hpp>
    +
    +
    + + Macros +
    +

    + The following macros can be defined to change the maximum arity. The default + is 6. +

    +
      +
    • + BOOST_FUSION_INVOKE_MAX_ARITY +
    • +
    • + BOOST_FUSION_INVOKE_PROCEDURE_MAX_ARITY +
    • +
    • + BOOST_FUSION_INVOKE_FUNCTION_OBJECT_MAX_ARITY +
    • +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation/metafunctions.html b/doc/html/fusion/functional/invocation/metafunctions.html index 93aafaf4..2dd24593 100644 --- a/doc/html/fusion/functional/invocation/metafunctions.html +++ b/doc/html/fusion/functional/invocation/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + invoke - + @@ -27,18 +27,17 @@
    - + Description

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

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             typename Function,
    @@ -51,13 +50,13 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html index f8b3b9bc..8dba178f 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html @@ -4,12 +4,12 @@ invoke_function_object - + - +
    @@ -22,7 +22,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,19 +30,18 @@ invoke_function_object"> invoke_function_object
    - + Description

    Returns the result type of invoke_function_object. + invoke_function_object">invoke_function_object.

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             class Function,
    @@ -55,14 +54,14 @@
     }
     
    - + See also
    @@ -76,7 +75,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html index 454969e5..17ab43f6 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html @@ -4,7 +4,7 @@ invoke_procedure - + @@ -30,19 +30,18 @@ invoke_procedure"> invoke_procedure
    - + Description

    Returns the result type of invoke_procedure. + invoke_procedure">invoke_procedure.

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             typename Function,
    @@ -55,14 +54,14 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html index 6587ef11..b3d2db0a 100644 --- a/doc/html/fusion/introduction.html +++ b/doc/html/fusion/introduction.html @@ -3,7 +3,7 @@ Introduction - + @@ -29,9 +29,9 @@ An advantage other languages such as Python and Lisp/ Scheme, ML and Haskell, etc., over C++ is the ability to have heterogeneous containers that can hold arbitrary element types. All the containers in the standard library can only - hold a specific type. A vector<int> - can only hold ints. A list<X> can - only hold elements of type X, + hold a specific type. A vector<int> + can only hold ints. A list<X> can + only hold elements of type X, and so on.

    @@ -41,8 +41,8 @@ on virtual functions to provide polymorphic behavior since the actual type is erased as soon as you store a pointer to a derived class to a pointer to its base. The held objects must be related: you cannot hold objects of unrelated - types such as char, int, class - X, float, + types such as char, int, class + X, float, etc. Oh sure you can use something like Boost.Any to hold arbitrary types, but then you pay more in terms of runtime costs and due to the fact that you practically erased all type information, you'll have @@ -51,7 +51,7 @@

    The Boost.Tuple library written by Jaakko - Jarvi provides heterogeneous containers in C++. The tuple + Jarvi provides heterogeneous containers in C++. The tuple is a basic data structure that can hold heterogeneous types. It's a good first step, but it's not complete. What's missing are the algorithms. It's nice that we can store and retrieve data to and from tuples, pass them around as arguments @@ -89,23 +89,23 @@ fusion algorithms are functional in nature such that algorithms are non mutating (no side effects). However, due to the high cost of returning full sequences such as vectors and lists, Views are returned from Fusion - algorithms instead. For example, the transform algorithm does not actually - return a transformed version of the original sequence. transform returns a transform_view. This view holds a + algorithms instead. For example, the transform algorithm does not actually + return a transformed version of the original sequence. transform returns a transform_view. This view holds a reference to the original sequence plus the transform function. Iteration over - the transform_view + the transform_view will apply the transform function over the sequence elements on demand. This lazy evaluation scheme allows us to chain as many algorithms as we want without incurring a high runtime penalty.

    The lazy evaluation scheme where algorithms return views - allows operations such as push_back to be totally generic. In - Fusion, push_back is actually a generic algorithm - that works on all sequences. Given an input sequence s - and a value x, Fusion's push_back algorithm simply returns - a joint_view: - a view that holds a reference to the original sequence s - and the value x. Functions + allows operations such as push_back to be totally generic. In + Fusion, push_back is actually a generic algorithm + that works on all sequences. Given an input sequence s + and a value x, Fusion's push_back algorithm simply returns + a joint_view: + a view that holds a reference to the original sequence s + and the value x. Functions that were once sequence specific and need to be implemented N times over N different sequences are now implemented only once.

    @@ -116,7 +116,7 @@ sequences are fully compatible with Fusion. You can work with Fusion sequences on MPL if you wish to work solely on types - [1] + [1] . In MPL, Fusion sequences follow MPL's sequence-type preserving semantics (i.e. algorithms preserve the original sequence @@ -131,7 +131,7 @@



    -

    [1] +

    [1] Choose MPL over fusion when doing pure type calculations. Once the static type calculation is finished, you can instantiate a fusion sequence (see Conversion) diff --git a/doc/html/fusion/iterator.html b/doc/html/fusion/iterator.html index 5aac9cbb..93bf9424 100644 --- a/doc/html/fusion/iterator.html +++ b/doc/html/fusion/iterator.html @@ -3,7 +3,7 @@ Iterator - + @@ -74,11 +74,10 @@ Sequence.

    - + Header

    -
    -#include <boost/fusion/iterator.hpp>
    +
    #include <boost/fusion/iterator.hpp>
     #include <boost/fusion/include/iterator.hpp>
     
    diff --git a/doc/html/fusion/iterator/concepts.html b/doc/html/fusion/iterator/concepts.html index 62b3bb31..a0705089 100644 --- a/doc/html/fusion/iterator/concepts.html +++ b/doc/html/fusion/iterator/concepts.html @@ -3,7 +3,7 @@ Concepts - + diff --git a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html index 88c318b3..052f65f8 100644 --- a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html +++ b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html @@ -4,7 +4,7 @@ Bidirectional Iterator - + Bidirectional Iterator
    - + Description

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

    Notation

    -
    i
    +
    i

    A Bidirectional Iterator

    -
    I
    +
    I

    A Bidirectional Iterator type

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    - + Refinement of
    @@ -70,7 +70,7 @@ Iterator">Forward Iterator

    - + Expression requirements
    @@ -106,7 +106,7 @@

    - next(i) + next(i)

    @@ -125,7 +125,7 @@

    - prior(i) + prior(i)

    @@ -144,7 +144,7 @@

    - advance_c<N>(i) + advance_c<N>(i)

    @@ -163,7 +163,7 @@

    - advance<M>(i) + advance<M>(i)

    @@ -182,7 +182,7 @@
    - + Meta Expressions
    @@ -206,7 +206,7 @@

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

    @@ -217,7 +217,7 @@
    - + Expression Semantics
    @@ -247,18 +247,18 @@

    - prior(i) + prior(i)

    - An iterator to the element preceding i + An iterator to the element preceding i

    - + Invariants

    @@ -267,43 +267,43 @@ Iterator, the following invariants always hold:

    - + Models
    diff --git a/doc/html/fusion/iterator/concepts/forward_iterator.html b/doc/html/fusion/iterator/concepts/forward_iterator.html index 54fa0077..c443d1e0 100644 --- a/doc/html/fusion/iterator/concepts/forward_iterator.html +++ b/doc/html/fusion/iterator/concepts/forward_iterator.html @@ -4,7 +4,7 @@ Forward Iterator - + @@ -30,7 +30,7 @@ Iterator">Forward Iterator
    - + Description

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

    Notation

    -
    i, - j
    +
    i, + j

    Forward Iterators

    -
    I, - J
    +
    I, + J

    Forward Iterator types

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    - + Expression requirements
    @@ -98,7 +98,7 @@

    - next(i) + next(i)

    @@ -117,8 +117,8 @@

    - i == - j + i == + j

    @@ -135,8 +135,8 @@

    - i != - j + i != + j

    @@ -153,7 +153,7 @@

    - advance_c<N>(i) + advance_c<N>(i)

    @@ -172,7 +172,7 @@

    - advance<M>(i) + advance<M>(i)

    @@ -191,14 +191,14 @@

    - distance(i, - j) + distance(i, + j)

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

    @@ -210,12 +210,12 @@

    - deref(i) + deref(i)

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

    @@ -227,12 +227,12 @@

    - *i + *i

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

    @@ -244,7 +244,7 @@
    - + Meta Expressions
    @@ -269,7 +269,7 @@

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

    @@ -281,8 +281,8 @@

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

    @@ -294,8 +294,8 @@

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

    @@ -307,7 +307,7 @@

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

    @@ -319,7 +319,7 @@

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

    @@ -331,7 +331,7 @@

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

    @@ -343,7 +343,7 @@

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

    @@ -355,7 +355,7 @@
    - + Expression Semantics
    @@ -380,20 +380,20 @@

    - next(i) + next(i)

    - An iterator to the element following i + An iterator to the element following i

    - i == - j + i == + j

    @@ -405,8 +405,8 @@

    - i != - j + i != + j

    @@ -418,12 +418,12 @@

    - advance_c<N>(i) + advance_c<N>(i)

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

    @@ -431,134 +431,134 @@

    - advance<M>(i) + advance<M>(i)

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

    - distance(i, - j) + distance(i, + j)

    - The number of elements between i - and j + The number of elements between i + and j

    - deref(i) + deref(i)

    - The element at positioni + The element at positioni

    - *i + *i

    - Equivalent to deref(i) + Equivalent to deref(i)

    - + Invariants

    The following invariants always hold:

      -
    • !(i - == j) == (i != j)
    • -
    • next(i) == advance_c<1>(i)
    • -
    • distance(i, advance_c<N>(i)) == N
    • +
    • !(i + == j) == (i != j)
    • +
    • next(i) == advance_c<1>(i)
    • +
    • distance(i, advance_c<N>(i)) == N
    • - Using next to traverse the + Using next to traverse the sequence will never return to a previously seen position
    • -deref(i) is equivalent to *i +deref(i) is equivalent to *i
    • - If i == - j then *i is equivalent to *j + If i == + j then *i is equivalent to *j
    - + Models
    diff --git a/doc/html/fusion/iterator/concepts/random_access_iterator.html b/doc/html/fusion/iterator/concepts/random_access_iterator.html index 6bcb5824..b13472e0 100644 --- a/doc/html/fusion/iterator/concepts/random_access_iterator.html +++ b/doc/html/fusion/iterator/concepts/random_access_iterator.html @@ -4,7 +4,7 @@ Random Access Iterator - + Random Access Iterator
    - + Description

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

    Notation

    -
    i, - j
    +
    i, + j

    Random Access Iterators

    -
    I, - J
    +
    I, + J

    Random Access Iterator types

    -
    M
    +
    M

    An MPL integral constant

    -
    N
    +
    N

    An integral constant

    - + Refinement of
    @@ -73,7 +73,7 @@ Iterator

    - + Expression requirements
    @@ -109,7 +109,7 @@

    - next(i) + next(i)

    @@ -128,7 +128,7 @@

    - prior(i) + prior(i)

    @@ -147,7 +147,7 @@

    - advance_c<N>(i) + advance_c<N>(i)

    @@ -166,7 +166,7 @@

    - advance<M>(i) + advance<M>(i)

    @@ -185,7 +185,7 @@
    - + Meta Expressions
    @@ -210,8 +210,8 @@

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

    @@ -223,8 +223,8 @@

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

    @@ -236,7 +236,7 @@

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

    @@ -248,36 +248,36 @@
    - + Models
    diff --git a/doc/html/fusion/iterator/functions/advance_c.html b/doc/html/fusion/iterator/functions/advance_c.html index 80782f3f..71bd4aa7 100644 --- a/doc/html/fusion/iterator/functions/advance_c.html +++ b/doc/html/fusion/iterator/functions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -26,25 +26,24 @@
    - + Description

    Moves an iterator by a specified distance.

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

    Table 1.7. Parameters

    +

    Table 1.7. Parameters

    @@ -72,7 +71,7 @@

    - i + i

    @@ -91,7 +90,7 @@

    - N + N

    @@ -109,43 +108,40 @@
    - + Expression Semantics
    -
    -advance_c<N>(i);
    +
    advance_c<N>(i);
     

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

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

    - + Header
    -
    -#include <boost/fusion/iterator/advance.hpp>
    +
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    -
    -typedef vector<int,int,int> vec;
    +
    typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(deref(advance_c<2>(begin(v))) == 3);
    +assert(deref(advance_c<2>(begin(v))) == 3);
     
    diff --git a/doc/html/fusion/iterator/functions/deref.html b/doc/html/fusion/iterator/functions/deref.html index 6e980ce1..98a46391 100644 --- a/doc/html/fusion/iterator/functions/deref.html +++ b/doc/html/fusion/iterator/functions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -26,24 +26,23 @@
    - + Description

    Deferences an iterator.

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

    Table 1.2. Parameters

    +

    Table 1.2. Parameters

    @@ -70,7 +69,7 @@

    - i + i

    @@ -89,40 +88,37 @@
    - + Expression Semantics
    -
    -deref(i);
    +
    deref(i);
     

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

    - Semantics: Dereferences the iterator - i. + Semantics: Dereferences the iterator + i.

    - + Header
    -
    -#include <boost/fusion/iterator/deref.hpp>
    +
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    -
    -typedef vector<int,int&> vec;
    +
    typedef vector<int,int&> vec;
     
     int i(0);
     vec v(1,i);
    -assert(deref(begin(v)) == 1);
    -assert(deref(next(begin(v))) == 0);
    -assert(&(deref(next(begin(v)))) == &i);
    +assert(deref(begin(v)) == 1);
    +assert(deref(next(begin(v))) == 0);
    +assert(&(deref(next(begin(v)))) == &i);
     
    diff --git a/doc/html/fusion/iterator/functions/distance.html b/doc/html/fusion/iterator/functions/distance.html index eb820046..ec0ab757 100644 --- a/doc/html/fusion/iterator/functions/distance.html +++ b/doc/html/fusion/iterator/functions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -26,25 +26,24 @@
    - + Description

    Returns the distance between 2 iterators.

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

    Table 1.5. Parameters

    +

    Table 1.5. Parameters

    @@ -71,7 +70,7 @@

    - i, j + i, j

    @@ -90,37 +89,34 @@
    - + Expression Semantics
    -
    -distance(i,j);
    +
    distance(i,j);
     

    - Return type: int + Return type: int

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

    - + Header
    -
    -#include <boost/fusion/iterator/distance.hpp>
    +
    #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    - + Example
    -
    -typedef vector<int,int,int> vec;
    +
    typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(distance(begin(v), next(next(begin(v)))) == 2);
    +assert(distance(begin(v), next(next(begin(v)))) == 2);
     
    diff --git a/doc/html/fusion/iterator/functions/next.html b/doc/html/fusion/iterator/functions/next.html index 2ff7f62f..931d4b3d 100644 --- a/doc/html/fusion/iterator/functions/next.html +++ b/doc/html/fusion/iterator/functions/next.html @@ -3,7 +3,7 @@ next - + @@ -26,24 +26,23 @@
    - + Description

    Moves an iterator 1 position forwards.

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

    Table 1.3. Parameters

    +

    Table 1.3. Parameters

    @@ -70,7 +69,7 @@

    - i + i

    @@ -89,40 +88,37 @@
    - + Expression Semantics
    -
    -next(i);
    +
    next(i);
     

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

    - Semantics: Returns an iterator to the - next element after i. + Semantics: Returns an iterator to the + next element after i.

    - + Header
    -
    -#include <boost/fusion/iterator/next.hpp>
    +
    #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    - + Example
    -
    -typedef vector<int,int,int> vec;
    +
    typedef vector<int,int,int> vec;
     
     vec v(1,2,3);
    -assert(deref(begin(v)) == 1);
    -assert(deref(next(begin(v))) == 2);
    -assert(deref(next(next(begin(v)))) == 3);
    +assert(deref(begin(v)) == 1);
    +assert(deref(next(begin(v))) == 2);
    +assert(deref(next(next(begin(v)))) == 3);
     
    diff --git a/doc/html/fusion/iterator/functions/prior.html b/doc/html/fusion/iterator/functions/prior.html index 4bb04c0d..60fcbc31 100644 --- a/doc/html/fusion/iterator/functions/prior.html +++ b/doc/html/fusion/iterator/functions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -26,24 +26,23 @@
    - + Description

    Moves an iterator 1 position backwards.

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

    Table 1.4. Parameters

    +

    Table 1.4. Parameters

    @@ -70,7 +69,7 @@

    - i + i

    @@ -89,39 +88,36 @@
    - + Expression Semantics
    -
    -prior(i);
    +
    prior(i);
     

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

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

    - + Header
    -
    -#include <boost/fusion/iterator/prior.hpp>
    +
    #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    - + Example
    -
    -typedef vector<int,int> vec;
    +
    typedef vector<int,int> vec;
     
     vec v(1,2);
    -assert(deref(next(begin(v))) == 2);
    -assert(deref(prior(next(begin(v)))) == 1);
    +assert(deref(next(begin(v))) == 2);
    +assert(deref(prior(next(begin(v)))) == 1);
     
    diff --git a/doc/html/fusion/iterator/metafunctions.html b/doc/html/fusion/iterator/metafunctions.html index a3796084..3e81b9b9 100644 --- a/doc/html/fusion/iterator/metafunctions.html +++ b/doc/html/fusion/iterator/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - +advance - + @@ -26,18 +26,17 @@
    - + Description

    Moves an iterator a specified distance.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename M
         >
    @@ -47,7 +46,7 @@
     };
     
    -

    Table 1.17. Parameters

    +

    Table 1.17. Parameters

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

    - I + I

    @@ -94,7 +93,7 @@

    - M + M

    @@ -113,44 +112,41 @@
    - + Expression Semantics
    -
    -result_of::advance<I,M>::type
    +
    result_of::advance<I,M>::type
     

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

    - Semantics: Returns an iterator a distance - M from I. - If I is a Semantics: Returns an iterator a distance + M from I. + If I is a Bidirectional - Iterator then M + Iterator then M may be negative.

    - + Header
    -
    -#include <boost/fusion/iterator/advance.hpp>
    +
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    -
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +
    typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));
    +BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance<first, boost::mpl::int_<2> >::type, third>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/advance_c.html b/doc/html/fusion/iterator/metafunctions/advance_c.html index 426cefda..d645b755 100644 --- a/doc/html/fusion/iterator/metafunctions/advance_c.html +++ b/doc/html/fusion/iterator/metafunctions/advance_c.html @@ -3,7 +3,7 @@ advance_c - + @@ -26,18 +26,17 @@
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         int N
         >
    @@ -47,7 +46,7 @@
     };
     
    -

    Table 1.18. Parameters

    +

    Table 1.18. Parameters

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

    - I + I

    @@ -94,7 +93,7 @@

    - N + N

    @@ -112,44 +111,41 @@
    - + Expression Semantics
    -
    -result_of::advance_c<I, N>::type
    +
    result_of::advance_c<I, N>::type
     

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

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

    - + Header
    -
    -#include <boost/fusion/iterator/advance.hpp>
    +
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    -
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +
    typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance_c<first, 2>::type, third>));
    +BOOST_MPL_ASSERT((result_of::equal_to<result_of::advance_c<first, 2>::type, third>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/deref.html b/doc/html/fusion/iterator/metafunctions/deref.html index 0d49a882..ade8d313 100644 --- a/doc/html/fusion/iterator/metafunctions/deref.html +++ b/doc/html/fusion/iterator/metafunctions/deref.html @@ -3,7 +3,7 @@ deref - + @@ -26,18 +26,17 @@
    - + Description

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

    - + Synposis
    -
    -template<
    +
    template<
         typename I
         >
     struct deref
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.12. Parameters

    +

    Table 1.12. Parameters

    @@ -73,7 +72,7 @@

    - I + I

    @@ -92,43 +91,40 @@
    - + Expression Semantics
    -
    -result_of::deref<I>::type
    +
    result_of::deref<I>::type
     

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

    - Semantics: Returns the result of dereferencing - an iterator of type I. + Semantics: Returns the result of dereferencing + an iterator of type I.

    - + Header
    -
    -#include <boost/fusion/iterator/deref.hpp>
    +
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    -
    -typedef vector<int,int&> vec;
    +
    typedef vector<int,int&> vec;
     typedef const vec const_vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
     
    -typedef result_of::begin<const_vec>::type const_first;
    -typedef result_of::next<const_first>::type const_second;
    +typedef result_of::begin<const_vec>::type const_first;
    +typedef result_of::next<const_first>::type const_second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/distance.html b/doc/html/fusion/iterator/metafunctions/distance.html index 7f825ef8..7318c4eb 100644 --- a/doc/html/fusion/iterator/metafunctions/distance.html +++ b/doc/html/fusion/iterator/metafunctions/distance.html @@ -3,7 +3,7 @@ distance - + @@ -26,18 +26,17 @@
    - + Description

    Returns the distance between two iterators.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename J
         >
    @@ -47,7 +46,7 @@
     };
     
    -

    Table 1.16. Parameters

    +

    Table 1.16. Parameters

    @@ -74,7 +73,7 @@

    - I, J + I, J

    @@ -93,40 +92,37 @@
    - + Expression Semantics
    -
    -result_of::distance<I, J>::type
    +
    result_of::distance<I, J>::type
     

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

    - Semantics: Returns the distance between - iterators of types I and - J. + Semantics: Returns the distance between + iterators of types I and + J.

    - + Header
    -
    -#include <boost/fusion/iterator/distance.hpp>
    +
    #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    - + Example
    -
    -typedef vector<int,double,char> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    -typedef result_of::distance<first,third>::type dist;
    +
    typedef vector<int,double,char> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
    +typedef result_of::distance<first,third>::type dist;
     
     BOOST_MPL_ASSERT_RELATION(dist::value, ==, 2);
     
    diff --git a/doc/html/fusion/iterator/metafunctions/equal_to.html b/doc/html/fusion/iterator/metafunctions/equal_to.html index 6dc3d549..80a64102 100644 --- a/doc/html/fusion/iterator/metafunctions/equal_to.html +++ b/doc/html/fusion/iterator/metafunctions/equal_to.html @@ -3,7 +3,7 @@ equal_to - + @@ -26,20 +26,19 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename J
         >
    @@ -49,7 +48,7 @@
     };
     
    -

    Table 1.15. Parameters

    +

    Table 1.15. Parameters

    @@ -76,7 +75,7 @@

    - I, J + I, J

    @@ -93,40 +92,37 @@
    - + Expression Semantics
    -
    -result_of::equal_to<I, J>::type
    +
    result_of::equal_to<I, J>::type
     

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

    - Semantics: Returns boost::mpl::true_ - if I and J are iterators to the same position. - Returns boost::mpl::false_ otherwise. + Semantics: Returns boost::mpl::true_ + if I and J are iterators to the same position. + Returns boost::mpl::false_ otherwise.

    - + Header
    -
    -#include <boost/fusion/iterator/equal_to.hpp>
    +
    #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    - + Example
    -
    -typedef vector<int,double> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::end<vec>::type last;
    -BOOST_MPL_ASSERT((result_of::equal_to<first, first>));
    -BOOST_MPL_ASSERT_NOT((result_of::equal_to<first,last>));
    +
    typedef vector<int,double> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::end<vec>::type last;
    +BOOST_MPL_ASSERT((result_of::equal_to<first, first>));
    +BOOST_MPL_ASSERT_NOT((result_of::equal_to<first,last>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/next.html b/doc/html/fusion/iterator/metafunctions/next.html index 6f3f418f..476d6f70 100644 --- a/doc/html/fusion/iterator/metafunctions/next.html +++ b/doc/html/fusion/iterator/metafunctions/next.html @@ -3,7 +3,7 @@ next - + @@ -26,18 +26,17 @@
    - + Description

    Returns the type of the next iterator in a sequence.

    - + Synposis
    -
    -template<
    +
    template<
         typename I
         >
     struct next
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.13. Parameters

    +

    Table 1.13. Parameters

    @@ -73,7 +72,7 @@

    - I + I

    @@ -92,38 +91,35 @@
    - + Expression Semantics
    -
    -result_of::next<I>::type
    +
    result_of::next<I>::type
     

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

    - Semantics: Returns an iterator to the - next element in the sequence after I. + Semantics: Returns an iterator to the + next element in the sequence after I.

    - + Header
    -
    -#include <boost/fusion/iterator/next.hpp>
    +
    #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    - + Example
    -
    -typedef vector<int,double> vec;
    -typedef result_of::next<result_of::begin<vec>::type>::type second;
    +
    typedef vector<int,double> vec;
    +typedef result_of::next<result_of::begin<vec>::type>::type second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/prior.html b/doc/html/fusion/iterator/metafunctions/prior.html index 5a610de9..376fd669 100644 --- a/doc/html/fusion/iterator/metafunctions/prior.html +++ b/doc/html/fusion/iterator/metafunctions/prior.html @@ -3,7 +3,7 @@ prior - + @@ -26,18 +26,17 @@
    - + Description

    Returns the type of the previous iterator in a sequence.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I
         >
     struct prior
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.14. Parameters

    +

    Table 1.14. Parameters

    @@ -73,7 +72,7 @@

    - I + I

    @@ -92,41 +91,38 @@
    - + Expression Semantics
    -
    -result_of::prior<I>::type
    +
    result_of::prior<I>::type
     

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

    - Semantics: Returns an iterator to the - previous element in the sequence before I. + Semantics: Returns an iterator to the + previous element in the sequence before I.

    - + Header
    -
    -#include <boost/fusion/iterator/prior.hpp>
    +
    #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    - + Example
    -
    -typedef vector<int,double> vec;
    -typedef result_of::next<result_of::begin<vec>::type>::type second;
    +
    typedef vector<int,double> vec;
    +typedef result_of::next<result_of::begin<vec>::type>::type second;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, double>));
     
    -typedef result_of::prior<second>::type first;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    +typedef result_of::prior<second>::type first;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
     
    diff --git a/doc/html/fusion/iterator/metafunctions/value_of.html b/doc/html/fusion/iterator/metafunctions/value_of.html index 2dfe4eaf..22e15a59 100644 --- a/doc/html/fusion/iterator/metafunctions/value_of.html +++ b/doc/html/fusion/iterator/metafunctions/value_of.html @@ -3,7 +3,7 @@ value_of - + @@ -26,18 +26,17 @@
    - + Description

    Returns the type stored at the position of an iterator.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I
         >
     struct value_of
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.11. Parameters

    +

    Table 1.11. Parameters

    @@ -73,7 +72,7 @@

    - I + I

    @@ -92,41 +91,38 @@
    - + Expression Semantics
    -
    -result_of::value_of<I>::type
    +
    result_of::value_of<I>::type
     

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

    - Semantics: Returns the type stored in - a sequence at iterator position I. + Semantics: Returns the type stored in + a sequence at iterator position I.

    - + Header
    -
    -#include <boost/fusion/iterator/value_of.hpp>
    +
    #include <boost/fusion/iterator/value_of.hpp>
     #include <boost/fusion/include/value_of.hpp>
     
    - + Example
    -
    -typedef vector<int,int&,const int&> vec;
    -typedef result_of::begin<vec>::type first;
    -typedef result_of::next<first>::type second;
    -typedef result_of::next<second>::type third;
    +
    typedef vector<int,int&,const int&> vec;
    +typedef result_of::begin<vec>::type first;
    +typedef result_of::next<first>::type second;
    +typedef result_of::next<second>::type third;
     
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, int&>));
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<third>::type, const int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<first>::type, int>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<second>::type, int&>));
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_of<third>::type, const int&>));
     
    diff --git a/doc/html/fusion/iterator/operator.html b/doc/html/fusion/iterator/operator.html index b32d3c47..eaa00c5e 100644 --- a/doc/html/fusion/iterator/operator.html +++ b/doc/html/fusion/iterator/operator.html @@ -3,7 +3,7 @@ Operator - + diff --git a/doc/html/fusion/iterator/operator/operator_equality.html b/doc/html/fusion/iterator/operator/operator_equality.html index e932b79c..d81440d8 100644 --- a/doc/html/fusion/iterator/operator/operator_equality.html +++ b/doc/html/fusion/iterator/operator/operator_equality.html @@ -4,7 +4,7 @@ Operator == - + Operator ==
    - + Description

    Compares 2 iterators for equality.

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

    Table 1.9. Parameters

    +

    Table 1.9. Parameters

    @@ -76,7 +75,7 @@

    - i, j + i, j

    @@ -93,27 +92,25 @@
    - + Expression Semantics
    -
    -i == j
    +
    i == j
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Equivalent to result_of::equal_to<I,J>::value - where I and J are the types of i - and j respectively. + Semantics: Equivalent to result_of::equal_to<I,J>::value + where I and J are the types of i + and j respectively.

    - + Header
    -
    -#include <boost/fusion/iterator/equal_to.hpp>
    +
    #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    diff --git a/doc/html/fusion/iterator/operator/operator_inequality.html b/doc/html/fusion/iterator/operator/operator_inequality.html index 3c86e83f..719a922b 100644 --- a/doc/html/fusion/iterator/operator/operator_inequality.html +++ b/doc/html/fusion/iterator/operator/operator_inequality.html @@ -4,7 +4,7 @@ Operator != - + Operator !=
    - + Description

    Compares 2 iterators for inequality.

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

    Table 1.10. Parameters

    +

    Table 1.10. Parameters

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

    - i, j + i, j

    @@ -92,24 +91,23 @@
    - + Expression Semantics

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Equivalent to !result_of::equal_to<I,J>::value - where I and J are the types of i - and j respectively. + Semantics: Equivalent to !result_of::equal_to<I,J>::value + where I and J are the types of i + and j respectively.

    - + Header
    -
    -#include <boost/fusion/iterator/equal_to.hpp>
    +
    #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    diff --git a/doc/html/fusion/iterator/operator/operator_unary_star.html b/doc/html/fusion/iterator/operator/operator_unary_star.html index 05cda673..01fee114 100644 --- a/doc/html/fusion/iterator/operator/operator_unary_star.html +++ b/doc/html/fusion/iterator/operator/operator_unary_star.html @@ -4,7 +4,7 @@ Operator * - + @@ -30,24 +30,23 @@ *"> Operator *
    - + Description

    Dereferences an iterator.

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

    Table 1.8. Parameters

    +

    Table 1.8. Parameters

    @@ -74,7 +73,7 @@

    - i + i

    @@ -93,40 +92,37 @@
    - + Expression Semantics
    -
    -*i
    +
    *i
     

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

    - Semantics: Equivalent to deref(i). + Semantics: Equivalent to deref(i).

    - + Header
    -
    -#include <boost/fusion/iterator/deref.hpp>
    +
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    -
    -typedef vector<int,int&> vec;
    +
    typedef vector<int,int&> vec;
     
     int i(0);
     vec v(1,i);
    -assert(*begin(v) == 1);
    -assert(*next(begin(v)) == 0);
    -assert(&(*next(begin(v))) == &i);
    +assert(*begin(v) == 1);
    +assert(*next(begin(v)) == 0);
    +assert(&(*next(begin(v))) == &i);
     
    diff --git a/doc/html/fusion/notes.html b/doc/html/fusion/notes.html index c19a134b..114bc338 100644 --- a/doc/html/fusion/notes.html +++ b/doc/html/fusion/notes.html @@ -3,11 +3,11 @@ Notes - + - + @@ -21,37 +21,37 @@

    -PrevUpHomeNext +PrevUpHomeNext

    - + Recursive Inlined Functions

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

    - + Overloaded Functions

    Associative sequences use function overloading to implement membership testing and type associated key lookup. This amounts to constant runtime and amortized - constant compile time complexities. There is an overloaded function, f(k), for each key type k. The compiler chooses the appropriate function - given a key, k. + constant compile time complexities. There is an overloaded function, f(k), for each key type k. The compiler chooses the appropriate function + given a key, k.

    - + Tag Dispatching

    @@ -70,11 +70,10 @@

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

    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     struct begin
     {
         typedef typename
    @@ -88,22 +87,22 @@
         

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

    - + Extensibility

    @@ -115,13 +114,13 @@ and MPL on account of the lazy nature of fusion Algorithms. STL - containers extend themselves in place though member functions such as push_back and insert. MPL + containers extend themselves in place though member functions such as push_back and insert. MPL sequences, on the other hand, are extended through "intrinsic" functions that actually return whole sequences. MPL is purely functional and can not have side effects. For example, MPL's - push_back does not actually - mutate an mpl::vector. It can't do that. Instead, it returns - an extended mpl::vector. + push_back does not actually + mutate an mpl::vector. It can't do that. Instead, it returns + an extended mpl::vector.

    Like MPL, Fusion @@ -131,91 +130,84 @@ are sequences that do not actually contain data, but instead impart an alternative presentation over the data from one or more underlying sequences. Views are proxies. They provide an efficient yet purely functional way to work on - potentially expensive sequence operations. For example, given a vector, Fusion's push_back returns a joint_view, instead of an actual extended - vector. - A joint_view + potentially expensive sequence operations. For example, given a vector, Fusion's push_back returns a joint_view, instead of an actual extended + vector. + A joint_view holds a reference to the original sequence plus the appended data --making it very cheap to pass around.

    - + Element Conversion

    - Functions that take in elemental values to form sequences (e.g. make_list) convert their arguments + Functions that take in elemental values to form sequences (e.g. make_list) convert their arguments to something suitable to be stored as a sequence element. In general, the element types are stored as plain values. Example:

    -
    -make_list(1, 'x')
    +
    make_list(1, 'x')
     

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

    There are a few exceptions, however.

    - Arrays: + Arrays:

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

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

    - creates a list + creates a list of type

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

    - Function pointers: + Function pointers:

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

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

    - creates a list + creates a list of type

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

    - + boost::ref

    - Fusion's generation functions (e.g. make_list) by default stores the element + Fusion's generation functions (e.g. make_list) by default stores the element types as plain non-reference types. Example:

    -
    -void foo(const A& a, B& b) {
    +
    void foo(const A& a, B& b) {
         ...
    -    make_list(a, b)
    +    make_list(a, b)
     

    - creates a list + creates a list of type

    -
    -list<A, B>
    +
    list<A, B>
     

    - Sometimes the plain non-reference type is not desired. You can use boost::ref - and boost::cref to store references or const references + Sometimes the plain non-reference type is not desired. You can use boost::ref + and boost::cref to store references or const references (respectively) instead. The mechanism does not compromise const correctness since a const object wrapped with ref results in a tuple element with const reference type (see the fifth code line below). Examples: @@ -223,13 +215,12 @@

    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&>
    +
    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 @@ -237,11 +228,11 @@



    -

    [14] +

    [14] Note that the type of a string literal is an array of const characters, - not const char*. To get make_list to create a list with an element of a non-const - array type one must use the ref - wrapper (see boost::ref). + not const char*. To get make_list to create a list with an element of a non-const + array type one must use the ref + wrapper (see boost::ref).

    @@ -256,7 +247,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html index 2b8ba58c..656c5ac4 100644 --- a/doc/html/fusion/organization.html +++ b/doc/html/fusion/organization.html @@ -3,7 +3,7 @@ Organization - + @@ -34,7 +34,7 @@ The library is organized in three layers:

    - + Layers

    @@ -47,15 +47,15 @@

    - The entire library is found in the "boost/fusion" + The entire library is found in the "boost/fusion" directory. Modules are organized in directories. Each module has its own header file placed in the same directory with the actual module-directory. For example, - there exists "boost/fusion/support.hpp" + there exists "boost/fusion/support.hpp" in the same directory as "boost/fusion/support". Everything, except those found inside "detail" directories, is public.

    - There is also a "boost/fusion/include/" + There is also a "boost/fusion/include/" directory that contains all the headers to all the components and modules. If you are unsure where to find a specific component or module, or don't want to fuss with hierarchy and nesting, use this. @@ -65,7 +65,7 @@ against.

    - + Directory

      @@ -186,28 +186,27 @@

    - + Example

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

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

    - The first includes all containers The second includes only list - [4] + The first includes all containers The second includes only list + [4] .



    -

    [4] +

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

    diff --git a/doc/html/fusion/preface.html b/doc/html/fusion/preface.html index 5a8da91d..f4fdcd48 100644 --- a/doc/html/fusion/preface.html +++ b/doc/html/fusion/preface.html @@ -3,7 +3,7 @@ Preface - + @@ -38,13 +38,13 @@

    - --Niklaus Wirth + --Niklaus Wirth

    - + Description

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

    - + Motivation

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

    - + How to use this manual

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

    -

    Table 1.1. Icons

    +

    Table 1.1. Icons

    @@ -199,7 +199,7 @@ Tools.

    - + Support

    diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html index 7b92387d..9a3b57d5 100644 --- a/doc/html/fusion/quick_start.html +++ b/doc/html/fusion/quick_start.html @@ -3,7 +3,7 @@ Quick Start - + @@ -27,56 +27,52 @@ Quick Start

    I assume the reader is already familiar with tuples (Boost.Tuple) - and its ancestor std::pair. The tuple is a generalization of std::pair + and its ancestor std::pair. The tuple is a generalization of std::pair for multiple heterogeneous elements (triples, quadruples, etc.). The tuple - is more or less a synonym for fusion's vector. + is more or less a synonym for fusion's vector.

    For starters, we shall include all of Fusion's Sequence(s) - [2] + [2] :

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

    - Let's begin with a vector - [3] + Let's begin with a vector + [3] :

    -
    -vector<int, char, std::string> stuff(1, 'x', "howdy");
    -int i = at_c<0>(stuff);
    -char ch = at_c<1>(stuff);
    -std::string s = at_c<2>(stuff);
    +
    vector<int, char, std::string> stuff(1, 'x', "howdy");
    +int i = at_c<0>(stuff);
    +char ch = at_c<1>(stuff);
    +std::string s = at_c<2>(stuff);
     

    - Just replace tuple for vector - and get for at_c and this is exactly like + Just replace tuple for vector + and get for at_c and this is exactly like Boost.Tuple. Actually, either names can be used interchangeably. Yet, the similarity ends - there. You can do a lot more with Fusion vector or tuple. + there. You can do a lot more with Fusion vector or tuple. Let's see some examples.

    - + Print the vector as XML

    First, let's include the algorithms:

    -
    -#include <boost/fusion/algorithm.hpp>
    +
    #include <boost/fusion/algorithm.hpp>
     #include <boost/fusion/include/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
    +
    struct print_xml
     {
         template <typename T>
         void operator()(T const& x) const
    @@ -92,120 +88,114 @@
     

    Now, finally:

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

    - That's it! for_each is a fusion algorithm. + That's it! for_each is a fusion algorithm. It is a generic algorithm similar to STL's. It iterates over the sequence and calls a user supplied function. In our case, - it calls print_xml's operator() for - each element in stuff. + it calls print_xml's operator() for + each element in stuff.

    -
    [Caution] Caution

    - The result of typeid(x).name() is platform specific. The code here is +

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

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

    - + Print only pointers

    Let's get a little cleverer. Say we wish to write a generic function that takes in an arbitrary sequence and XML prints only those elements - which are pointers. Ah, easy. First, let's include the is_pointer + which are pointers. Ah, easy. First, let's include the is_pointer boost type trait:

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

    Then, simply:

    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     void xml_print_pointers(Sequence const& seq)
     {
    -    for_each(filter_if<boost::is_pointer<_> >(seq), print_xml());
    +    for_each(filter_if<boost::is_pointer<_> >(seq), print_xml());
     }
     

    - filter_if is another Fusion - algorithm. It returns a filter_view, a conforming Fusion sequence. + filter_if is another Fusion + algorithm. It returns a filter_view, a conforming Fusion sequence. This view reflects only those elements that pass the given predicate. In this - case, the predicate is boost::is_pointer<_>. - This "filtered view" is then passed to the for_each algorithm, which then prints + case, the predicate is boost::is_pointer<_>. + This "filtered view" is then passed to the for_each algorithm, which then prints the "filtered view" as XML.

    Easy, right?

    - + Associative tuples

    Ok, moving on...

    - Apart from vector, + Apart from vector, fusion has a couple of other sequence types to choose from. Each sequence has - its own characteristics. We have list, set, map, plus a multitude of views that provide various ways to present + its own characteristics. We have list, set, map, plus a multitude of views that provide various ways to present the sequences.

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

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

    - map + map is an associative sequence. Its elements are Fusion pairs which differ somewhat - from std::pair. Fusion pairs only contain one member, + from std::pair. Fusion pairs only contain one member, with the type of their second template parameter. The first type parameter of the pair is used as an index to the associated element in the sequence. - For example, given a a_person - of type, person, you can do: + For example, given a a_person + of type, person, you can do:

    -
    -using namespace fields;
    -std::string person_name = at_key<name>(a_person);
    -int person_age = at_key<age>(a_person);
    +
    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. + Why go through all this trouble, you say? Well, for one, unlike the struct, we are dealing with a generic data structure. There are a multitude of facilities available at your disposal provided out of the box with fusion or written by others. With these facilities, introspection comes for free, for example. We can write one serialization function (well, two, if you consider loading and saving) that will work for all your fusion - maps. + maps. Example:

    -
    -struct saver
    +
    struct saver
     {
         template <typename Pair>
         void operator()(Pair const& data) const
    @@ -217,17 +207,17 @@
     template <typename Stuff>
     void save(Stuff const& stuff)
     {
    -    for_each(stuff, saver());
    +    for_each(stuff, saver());
     }
     

    - The save function is generic - and will work for all types of stuff - regardless if it is a person, - a dog or a whole alternate_universe. + The save function is generic + and will work for all types of stuff + regardless if it is a person, + a dog or a whole alternate_universe.

    - + Tip of the Iceberg

    @@ -238,14 +228,14 @@



    -

    [2] +

    [2] There are finer grained header files available if you wish to have more control over which components to include (see section Orgainization for details).

    -

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

    [3] + Unless otherwise noted, components are in namespace boost::fusion. + For the sake of simplicity, code in this quick start implies using directives for the fusion components we will be using.

    diff --git a/doc/html/fusion/references.html b/doc/html/fusion/references.html index e5d6d26a..f83507ef 100644 --- a/doc/html/fusion/references.html +++ b/doc/html/fusion/references.html @@ -3,7 +3,7 @@ References - + diff --git a/doc/html/fusion/sequence.html b/doc/html/fusion/sequence.html index 0184e041..b282a4ee 100644 --- a/doc/html/fusion/sequence.html +++ b/doc/html/fusion/sequence.html @@ -3,7 +3,7 @@ Sequence - + @@ -59,11 +59,10 @@ type that can be used to iterate through the Sequence's elements.

    - + Header

    -
    -#include <boost/fusion/sequence.hpp>
    +
    #include <boost/fusion/sequence.hpp>
     #include <boost/fusion/include/sequence.hpp>
     
    diff --git a/doc/html/fusion/sequence/concepts.html b/doc/html/fusion/sequence/concepts.html index 9fd3ec7e..a60ba665 100644 --- a/doc/html/fusion/sequence/concepts.html +++ b/doc/html/fusion/sequence/concepts.html @@ -3,7 +3,7 @@ Concepts - + @@ -40,7 +40,7 @@ Fusion Sequences are organized into a hierarchy of concepts.

    - + Traversal

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

    - + Associativity

    diff --git a/doc/html/fusion/sequence/concepts/associative_sequence.html b/doc/html/fusion/sequence/concepts/associative_sequence.html index ee092f1f..737029c0 100644 --- a/doc/html/fusion/sequence/concepts/associative_sequence.html +++ b/doc/html/fusion/sequence/concepts/associative_sequence.html @@ -4,7 +4,7 @@ Associative Sequence - + Associative Sequence

    - + Description

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

    Notation

    -
    s
    +
    s

    An Associative Sequence

    -
    S
    +
    S

    An Associative Sequence type

    -
    K
    +
    K

    An arbitrary key type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    - + Valid Expressions
    @@ -111,7 +111,7 @@

    - has_key<K>(s) + has_key<K>(s)

    @@ -133,7 +133,7 @@

    - at_key<K>(s) + at_key<K>(s)

    @@ -154,8 +154,8 @@

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

    @@ -165,9 +165,9 @@

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

    @@ -180,7 +180,7 @@
    - + Result Type Expressions
    @@ -205,8 +205,8 @@

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

    @@ -218,8 +218,8 @@

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

    @@ -231,8 +231,8 @@

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

    @@ -244,15 +244,15 @@
    - + Expression Semantics
    @@ -277,42 +277,42 @@

    - has_key<K>(s) + has_key<K>(s)

    - A boolean Integral Constant c - such that c::value == - true if and only if there - is one or more elements with the key k - in s; see has_key. + A boolean Integral Constant c + such that c::value == + true if and only if there + is one or more elements with the key k + in s; see has_key.

    - at_key<K>(s) + at_key<K>(s)

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

    - + Models
    diff --git a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html index 3e7b0d79..bc17dc8e 100644 --- a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html +++ b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html @@ -4,7 +4,7 @@ Bidirectional Sequence - +Bidirectional Sequence
    - + Description

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

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

    Notation

    -
    s
    +
    s

    A Forward Sequence

    -
    S
    +
    S

    A Forward Sequence type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    - + Valid Expressions
    @@ -114,7 +114,7 @@ @@ -207,7 +207,7 @@

    - begin(s) + begin(s)

    @@ -137,7 +137,7 @@

    - end(s) + end(s)

    @@ -160,7 +160,7 @@

    - back(s) + back(s)

    @@ -181,8 +181,8 @@

    - back(s) - = o + back(s) + = o

    @@ -192,9 +192,9 @@

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

    - + Result Type Expressions
    @@ -232,7 +232,7 @@

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

    @@ -244,7 +244,7 @@

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

    @@ -256,7 +256,7 @@

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

    @@ -268,7 +268,7 @@
    - + Expression Semantics
    @@ -298,35 +298,35 @@

    - back(s) + back(s)

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

    - + Models
    diff --git a/doc/html/fusion/sequence/concepts/forward_sequence.html b/doc/html/fusion/sequence/concepts/forward_sequence.html index 7d5f8719..a4efedfd 100644 --- a/doc/html/fusion/sequence/concepts/forward_sequence.html +++ b/doc/html/fusion/sequence/concepts/forward_sequence.html @@ -4,7 +4,7 @@ Forward Sequence - + @@ -30,7 +30,7 @@ Sequence">Forward Sequence
    - + Description

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

    Notation

    -
    s
    +
    s

    A Forward Sequence

    -
    S
    +
    S

    A Forward Sequence type

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    - + Valid Expressions
    @@ -102,7 +102,7 @@

    - begin(s) + begin(s)

    @@ -125,7 +125,7 @@

    - end(s) + end(s)

    @@ -148,7 +148,7 @@

    - size(s) + size(s)

    @@ -170,7 +170,7 @@

    - empty(s) + empty(s)

    @@ -192,7 +192,7 @@

    - front(s) + front(s)

    @@ -213,8 +213,8 @@

    - front(s) - = o + front(s) + = o

    @@ -224,9 +224,9 @@

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

    @@ -239,7 +239,7 @@
    - + Result Type Expressions
    @@ -264,7 +264,7 @@

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

    @@ -276,7 +276,7 @@

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

    @@ -288,7 +288,7 @@

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

    @@ -300,7 +300,7 @@

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

    @@ -312,7 +312,7 @@

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

    @@ -324,7 +324,7 @@
    - + Expression Semantics
    @@ -349,70 +349,70 @@

    - begin(s) + begin(s)

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

    - end(s) + end(s)

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

    - size(s) + size(s)

    - The size of the sequence; see size. + The size of the sequence; see size.

    - empty(s) + empty(s)

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

    - front(s) + front(s)

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

    - + Invariants

    @@ -420,42 +420,42 @@

    • -[begin(s), end(s)) is always a valid range. +[begin(s), end(s)) is always a valid range.
    • An Algorithm that iterates through - the range [begin(s), end(s)) will pass through every element of - s exactly once. + the range [begin(s), end(s)) will pass through every element of + s exactly once.
    • -begin(s) - is identical to end(s)) - if and only if s is empty. +begin(s) + is identical to end(s)) + if and only if s is empty.
    • - Two different iterations through s + Two different iterations through s will access its elements in the same order.
    - + Models
    diff --git a/doc/html/fusion/sequence/concepts/random_access_sequence.html b/doc/html/fusion/sequence/concepts/random_access_sequence.html index 5de20cec..e09f816f 100644 --- a/doc/html/fusion/sequence/concepts/random_access_sequence.html +++ b/doc/html/fusion/sequence/concepts/random_access_sequence.html @@ -4,7 +4,7 @@ Random Access Sequence - +Random Access Sequence
    - + Description

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

    - + Refinement of
    @@ -55,31 +55,31 @@

    Notation

    -
    s
    +
    s

    A Random Access Sequence

    -
    S
    +
    S

    A Random Access Sequence type

    -
    N
    +
    N

    An MPL Integral Constant

    -
    o
    +
    o

    An arbitrary object

    -
    e
    +
    e

    A Sequence element

    - + Valid Expressions
    @@ -121,7 +121,7 @@ @@ -214,7 +214,7 @@

    - begin(s) + begin(s)

    @@ -144,7 +144,7 @@

    - end(s) + end(s)

    @@ -167,7 +167,7 @@

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

    @@ -188,8 +188,8 @@

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

    @@ -199,9 +199,9 @@

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

    - + Result Type Expressions
    @@ -239,7 +239,7 @@

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

    @@ -251,7 +251,7 @@

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

    @@ -263,8 +263,8 @@

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

    @@ -276,8 +276,8 @@

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

    @@ -289,15 +289,15 @@
    - + Expression Semantics
    @@ -327,35 +327,35 @@

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

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

    - + Models
    diff --git a/doc/html/fusion/sequence/intrinsic.html b/doc/html/fusion/sequence/intrinsic.html index 7a65a0fe..13676419 100644 --- a/doc/html/fusion/sequence/intrinsic.html +++ b/doc/html/fusion/sequence/intrinsic.html @@ -3,7 +3,7 @@ Intrinsic - + Algorithms, are not generic across the full Sequence repertoire. They need to be implemented for each Fusion Sequence - [5] + [5] .

    - + Header

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


    -

    [5] +

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

    diff --git a/doc/html/fusion/sequence/intrinsic/functions.html b/doc/html/fusion/sequence/intrinsic/functions.html index 69208798..1106118c 100644 --- a/doc/html/fusion/sequence/intrinsic/functions.html +++ b/doc/html/fusion/sequence/intrinsic/functions.html @@ -3,7 +3,7 @@ Functions - + diff --git a/doc/html/fusion/sequence/intrinsic/functions/at.html b/doc/html/fusion/sequence/intrinsic/functions/at.html index 9c4b9d4b..9ed332e8 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at.html @@ -3,7 +3,7 @@ at - + @@ -26,27 +26,26 @@
    - + 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
    +
    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
    +typename result_of::at<Sequence const, N>::type
     at(Sequence const& seq);
     
    - + Parameters
    @@ -76,7 +75,7 @@

    - seq + seq

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

    - N + N

    @@ -113,47 +112,43 @@
    - + Expression Semantics
    -
    -at<N>(seq);
    +
    at<N>(seq);
     

    - Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the N-th element from the beginning of the sequence seq + if seq is mutable and + e = + o, where e is the N-th element from the beginning of the sequence, is a valid expression. Else, returns a type convertable to the N-th element from the beginning of the sequence.

    - Precondition: 0 - <= N::value < size(s) + Precondition: 0 + <= N::value < size(s)

    - Semantics: Equivalent to + Semantics: Equivalent to

    -
    -deref(advance<N>(begin(s)))
    +
    deref(advance<N>(begin(s)))
     
    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/at.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/at.hpp>
     #include <boost/fusion/include/at.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(at<mpl::int_<1> >(v) == 2);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_c.html b/doc/html/fusion/sequence/intrinsic/functions/at_c.html index 7cb5f0bb..abdf6e5a 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -26,27 +26,26 @@
    - + 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
    +
    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
    +typename result_of::at_c<Sequence const, N>::type
     at_c(Sequence const& seq);
     
    - + Parameters
    @@ -76,7 +75,7 @@

    - seq + seq

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

    - N + N

    @@ -112,48 +111,44 @@
    - + Expression Semantics
    -
    -at_c<N>(seq);
    +
    at_c<N>(seq);
     

    - Return type: Returns a reference to - the N-th element from the beginning of the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the N-th element from the beginning of the sequence seq + if seq is mutable and + e = + o, where e is the N-th element from the beginning of the sequence, is a valid expression. Else, returns a type convertable to the N-th element from the beginning of the sequence.

    - Precondition: 0 + Precondition: 0 <= N - < size(s) + < size(s)

    - Semantics: Equivalent to + Semantics: Equivalent to

    -
    -deref(advance<N>(begin(s)))
    +
    deref(advance<N>(begin(s)))
     
    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/at_c.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/at_c.hpp>
     #include <boost/fusion/include/at_c.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(at_c<1>(v) == 2);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_key.html b/doc/html/fusion/sequence/intrinsic/functions/at_key.html index ec15a26a..cea5f8d6 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -26,27 +26,26 @@
    - + 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
    +
    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
    +typename result_of::at_key<Sequence const, Key>::type
     at_key(Sequence const& seq);
     
    - + Parameters
    @@ -76,7 +75,7 @@

    - seq + seq

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

    - Key + Key

    @@ -112,43 +111,40 @@
    - + Expression Semantics
    -
    -at_key<Key>(seq);
    +
    at_key<Key>(seq);
     

    - Return type: Returns a reference to - the element associated with Key from the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the element associated with Key from the sequence seq + if seq is mutable and + e = + o, where e is the element associated with Key, is a valid expression. Else, returns a type convertable to the element associated with Key.

    - Precondition: has_key<Key>(seq) == true + Precondition: has_key<Key>(seq) == true

    - Semantics: Returns the element associated + Semantics: Returns the element associated with Key.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/at_key.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     #include <boost/fusion/include/at_key.hpp>
     
    - + Example
    -
    -set<int, char, bool> s(1, 'x', true);
    +
    set<int, char, bool> s(1, 'x', true);
     assert(at_key<char>(s) == 'x');
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/back.html b/doc/html/fusion/sequence/intrinsic/functions/back.html index addace54..b2ca5feb 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/back.html +++ b/doc/html/fusion/sequence/intrinsic/functions/back.html @@ -3,7 +3,7 @@ back - + @@ -26,27 +26,26 @@
    - + Description

    Returns the last element in the sequence.

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::back<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::back<Sequence>::type
     back(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::back<Sequence const>::type
    +typename result_of::back<Sequence const>::type
     back(Sequence const& seq);
     
    - + Parameters
    @@ -75,7 +74,7 @@

    - seq + seq

    @@ -93,43 +92,40 @@
    - + Expression Semantics
    -
    -back(seq);
    +
    back(seq);
     

    - Return type: Returns a reference to - the last element in the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the last element in the sequence seq + if seq is mutable and + e = + o, where e is the last element in the sequence, is a valid expression. Else, returns a type convertable to the last element in the sequence.

    - Precondition: empty(seq) == false + Precondition: empty(seq) == false

    - Semantics: Returns the last element + Semantics: Returns the last element in the sequence.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/back.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/back.hpp>
     #include <boost/fusion/include/back.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(back(v) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/begin.html b/doc/html/fusion/sequence/intrinsic/functions/begin.html index 516eec4d..2131c2d8 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/functions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -26,27 +26,26 @@
    - + Description

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

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::begin<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::begin<Sequence>::type
     begin(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::begin<Sequence const>::type
    +typename result_of::begin<Sequence const>::type
     begin(Sequence const& seq);
     
    - + Parameters
    @@ -75,7 +74,7 @@

    - seq + seq

    @@ -93,50 +92,47 @@
    - + Expression Semantics
    -
    -begin(seq);
    +
    begin(seq);
     

    - Return type: Return type: Forward - Iterator if seq + Iterator if seq is a Forward Sequence else, Bidirectional - Iterator if seq + Iterator if seq is a Bidirectional Sequence else, Random - Access Iterator if seq + Access Iterator if seq is a Random Access Sequence.

    - Semantics: Returns an iterator pointing + Semantics: Returns an iterator pointing to the first element in the sequence.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/begin.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/begin.hpp>
     #include <boost/fusion/include/begin.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    -assert(deref(begin(v)) == 1);
    +
    vector<int, int, int> v(1, 2, 3);
    +assert(deref(begin(v)) == 1);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/empty.html b/doc/html/fusion/sequence/intrinsic/functions/empty.html index de9b5c8d..c6ef9483 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/functions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -26,25 +26,24 @@
    - + Description

    - Returns a type convertible to bool - that evaluates to true if - the sequence is empty, else, evaluates to false. + Returns a type convertible to bool + that evaluates to true if + the sequence is empty, else, evaluates to false.

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::empty<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::empty<Sequence>::type
     empty(Sequence const& seq);
     
    - + Parameters
    @@ -73,7 +72,7 @@

    - seq + seq

    @@ -91,34 +90,31 @@
    - + Expression Semantics
    -
    -empty(seq);
    +
    empty(seq);
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Evaluates to true if the sequence is empty, else, evaluates - to false. + Semantics: Evaluates to true if the sequence is empty, else, evaluates + to false.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/empty.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/empty.hpp>
     #include <boost/fusion/include/empty.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(empty(v) == false);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/end.html b/doc/html/fusion/sequence/intrinsic/functions/end.html index 99039044..2c101da1 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/end.html +++ b/doc/html/fusion/sequence/intrinsic/functions/end.html @@ -3,7 +3,7 @@ end - + @@ -26,27 +26,26 @@
    - + Description

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

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::end<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::end<Sequence>::type
     end(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::end<Sequence const>::type
    +typename result_of::end<Sequence const>::type
     end(Sequence const& seq);
     
    - + Parameters
    @@ -75,7 +74,7 @@

    - seq + seq

    @@ -93,50 +92,47 @@
    - + Expression Semantics
    -
    -end(seq);
    +
    end(seq);
     

    - Return type: Return type: Forward - Iterator if seq + Iterator if seq is a Forward Sequence else, Bidirectional - Iterator if seq + Iterator if seq is a Bidirectional Sequence else, Random - Access Iterator if seq + Access Iterator if seq is a Random Access Sequence.

    - Semantics: Returns an iterator pointing + Semantics: Returns an iterator pointing to one element past the end of the sequence.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/end.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/end.hpp>
     #include <boost/fusion/include/end.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    -assert(deref(prior(end(v))) == 3);
    +
    vector<int, int, int> v(1, 2, 3);
    +assert(deref(prior(end(v))) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/front.html b/doc/html/fusion/sequence/intrinsic/functions/front.html index 20fadc19..6b683449 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/front.html +++ b/doc/html/fusion/sequence/intrinsic/functions/front.html @@ -3,7 +3,7 @@ front - + @@ -26,27 +26,26 @@
    - + Description

    Returns the first element in the sequence.

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::front<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::front<Sequence>::type
     front(Sequence& seq);
     
     template <typename Sequence>
    -typename result_of::front<Sequence const>::type
    +typename result_of::front<Sequence const>::type
     front(Sequence const& seq);
     
    - + Parameters
    @@ -75,7 +74,7 @@

    - seq + seq

    @@ -93,43 +92,40 @@
    - + Expression Semantics
    -
    -front(seq);
    +
    front(seq);
     

    - Return type: Returns a reference to - the first element in the sequence seq - if seq is mutable and - e = - o, where e + Return type: Returns a reference to + the first element in the sequence seq + if seq is mutable and + e = + o, where e is the first element in the sequence, is a valid expression. Else, returns a type convertable to the first element in the sequence.

    - Precondition: empty(seq) == false + Precondition: empty(seq) == false

    - Semantics: Returns the first element + Semantics: Returns the first element in the sequence.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/front.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/front.hpp>
     #include <boost/fusion/include/front.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(front(v) == 1);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/has_key.html b/doc/html/fusion/sequence/intrinsic/functions/has_key.html index 25811df4..627c022d 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -26,26 +26,25 @@
    - + Description

    - Returns a type convertible to bool - that evaluates to true if + Returns a type convertible to bool + that evaluates to true if the sequence contains an element associated with a Key, else, evaluates - to false. + to false.

    - + Synopsis
    -
    -template <typename Key, typename Sequence>
    -typename result_of::has_key<Sequence, Key>::type
    +
    template <typename Key, typename Sequence>
    +typename result_of::has_key<Sequence, Key>::type
     has_key(Sequence const& seq);
     
    - + Parameters
    @@ -75,7 +74,7 @@

    - seq + seq

    @@ -94,7 +93,7 @@

    - Key + Key

    @@ -111,34 +110,31 @@
    - + Expression Semantics
    -
    -has_key<Key>(seq);
    +
    has_key<Key>(seq);
     

    - Return type: Convertible to bool. + Return type: Convertible to bool.

    - Semantics: Evaluates to true if the sequence contains an element - associated with Key, else, evaluates to false. + Semantics: Evaluates to true if the sequence contains an element + associated with Key, else, evaluates to false.

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/has_key.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     #include <boost/fusion/include/has_key.hpp>
     
    - + Example
    -
    -set<int, char, bool> s(1, 'x', true);
    +
    set<int, char, bool> s(1, 'x', true);
     assert(has_key<char>(s) == true);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/size.html b/doc/html/fusion/sequence/intrinsic/functions/size.html index aa312a98..7d3e3e8f 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/size.html +++ b/doc/html/fusion/sequence/intrinsic/functions/size.html @@ -3,7 +3,7 @@ size - + @@ -26,24 +26,23 @@
    - + Description

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

    - + Synopsis
    -
    -template <typename Sequence>
    -typename result_of::size<Sequence>::type
    +
    template <typename Sequence>
    +typename result_of::size<Sequence>::type
     size(Sequence const& seq);
     
    - + Parameters
    @@ -72,7 +71,7 @@

    - seq + seq

    @@ -90,34 +89,31 @@
    - + Expression Semantics
    -
    -size(seq);
    +
    size(seq);
     

    - Return type: Convertible to int. + Return type: Convertible to int.

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

    - + Header
    -
    -#include <boost/fusion/sequence/intrinsic/size.hpp>
    +
    #include <boost/fusion/sequence/intrinsic/size.hpp>
     #include <boost/fusion/include/size.hpp>
     
    - + Example
    -
    -vector<int, int, int> v(1, 2, 3);
    +
    vector<int, int, int> v(1, 2, 3);
     assert(size(v) == 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/swap.html b/doc/html/fusion/sequence/intrinsic/functions/swap.html index 3a573a71..ee5bc85d 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/functions/swap.html @@ -3,7 +3,7 @@ swap - + @@ -26,22 +26,21 @@
    - + Description

    Performs an element by element swap of the elements in 2 sequences.

    - + Synopsis
    -
    -template<typename Seq1, typename Seq2>
    +
    template<typename Seq1, typename Seq2>
     void swap(Seq1& seq1, Seq2& seq2);
     
    - + Parameters
    @@ -70,7 +69,7 @@

    - seq1, seq2 + seq1, seq2

    @@ -88,34 +87,32 @@
    - + Expression Semantics
    -
    -swap(seq1, seq2);
    +
    swap(seq1, seq2);
     

    - Return type: void + Return type: void

    - Precondition: size(seq1) == size(seq2) + Precondition: size(seq1) == size(seq2)

    - Semantics: Calls swap(a1, b1) for corresponding elements in seq1 and seq2. + Semantics: Calls swap(a1, b1) for corresponding elements in seq1 and seq2.

    /sequence/intrinsic/swap.hpp>

    - + Example
    -
    -vector<int, std::string> v1(1, "hello"), v2(2, "world");
    +
    vector<int, std::string> v1(1, "hello"), v2(2, "world");
     swap(v1, v2);
    -assert(v1 == make_vector(2, "world"));
    -assert(v2 == make_vector(1, "hello"));
    +assert(v1 == make_vector(2, "world"));
    +assert(v2 == make_vector(1, "hello"));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions.html b/doc/html/fusion/sequence/intrinsic/metafunctions.html index 589d575b..b3968918 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions.html @@ -3,7 +3,7 @@ Metafunctions - + diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html index f627a517..2e8ce95c 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html @@ -3,7 +3,7 @@ at - + @@ -26,20 +26,19 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename N>
     struct at
    @@ -48,7 +47,7 @@
     };
     
    -

    Table 1.25. Parameters

    +

    Table 1.25. Parameters

    @@ -76,7 +75,7 @@

    - Seq + Seq

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

    - N + N

    @@ -114,38 +113,36 @@
    - + Expression Semantics
    -
    -result_of::at<Seq, N>::type
    +
    result_of::at<Seq, N>::type
     

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

    - Semantics: Returns the result type of - using at to access the Nth element of Seq. + Semantics: Returns the result type of + using at to access the Nth element of Seq.

    /sequence/intrinsic/at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));
    +
    typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));
     


    -

    [6] - result_of::at reflects the actual return - type of the function at. Sequence(s) - typically return references to its elements via the at function. If you want - to get the actual element type, use result_of::value_at +

    [6] + result_of::at reflects the actual return + type of the function at. Sequence(s) + typically return references to its elements via the at function. If you want + to get the actual element type, use result_of::value_at

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html index 2e74d5a1..06681be8 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html @@ -3,7 +3,7 @@ at_c - + @@ -26,20 +26,19 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         int M>
     struct at_c
    @@ -48,7 +47,7 @@
     };
     
    -

    Table 1.26. Parameters

    +

    Table 1.26. Parameters

    @@ -76,7 +75,7 @@

    - Seq + Seq

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

    - M + M

    @@ -113,38 +112,36 @@
    - + Expression Semantics
    -
    -result_of::at_c<Seq, M>::type
    +
    result_of::at_c<Seq, M>::type
     

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

    - Semantics: Returns the result type of - using at_c to access the Mth element of Seq. + Semantics: Returns the result type of + using at_c to access the Mth element of Seq.

    /sequence/intrinsic/at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_c<vec, 1>::type, float&>));
    +
    typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_c<vec, 1>::type, float&>));
     


    -

    [7] - result_of::at_c reflects the actual - return type of the function at_c. Sequence(s) - typically return references to its elements via the at_c function. If you want - to get the actual element type, use result_of::value_at_c +

    [7] + result_of::at_c reflects the actual + return type of the function at_c. Sequence(s) + typically return references to its elements via the at_c function. If you want + to get the actual element type, use result_of::value_at_c

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html index e6905a1a..0326cca4 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html @@ -3,7 +3,7 @@ at_key - + @@ -26,20 +26,19 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename Key>
     struct at_key
    @@ -48,7 +47,7 @@
     };
     
    -

    Table 1.30. Parameters

    +

    Table 1.30. Parameters

    @@ -76,7 +75,7 @@

    - Seq + Seq

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

    - Key + Key

    @@ -113,40 +112,38 @@
    - + Expression Semantics
    -
    -result_of::at_key<Seq, Key>::type
    +
    result_of::at_key<Seq, Key>::type
     

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

    - Semantics: Returns the result of using - at_key to access the element - with key type Key in - Seq. + Semantics: Returns the result of using + at_key to access the element + with key type Key in + Seq.

    /sequence/intrinsic/at_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char&>));
    +
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char&>));
     


    -

    [8] - result_of::at_key reflects the actual - return type of the function at_key. _sequence_s - typically return references to its elements via the at_key function. If you - want to get the actual element type, use result_of::value_at_key +

    [8] + result_of::at_key reflects the actual + return type of the function at_key. _sequence_s + typically return references to its elements via the at_key function. If you + want to get the actual element type, use result_of::value_at_key

    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html index 721782f6..5d0de8ba 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html @@ -3,7 +3,7 @@ back - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct back
     {
         typedef unspecified type;
     };
     
    -

    Table 1.23. Parameters

    +

    Table 1.23. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,30 +89,28 @@
    - + Expression Semantics
    -
    -result_of::back<Seq>::type
    +
    result_of::back<Seq>::type
     

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

    - Semantics: The type returned by dereferencing - an iterator to the last element in the sequence. Equivalent to result_of::deref<result_of::prior<result_of::end<Seq>::type>::type>::type. + Semantics: The type returned by dereferencing + an iterator to the last element in the sequence. Equivalent to result_of::deref<result_of::prior<result_of::end<Seq>::type>::type>::type.

    /sequence/intrinsic/back.hpp>

    - + Example
    -
    -typedef vector<int,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::back<vec>::type, char&>));
    +
    typedef vector<int,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::back<vec>::type, char&>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html index cbe37740..dee53a86 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html @@ -3,7 +3,7 @@ begin - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct begin
     {
         typedef unspecified type;
     };
     
    -

    Table 1.19. Parameters

    +

    Table 1.19. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,32 +89,30 @@
    - + Expression Semantics
    -
    -result_of::begin<Seq>::type
    +
    result_of::begin<Seq>::type
     

    - Return type: An iterator modelling the - same traversal concept as Seq. + Return type: An iterator modelling the + same traversal concept as Seq.

    - Semantics: Returns the type of an iterator - to the first element of Seq. + Semantics: Returns the type of an iterator + to the first element of Seq.

    /sequence/intrinsic/begin.hpp>

    - + Example
    -
    -typedef vector<int> vec;
    -typedef result_of::begin<vec>::type it;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::deref<it>::type, int&>))
    +
    typedef vector<int> vec;
    +typedef result_of::begin<vec>::type it;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::deref<it>::type, int&>))
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html index d5b777d0..633ebcbd 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html @@ -3,7 +3,7 @@ empty - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct empty
     {
         typedef unspecified type;
     };
     
    -

    Table 1.21. Parameters

    +

    Table 1.21. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,35 +89,33 @@
    - + Expression Semantics
    -
    -result_of::empty<Seq>::type
    +
    result_of::empty<Seq>::type
     

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

    - Semantics: Returns mpl::true_ - if Seq has zero elements, - mpl::false_ otherwise. + Semantics: Returns mpl::true_ + if Seq has zero elements, + mpl::false_ otherwise.

    /sequence/intrinsic/empty.hpp>

    - + Example
    -
    -typedef vector<> empty_vec;
    -typedef vector<int,float,char> vec;
    +
    typedef vector<> empty_vec;
    +typedef vector<int,float,char> vec;
     
    -BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
    -BOOST_MPL_ASSERT_NOT((result_of::empty<vec>));
    +BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
    +BOOST_MPL_ASSERT_NOT((result_of::empty<vec>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html index d82b3a6a..a8e33ad5 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html @@ -3,7 +3,7 @@ end - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct end
     {
         typedef unspecified type;
     };
     
    -

    Table 1.20. Parameters

    +

    Table 1.20. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,32 +89,30 @@
    - + Expression Semantics
    -
    -result_of::end<Seq>::type
    +
    result_of::end<Seq>::type
     

    - Return type: A model of the same traversal - concept as Seq. + Return type: A model of the same traversal + concept as Seq.

    - Semantics: Returns the type of an iterator - one past the end of Seq. + Semantics: Returns the type of an iterator + one past the end of Seq.

    /sequence/intrinsic/end.hpp>

    - + Example
    -
    -typedef vector<int> vec;
    -typedef result_of::prior<result_of::end<vec>::type>::type first;
    -BOOST_MPL_ASSERT((result_of::equal_to<first, result_of::begin<vec>::type>))
    +
    typedef vector<int> vec;
    +typedef result_of::prior<result_of::end<vec>::type>::type first;
    +BOOST_MPL_ASSERT((result_of::equal_to<first, result_of::begin<vec>::type>))
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html index 37b92308..a943d647 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html @@ -3,7 +3,7 @@ front - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct front
     {
         typedef unspecified type;
     };
     
    -

    Table 1.22. Parameters

    +

    Table 1.22. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,31 +89,29 @@
    - + Expression Semantics
    -
    -result_of::front<Seq>::type
    +
    result_of::front<Seq>::type
     

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

    - Semantics: The type returned by dereferencing - an iterator to the first element in Seq. - Equivalent to result_of::deref<result_of::begin<Seq>::type>::type. + Semantics: The type returned by dereferencing + an iterator to the first element in Seq. + Equivalent to result_of::deref<result_of::begin<Seq>::type>::type.

    /sequence/intrinsic/front.hpp>

    - + Example
    -
    -typedef vector<int,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::front<vec>::type, int&>));
    +
    typedef vector<int,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::front<vec>::type, int&>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html index 851e1c03..07c8e5dd 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html @@ -3,7 +3,7 @@ has_key - + @@ -26,18 +26,17 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename Key>
     struct has_key
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.29. Parameters

    +

    Table 1.29. Parameters

    @@ -74,7 +73,7 @@

    - Seq + Seq

    @@ -93,7 +92,7 @@

    - Key + Key

    @@ -111,34 +110,32 @@
    - + Expression Semantics
    -
    -result_of::has_key<Seq, Key>::type
    +
    result_of::has_key<Seq, Key>::type
     

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

    - Semantics: Returns mpl::true_ - if Seq contains an element - with key type Key, returns - mpl::false_ otherwise. + Semantics: Returns mpl::true_ + if Seq contains an element + with key type Key, returns + mpl::false_ otherwise.

    /sequence/intrinsic/has_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((result_of::has_key<mymap, int>));
    -BOOST_MPL_ASSERT_NOT((result_of::has_key<mymap, void*>));
    +
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((result_of::has_key<mymap, int>));
    +BOOST_MPL_ASSERT_NOT((result_of::has_key<mymap, void*>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html index 0a6a05c0..8ed09892 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html @@ -3,7 +3,7 @@ size - + @@ -26,25 +26,24 @@
    - + Description

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

    - + Synopsis
    -
    -template<typename Seq>
    +
    template<typename Seq>
     struct size
     {
         typedef unspecified type;
     };
     
    -

    Table 1.24. Parameters

    +

    Table 1.24. Parameters

    @@ -71,7 +70,7 @@

    - Seq + Seq

    @@ -90,31 +89,29 @@
    - + Expression Semantics
    -
    -result_of::size<Seq>::type
    +
    result_of::size<Seq>::type
     

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

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

    /sequence/intrinsic/size.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    -typedef result_of::size<vec>::type size_mpl_integral_constant;
    +
    typedef vector<int,float,char> vec;
    +typedef result_of::size<vec>::type size_mpl_integral_constant;
     BOOST_MPL_ASSERT_RELATION(size_mpl_integral_constant::value, ==, 3);
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html index e40a04ce..35218067 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html @@ -3,7 +3,7 @@ swap - + @@ -26,25 +26,24 @@
    - + Description

    Returns the return type of swap.

    - + Synopsis
    -
    -template<typename Seq1, typename Seq2>
    +
    template<typename Seq1, typename Seq2>
     struct swap
     {
         typedef void type;
     };
     
    -

    Table 1.32. Parameters

    +

    Table 1.32. Parameters

    @@ -71,7 +70,7 @@

    - Seq1, Seq2 + Seq1, Seq2

    @@ -90,18 +89,17 @@
    - + Expression Semantics
    -
    -result_of::swap<Seq1, Seq2>::type
    +
    result_of::swap<Seq1, Seq2>::type
     

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

    - Semantics: Always returns void. + Semantics: Always returns void.

    /sequence/intrinsic/swap.hpp> diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html index a47106ae..f8fcb62a 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html @@ -3,7 +3,7 @@ value_at - + @@ -26,18 +26,17 @@

    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename N>
     struct value_at
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.27. Parameters

    +

    Table 1.27. Parameters

    @@ -74,7 +73,7 @@

    - Seq + Seq

    @@ -93,7 +92,7 @@

    - N + N

    @@ -112,30 +111,28 @@
    - + Expression Semantics
    -
    -result_of::value_at<Seq, N>::type
    +
    result_of::value_at<Seq, N>::type
     

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

    - Semantics: Returns the actual type at - the Nth element of Seq. + Semantics: Returns the actual type at + the Nth element of Seq.

    /sequence/intrinsic/value_at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_at<vec, boost::mpl::int_<1> >::type, float>));
    +
    typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_at<vec, boost::mpl::int_<1> >::type, float>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html index 7cc7efe8..a33c8cde 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html @@ -3,7 +3,7 @@ value_at_c - + @@ -26,18 +26,17 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         int M>
     struct value_at_c
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.28. Parameters

    +

    Table 1.28. Parameters

    @@ -74,7 +73,7 @@

    - Seq + Seq

    @@ -93,7 +92,7 @@

    - M + M

    @@ -111,30 +110,28 @@
    - + Expression Semantics
    -
    -result_of::value_at_c<Seq, M>::type
    +
    result_of::value_at_c<Seq, M>::type
     

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

    - Semantics: Returns the actual type at - the Mth element of Seq. + Semantics: Returns the actual type at + the Mth element of Seq.

    /sequence/intrinsic/value_at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_c<vec, 1>::type, float>));
    +
    typedef vector<int,float,char> vec;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_c<vec, 1>::type, float>));
     
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html index fea4702b..bd45e766 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html @@ -3,7 +3,7 @@ value_at_key - + @@ -26,18 +26,17 @@
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename Key>
     struct value_at_key
    @@ -46,7 +45,7 @@
     };
     
    -

    Table 1.31. Parameters

    +

    Table 1.31. Parameters

    @@ -74,7 +73,7 @@

    - Seq + Seq

    @@ -93,7 +92,7 @@

    - Key + Key

    @@ -111,31 +110,29 @@
    - + Expression Semantics
    -
    -result_of::value_at_key<Seq, Key>::type
    +
    result_of::value_at_key<Seq, Key>::type
     

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

    - Semantics: Returns the actual element - type associated with key type Key - in Seq. + Semantics: Returns the actual element + type associated with key type Key + in Seq.

    /sequence/intrinsic/value_at_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    -BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char>));
    +
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char>));
     
    diff --git a/doc/html/fusion/sequence/operator.html b/doc/html/fusion/sequence/operator.html index b60aa3bc..99cdcb8a 100644 --- a/doc/html/fusion/sequence/operator.html +++ b/doc/html/fusion/sequence/operator.html @@ -3,7 +3,7 @@ Operator - + diff --git a/doc/html/fusion/sequence/operator/comparison.html b/doc/html/fusion/sequence/operator/comparison.html index 173ded05..1c2eb9b0 100644 --- a/doc/html/fusion/sequence/operator/comparison.html +++ b/doc/html/fusion/sequence/operator/comparison.html @@ -3,7 +3,7 @@ Comparison - + @@ -39,20 +39,19 @@ than equal

    - The Comparison operators: ==, - !=, <, - <=, >= - and >= work generically + The Comparison operators: ==, + !=, <, + <=, >= + and >= work generically on all Fusion sequences. Comparison operators are "short- circuited": elementary comparisons start from the first elements and are performed only until the result is clear.

    - + Header
    -
    -#include <boost/fusion/sequence/comparison.hpp>
    +
    #include <boost/fusion/sequence/comparison.hpp>
     #include <boost/fusion/include/comparison.hpp>
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/equal.html b/doc/html/fusion/sequence/operator/comparison/equal.html index c76ddb57..542c4480 100644 --- a/doc/html/fusion/sequence/operator/comparison/equal.html +++ b/doc/html/fusion/sequence/operator/comparison/equal.html @@ -3,7 +3,7 @@ equal - + @@ -27,23 +27,22 @@
    - + Description

    Compare two sequences for equality.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator==(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -72,8 +71,8 @@

    - a, - b + a, + b

    @@ -89,24 +88,23 @@
    - + Expression Semantics
    -
    -a == b
    +
    a == b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a == b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a == b is a valid expression returning a type that is convertible to bool.

    @@ -114,31 +112,29 @@ compile time error.

    - Semantics: + Semantics:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, e1 == e2 returns true. For any 2 zero length + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, e1 == e2 returns true. For any 2 zero length _sequence_s, e and f, e == f returns true.

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/equal_to.hpp>
    +
    #include <boost/fusion/sequence/comparison/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    - + Example
    -
    -vector<int, char> v1(5, 'a');
    -vector<int, char> v2(5, 'a');
    +
    vector<int, char> v1(5, 'a');
    +vector<int, char> v2(5, 'a');
     assert(v1 == v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/greater_than.html b/doc/html/fusion/sequence/operator/comparison/greater_than.html index 9f19fd25..c2d74ae6 100644 --- a/doc/html/fusion/sequence/operator/comparison/greater_than.html +++ b/doc/html/fusion/sequence/operator/comparison/greater_than.html @@ -4,7 +4,7 @@ greater than - +
    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator>(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -72,8 +71,8 @@

    - a, - b + a, + b

    @@ -89,24 +88,23 @@
    - + Expression Semantics
    -
    -a > b
    +
    a > b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -114,24 +112,22 @@ compile time error.

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

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/less_equal.hpp>
    +
    #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - + Example
    -
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +
    vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v2 > v1);
     assert(v3 > v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html index e0be2950..af93832e 100644 --- a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html @@ -4,7 +4,7 @@ greater than equal - +
    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator>=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -71,8 +70,8 @@

    - a, - b + a, + b

    @@ -88,24 +87,23 @@
    - + Expression Semantics
    -
    -a >= b
    +
    a >= b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -113,24 +111,22 @@ compile time error.

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

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/greater_equal.hpp>
    +
    #include <boost/fusion/sequence/comparison/greater_equal.hpp>
     #include <boost/fusion/include/greater_equal.hpp>
     
    - + Example
    -
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +
    vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v2 >= v1);
     assert(v3 >= v2);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than.html b/doc/html/fusion/sequence/operator/comparison/less_than.html index 42dbe895..a65f4631 100644 --- a/doc/html/fusion/sequence/operator/comparison/less_than.html +++ b/doc/html/fusion/sequence/operator/comparison/less_than.html @@ -4,7 +4,7 @@ less than - +
    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator<(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -72,8 +71,8 @@

    - a, - b + a, + b

    @@ -89,24 +88,23 @@
    - + Expression Semantics
    -
    -a < b
    +
    a < b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -114,26 +112,24 @@ compile time error.

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

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/less.hpp>
    +
    #include <boost/fusion/sequence/comparison/less.hpp>
     #include <boost/fusion/include/less.hpp>
     
    - + Example
    -
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +
    vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v1 < v2);
     assert(v2 < v3);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html index 300ec0ab..72dd7564 100644 --- a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html @@ -4,7 +4,7 @@ less than equal - +
    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator<=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -72,8 +71,8 @@

    - a, - b + a, + b

    @@ -89,24 +88,23 @@
    - + Expression Semantics
    -
    -a <= b
    +
    a <= b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a < b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a < b is a valid expression returning a type that is convertible to bool.

    @@ -114,24 +112,22 @@ compile time error.

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

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/less_equal.hpp>
    +
    #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - + Example
    -
    -vector<int, float> v1(4, 3.3f);
    -vector<short, float> v2(5, 3.3f);
    -vector<long, double> v3(5, 4.4);
    +
    vector<int, float> v1(4, 3.3f);
    +vector<short, float> v2(5, 3.3f);
    +vector<long, double> v3(5, 4.4);
     assert(v1 <= v2);
     assert(v2 <= v3);
     
    diff --git a/doc/html/fusion/sequence/operator/comparison/not_equal.html b/doc/html/fusion/sequence/operator/comparison/not_equal.html index 089452a4..b5fa87a0 100644 --- a/doc/html/fusion/sequence/operator/comparison/not_equal.html +++ b/doc/html/fusion/sequence/operator/comparison/not_equal.html @@ -4,7 +4,7 @@ not equal - + @@ -33,16 +33,15 @@ Compare two sequences for inequality.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator!=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -71,8 +70,8 @@

    - a, - b + a, + b

    @@ -88,24 +87,23 @@
    - + Expression Semantics
    -
    -a != b
    +
    a != b
     

    - Return type: bool + Return type: bool

    - Requirements: + Requirements:

    - For each element, e1, - in sequence a, and for - each element, e2, in - sequence b, a == b is a valid expression returning a + For each element, e1, + in sequence a, and for + each element, e2, in + sequence b, a == b is a valid expression returning a type that is convertible to bool.

    @@ -113,26 +111,24 @@ compile time error.

    - Semantics: + Semantics:

    Returns !(a == b).

    - + Header
    -
    -#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
    +
    #include <boost/fusion/sequence/comparison/not_equal_to.hpp>
     #include <boost/fusion/include/not_equal_to.hpp>
     
    - + Example
    -
    -vector<int, char> v3(5, 'b');
    -vector<int, char> t4(2, 'a');
    +
    vector<int, char> v3(5, 'b');
    +vector<int, char> t4(2, 'a');
     assert(v1 != v3);
     assert(v1 != t4);
     assert(!(v1 != v2));
    diff --git a/doc/html/fusion/sequence/operator/i_o.html b/doc/html/fusion/sequence/operator/i_o.html
    index c8ec47dc..7abb4c52 100644
    --- a/doc/html/fusion/sequence/operator/i_o.html
    +++ b/doc/html/fusion/sequence/operator/i_o.html
    @@ -3,7 +3,7 @@
     
     I/O
     
    -
    +
     
     
     
    @@ -30,25 +30,24 @@
     
    out

    - The I/O operators: << - and >> work generically - on all Fusion sequences. The global operator<< has been overloaded for generic + The I/O operators: << + and >> work generically + on all Fusion sequences. The global operator<< has been overloaded for generic output streams such that Sequence(s) - are output by recursively calling operator<< for each element. Analogously, - the global operator>> + are output by recursively calling operator<< for each element. Analogously, + the global operator>> has been overloaded to extract Sequence(s) - from generic input streams by recursively calling operator>> for each element. + from generic input streams by recursively calling operator>> for each element.

    The default delimiter between the elements is space, and the Sequence is enclosed in parenthesis. For Example:

    -
    -vector<float, int, std::string> a(1.0f, 2, std::string("Howdy folks!");
    +
    vector<float, int, std::string> a(1.0f, 2, std::string("Howdy folks!");
     cout << a;
     

    - outputs the vector + outputs the vector as: (1.0 2 Howdy folks!)

    @@ -57,70 +56,66 @@

    Manipulators

    -
    tuple_open(arg)
    +
    tuple_open(arg)

    Defines the character that is output before the first element.

    -
    tuple_close(arg)
    +
    tuple_close(arg)

    Defines the character that is output after the last element.

    -
    tuple_delimiter(arg)
    +
    tuple_delimiter(arg)

    Defines the delimiter character between elements.

    - The argument to tuple_open, - tuple_close and tuple_delimiter may be a char, wchar_t, + The argument to tuple_open, + tuple_close and tuple_delimiter may be a char, wchar_t, a C-string, or a wide C-string.

    Example:

    -
    -std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << a;
    +
    std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << a;
     

    - outputs the same vector, a + outputs the same vector, a as: [1.0, 2, Howdy folks!]

    - The same manipulators work with operator>> and istream - as well. Suppose the std::cin + The same manipulators work with operator>> and istream + as well. Suppose the std::cin stream contains the following data:

    -
    -(1 2 3) [4:5]
    +
    (1 2 3) [4:5]
     

    The code:

    -
    -vector<int, int, int> i;
    -vector<int, int> j;
    +
    vector<int, int, int> i;
    +vector<int, int> j;
     
     std::cin >> i;
     std::cin >> set_open('[') >> set_close(']') >> set_delimiter(':');
     std::cin >> j;
     

    - reads the data into the vector(s) i - and j. + reads the data into the vector(s) i + and j.

    Note that extracting Sequence(s) - with std::string or C-style string elements does + 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>
    +
    #include <boost/fusion/sequence/io.hpp>
     #include <boost/fusion/include/io.hpp>
     
    diff --git a/doc/html/fusion/sequence/operator/i_o/in.html b/doc/html/fusion/sequence/operator/i_o/in.html index 40fb2b53..fd22d205 100644 --- a/doc/html/fusion/sequence/operator/i_o/in.html +++ b/doc/html/fusion/sequence/operator/i_o/in.html @@ -3,7 +3,7 @@ in - + @@ -26,7 +26,7 @@
    - + Description

    @@ -34,16 +34,15 @@ stream.

    - + Synopsis
    -
    -template <typename IStream, typename Sequence>
    +
    template <typename IStream, typename Sequence>
     IStream&
     operator>>(IStream& is, Sequence& seq);
     
    - + Parameters
    @@ -107,35 +106,32 @@
    - + Expression Semantics
    -
    -is >> seq
    +
    is >> seq
     

    - Return type: IStream& + Return type: IStream&

    - Semantics: For each element, e, in sequence, seq, - call is >> - e. + Semantics: For each element, e, in sequence, seq, + call is >> + e.

    - + Header
    -
    -#include <boost/fusion/sequence/io/in.hpp>
    +
    #include <boost/fusion/sequence/io/in.hpp>
     #include <boost/fusion/include/in.hpp>
     
    - + Example
    -
    -vector<int, std::string, char> v;
    +
    vector<int, std::string, char> v;
     std::cin >> v;
     
    diff --git a/doc/html/fusion/sequence/operator/i_o/out.html b/doc/html/fusion/sequence/operator/i_o/out.html index 63e3d34d..d241cc43 100644 --- a/doc/html/fusion/sequence/operator/i_o/out.html +++ b/doc/html/fusion/sequence/operator/i_o/out.html @@ -3,7 +3,7 @@ out - + @@ -26,7 +26,7 @@
    - + Description

    @@ -34,16 +34,15 @@ stream.

    - + Synopsis
    -
    -template <typename OStream, typename Sequence>
    +
    template <typename OStream, typename Sequence>
     OStream&
     operator<<(OStream& os, Sequence& seq);
     
    - + Parameters
    @@ -107,35 +106,32 @@
    - + Expression Semantics
    -
    -os << seq
    +
    os << seq
     

    - Return type: OStream& + Return type: OStream&

    - Semantics: For each element, e, in sequence, seq, - call os << - e. + Semantics: For each element, e, in sequence, seq, + call os << + e.

    - + Header
    -
    -#include <boost/fusion/sequence/io/out.hpp>
    +
    #include <boost/fusion/sequence/io/out.hpp>
     #include <boost/fusion/include/out.hpp>
     
    - + Example
    -
    -std::cout << make_vector(123, "Hello", 'x') << std::endl;
    +
    std::cout << make_vector(123, "Hello", 'x') << std::endl;
     
    diff --git a/doc/html/fusion/support.html b/doc/html/fusion/support.html index 3f08cffc..e88480f2 100644 --- a/doc/html/fusion/support.html +++ b/doc/html/fusion/support.html @@ -3,7 +3,7 @@ Support - + diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html index f04098bd..2e1e03c9 100644 --- a/doc/html/fusion/support/category_of.html +++ b/doc/html/fusion/support/category_of.html @@ -3,7 +3,7 @@ category_of - + @@ -26,7 +26,7 @@

    - + Description

    @@ -36,11 +36,10 @@ Sequence Concepts).

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct category_of
    @@ -50,7 +49,7 @@
     }
     

    - + Parameters

    @@ -79,7 +78,7 @@

    - T + T

    @@ -95,21 +94,19 @@

    - + Expression Semantics

    -
    -typedef traits::category_of<T>::type category;
    +
    typedef traits::category_of<T>::type category;
     

    - Return type: + Return type:

    For Iterators, the return type is derived from one of:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct incrementable_traversal_tag {};
     
    @@ -129,8 +126,7 @@
     

    For Sequences, the return type is derived from one of:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct incrementable_sequence_tag {};
     
    @@ -150,32 +146,29 @@
     

    And optionally from:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct associative_sequence_tag {};
     }}
     

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

    - + Header

    -
    -#include <boost/fusion/support/category_of.hpp>
    +
    #include <boost/fusion/support/category_of.hpp>
     #include <boost/fusion/include/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;
    +
    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> ));
     
    diff --git a/doc/html/fusion/support/deduce.html b/doc/html/fusion/support/deduce.html index f245a0c1..15fea270 100644 --- a/doc/html/fusion/support/deduce.html +++ b/doc/html/fusion/support/deduce.html @@ -3,7 +3,7 @@ deduce - + @@ -26,7 +26,7 @@

    - + Description

    @@ -34,24 +34,22 @@ conversion to the full argument type.

    - It removes references to const, - references to array types are kept, even if the array is const. - Reference wrappers are removed (see boost::ref). + It removes references to const, + references to array types are kept, even if the array is const. + Reference wrappers are removed (see boost::ref).

    - + Header

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

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct deduce
    @@ -61,11 +59,10 @@
     }
     

    - + Example

    -
    -template <typename T>
    +
    template <typename T>
     struct holder
     {
         typename traits::deduce<T const &>::type element;
    @@ -82,10 +79,10 @@
     }
     

    - + See also

    - + diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html index 0ac46f2c..2713b686 100644 --- a/doc/html/fusion/support/deduce_sequence.html +++ b/doc/html/fusion/support/deduce_sequence.html @@ -3,7 +3,7 @@ deduce_sequence - + @@ -26,7 +26,7 @@

    - + Description

    @@ -39,19 +39,17 @@ original type as its argument.

    - + Header

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

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <class Sequence>
         struct deduce_sequence
    @@ -61,11 +59,10 @@
     }
     

    - + Example

    -
    -template <class Seq>
    +
    template <class Seq>
     struct holder
     {
         typename traits::deduce_sequence<Seq>::type element;
    @@ -76,18 +73,18 @@
     };
     
     template <typename T0, typename T1>
    -holder< vector<T0 const &, T1 const &> >
    +holder< vector<T0 const &, T1 const &> >
     make_holder(T0 const & a0, T1 const & a1)
     {
    -    typedef vector<T0 const &, T1 const &> arg_vec_t;
    +    typedef vector<T0 const &, T1 const &> arg_vec_t;
         return holder<arg_vec_t>( arg_vec_t(a0,a1) );
     }
     

    - + See also

    - +
    diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html index dbf93333..43922827 100644 --- a/doc/html/fusion/support/is_sequence.html +++ b/doc/html/fusion/support/is_sequence.html @@ -3,7 +3,7 @@ is_sequence - + @@ -26,22 +26,21 @@

    - + Description

    - Metafunction that evaluates to mpl::true_ - if a certain type T is a - conforming Fusion Sequence, mpl::false_ + Metafunction that evaluates to mpl::true_ + if a certain type T is a + conforming Fusion Sequence, mpl::false_ otherwise. This may be specialized to accomodate clients which provide Fusion conforming sequences.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct is_sequence
    @@ -51,7 +50,7 @@
     }
     

    - + Parameters

    @@ -80,7 +79,7 @@

    - T + T

    @@ -96,42 +95,39 @@

    - + Expression Semantics

    -
    -typedef traits::is_sequence<T>::type c;
    +
    typedef traits::is_sequence<T>::type c;
     

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

    - Semantics: Metafunction that evaluates to - mpl::true_ if a certain type T - is a conforming Fusion sequence, mpl::false_ + Semantics: Metafunction that evaluates to + mpl::true_ if a certain type T + is a conforming Fusion sequence, mpl::false_ otherwise.

    - + Header

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

    - + Example

    -
    -BOOST_MPL_ASSERT_NOT(( traits::is_sequence< std::vector<int> > ));
    +
    BOOST_MPL_ASSERT_NOT(( traits::is_sequence< std::vector<int> > ));
     BOOST_MPL_ASSERT_NOT(( is_sequence< int > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<list<> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<list<int> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<vector<> > ));
    -BOOST_MPL_ASSERT(( traits::is_sequence<vector<int> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<list<> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<list<int> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<vector<> > ));
    +BOOST_MPL_ASSERT(( traits::is_sequence<vector<int> > ));
     
    diff --git a/doc/html/fusion/support/is_view.html b/doc/html/fusion/support/is_view.html index 516e6129..d36a4f67 100644 --- a/doc/html/fusion/support/is_view.html +++ b/doc/html/fusion/support/is_view.html @@ -3,7 +3,7 @@ is_view - + @@ -26,25 +26,24 @@

    - + Description

    - Metafunction that evaluates to mpl::true_ - if a certain type T is a - conforming Fusion View, mpl::false_ + Metafunction that evaluates to mpl::true_ + if a certain type T is a + conforming Fusion View, mpl::false_ otherwise. A view is a specialized sequence that does not actually contain data. Views hold sequences which may be other views. In general, views are held by other views by value, while non-views are held by other views by - reference. is_view may be + reference. is_view may be specialized to accomodate clients providing Fusion conforming views.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct is_view
    @@ -54,7 +53,7 @@
     }
     

    - + Parameters

    @@ -83,7 +82,7 @@

    - T + T

    @@ -99,42 +98,39 @@

    - + Expression Semantics

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

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

    - Semantics: Metafunction that evaluates to - mpl::true_ if a certain type T - is a conforming Fusion view, mpl::false_ + Semantics: Metafunction that evaluates to + mpl::true_ if a certain type T + is a conforming Fusion view, mpl::false_ otherwise.

    - + Header

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

    - + Example

    -
    -BOOST_MPL_ASSERT_NOT(( traits::is_view<std::vector<int> > ));
    +
    BOOST_MPL_ASSERT_NOT(( traits::is_view<std::vector<int> > ));
     BOOST_MPL_ASSERT_NOT(( traits::is_view<int> ));
     
     using boost::mpl::_
     using boost::is_pointer;
    -typedef vector<int*, char, long*, bool, double> vector_type;
    -typedef filter_view<vector_type, is_pointer<_> > filter_view_type;
    +typedef vector<int*, char, long*, bool, double> vector_type;
    +typedef filter_view<vector_type, is_pointer<_> > filter_view_type;
     BOOST_MPL_ASSERT(( traits::is_view<filter_view_type> ));
     
    diff --git a/doc/html/fusion/support/pair.html b/doc/html/fusion/support/pair.html index b6fdb969..a0d44dda 100644 --- a/doc/html/fusion/support/pair.html +++ b/doc/html/fusion/support/pair.html @@ -3,7 +3,7 @@ pair - + @@ -26,22 +26,21 @@

    - + Description

    - Fusion pair type is a half - runtime pair. A half runtime pair is similar to a std::pair, - but, unlike std::pair, + Fusion pair type is a half + runtime pair. A half runtime pair is similar to a std::pair, + but, unlike std::pair, the first type does not have data. It is used as elements in _map_s, for example.

    - + Synopsis

    -
    -template <typename First, typename Second>
    +
    template <typename First, typename Second>
     struct pair;
     
     namespace result_of
    @@ -61,7 +60,7 @@
     make_pair(Second const &);
     

    - + Template parameters

    @@ -111,36 +110,36 @@

    Notation

    -
    P
    +
    P

    Fusion pair type

    -
    p, - p2
    +
    p, + p2

    Fusion pairs

    -
    F, - S
    +
    F, + S

    Arbitrary types

    -
    s
    +
    s

    - Value of type S + Value of type S

    -
    o
    +
    o

    Output stream

    -
    i
    +
    i

    Input stream

    - + Expression Semantics

    @@ -164,33 +163,33 @@ @@ -257,45 +256,45 @@

    - P::first_type + P::first_type

    - The type of the first template parameter, F, - equivalent to result_of::first<P>::type. + The type of the first template parameter, F, + equivalent to result_of::first<P>::type.

    - P::second_type + P::second_type

    - The type of the second template parameter, S, - equivalent to result_of::second<P>::type. + The type of the second template parameter, S, + equivalent to result_of::second<P>::type.

    - P() + P()

    @@ -202,50 +201,50 @@

    - P(s) + P(s)

    - Construct a pair given value for the second type, s. + Construct a pair given value for the second type, s.

    - P(p2) + P(p2)

    - Copy constructs a pair from another pair, p2. + Copy constructs a pair from another pair, p2.

    - p.second + p.second

    - Get the data from p1. + Get the data from p1.

    - p = - p2 + p = + p2

    - Assigns a pair, p1, - from another pair, p2. + Assigns a pair, p1, + from another pair, p2.

    - Make a pair given the first type, F, - and a value for the second type, s. - The second type assumes the type of 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 + o << + p

    - Output p to output - stream, o. + Output p to output + stream, o.

    - i >> - p + i >> + p

    - Input p from input - stream, i. + Input p from input + stream, i.

    - p == - p2 + p == + p2

    @@ -307,8 +306,8 @@

    - p != - p2 + p != + p2

    @@ -320,19 +319,17 @@

    - + Header

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

    - + Example

    -
    -pair<int, char> p('X');
    +
    pair<int, char> p('X');
     std::cout << p << std::endl;
     std::cout << make_pair<int>('X') << std::endl;
     assert((p == make_pair<int>('X')));
    diff --git a/doc/html/fusion/support/tag_of.html b/doc/html/fusion/support/tag_of.html
    index 602913dd..64035734 100644
    --- a/doc/html/fusion/support/tag_of.html
    +++ b/doc/html/fusion/support/tag_of.html
    @@ -3,7 +3,7 @@
     
     tag_of
     
    -
    +
     
     
     
    @@ -26,7 +26,7 @@
     
     

    - + Description

    @@ -40,11 +40,10 @@ conforming sequences.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template<typename Sequence>
         struct tag_of
    @@ -54,7 +53,7 @@
     }
     

    - + Parameters

    @@ -83,7 +82,7 @@

    - T + T

    @@ -99,36 +98,33 @@

    - + Expression Semantics

    -
    -typedef traits::tag_of<T>::type tag;
    +
    typedef traits::tag_of<T>::type tag;
     

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

    - Semantics: Returns the tag type associated - with T. + Semantics: Returns the tag type associated + with T.

    - + Header

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

    - + Example

    -
    -typedef traits::tag_of<list<> >::type tag1;
    -typedef traits::tag_of<list<int> >::type tag2;
    -typedef traits::tag_of<vector<> >::type tag3;
    -typedef traits::tag_of<vector<int> >::type tag4;
    +
    typedef traits::tag_of<list<> >::type tag1;
    +typedef traits::tag_of<list<int> >::type tag2;
    +typedef traits::tag_of<vector<> >::type tag3;
    +typedef traits::tag_of<vector<int> >::type tag4;
     
     BOOST_MPL_ASSERT((boost::is_same<tag1, tag2>));
     BOOST_MPL_ASSERT((boost::is_same<tag3, tag4>));
    diff --git a/doc/html/fusion/tuple.html b/doc/html/fusion/tuple.html
    index cfa62786..d5bf2a8d 100644
    --- a/doc/html/fusion/tuple.html
    +++ b/doc/html/fusion/tuple.html
    @@ -3,7 +3,7 @@
     
     Tuple
     
    -
    +
     
     
     
    @@ -43,12 +43,12 @@
     

    The TR1 technical report describes extensions to the C++ standard library. Many of these extensions will be considered for the next iteration of the C++ - standard. TR1 describes a tuple type, and support for treating std::pair + standard. TR1 describes a tuple type, and support for treating std::pair as a type of tuple.

    Fusion provides full support for the TR1 - Tuple interface, and the extended uses of std::pair described + Tuple interface, and the extended uses of std::pair described in the TR1 document.

    diff --git a/doc/html/fusion/tuple/class_template_tuple.html b/doc/html/fusion/tuple/class_template_tuple.html index 5a5ea9ff..cd065faa 100644 --- a/doc/html/fusion/tuple/class_template_tuple.html +++ b/doc/html/fusion/tuple/class_template_tuple.html @@ -3,7 +3,7 @@ Class template tuple - + @@ -44,15 +44,14 @@ beyond that required by TR1.

    - Currently tuple is basically a synonym for vector, although this may be changed + Currently tuple is basically a synonym for vector, although this may be changed in future releases of fusion.

    - + Synopsis

    -
    -template<
    +
    template<
         typename T1 = unspecified,
         typename T2 = unspecified,
         ...
    diff --git a/doc/html/fusion/tuple/class_template_tuple/construction.html b/doc/html/fusion/tuple/class_template_tuple/construction.html
    index e9a5c7ed..0b8a0773 100644
    --- a/doc/html/fusion/tuple/class_template_tuple/construction.html
    +++ b/doc/html/fusion/tuple/class_template_tuple/construction.html
    @@ -3,7 +3,7 @@
     
     Construction
     
    -
    +
     
     
     
    @@ -27,7 +27,7 @@
     
     
    - + Description

    @@ -38,83 +38,79 @@ in this section.

    - + Specification

    Notation

    -
    T1 - ... TN, - U1 ... - UN
    +
    T1 + ... TN, + U1 ... + UN

    Tuple element types

    -
    P1 - ... PN
    +
    P1 + ... PN

    Parameter types

    -
    Ti, - Ui
    +
    Ti, + Ui

    - The type of the ith + The type of the ith element of a tuple

    -
    Pi
    +
    Pi

    - The type of the ith + The type of the ith parameter

    -
    -tuple();
    +
    tuple();
     

    - Requirements: Each Ti + Requirements: Each Ti is default constructable.

    - Semantics: Default initializes each element + Semantics: Default initializes each element of the tuple.

    -
    -tuple(P1,P2,...,PN);
    +
    tuple(P1,P2,...,PN);
     

    - Requirements: Each Pi - is Ti if Ti is a reference type, const Ti& otherwise. + Requirements: Each Pi + is Ti if Ti is a reference type, const Ti& otherwise.

    - Semantics: Copy initializes each element + Semantics: Copy initializes each element with the corresponding parameter.

    -
    -tuple(const tuple& t);
    +
    tuple(const tuple& t);
     

    - Requirements: Each Ti + Requirements: Each Ti should be copy constructable.

    - Semantics: Copy constructs each element - of *this - with the corresponding element of t. + Semantics: Copy constructs each element + of *this + with the corresponding element of t.

    -
    -template<typename U1, typename U2, ..., typename UN>
    +
    template<typename U1, typename U2, ..., typename UN>
     tuple(const tuple<U1, U2, ..., UN>& t);
     

    - Requirements: Each Ti - shall be constructible from the corresponding Ui. + Requirements: Each Ti + shall be constructible from the corresponding Ui.

    - Semantics: Constructs each element of - *this - with the corresponding element of t. + Semantics: Constructs each element of + *this + with the corresponding element of t.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/element_access.html b/doc/html/fusion/tuple/class_template_tuple/element_access.html index 38d0c243..59229895 100644 --- a/doc/html/fusion/tuple/class_template_tuple/element_access.html +++ b/doc/html/fusion/tuple/class_template_tuple/element_access.html @@ -4,7 +4,7 @@ Element access - +Element access
    - + Description

    The TR1 - Tuple provides the get + Tuple provides the get function to provide access to it's elements by zero based numeric index.

    - + Specification
    -
    -template<int I, T>
    +
    template<int I, T>
     RJ get(T& t);
     

    - Requires: 0 + Requires: 0 < I - <= N. - The program is ill formed if I - is out of bounds. T is - any fusion sequence type, including tuple. + <= N. + The program is ill formed if I + is out of bounds. T is + any fusion sequence type, including tuple.

    - Return type: RJ - is equivalent to result_of::at_c<I,T>::type. + Return type: RJ + is equivalent to result_of::at_c<I,T>::type.

    - Returns: A reference to the Ith element of T. + Returns: A reference to the Ith element of T.

    -
    -template<int I, typename T>
    +
    template<int I, typename T>
     PJ get(T const& t);
     

    - Requires: 0 + Requires: 0 < I - <= N. - The program is ill formed if I - is out of bounds. T is - any fusion sequence type, including tuple. + <= N. + The program is ill formed if I + is out of bounds. T is + any fusion sequence type, including tuple.

    - Return type: PJ - is equivalent to result_of::at_c<I,T>::type. + Return type: PJ + is equivalent to result_of::at_c<I,T>::type.

    - Returns: A const reference to the Ith element of T. + Returns: A const reference to the Ith element of T.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html index 896a5c0d..6cc2e574 100644 --- a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html +++ b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html @@ -4,7 +4,7 @@ Relational operators - +Relational operators
    - + Description

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

    - + Specification

    Notation

    -
    T1 - ... TN, - U1 ... - UN
    +
    T1 + ... TN, + U1 ... + UN

    Tuple element types

    -
    P1 - ... PN
    +
    P1 + ... PN

    Parameter types

    -
    Ti, - Ui
    +
    Ti, + Ui

    - The type of the ith + The type of the ith element of a tuple

    -
    Pi
    +
    Pi

    - The type of the ith + The type of the ith parameter

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) == get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) == get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns true - if and only if get<i>(lhs) == get<i>(rhs) - for all i. For any 2 zero - length tuples e and f, e - == f - returns true. + Semantics: Returns true + if and only if get<i>(lhs) == get<i>(rhs) + for all i. For any 2 zero + length tuples e and f, e + == f + returns true.

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) < get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) < get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns the lexicographical - comparison of between lhs - and rhs. + Semantics: Returns the lexicographical + comparison of between lhs + and rhs.

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) == get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) == get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(lhs == rhs). + Semantics: Returns !(lhs == rhs).

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(rhs) < get<i>(lhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(rhs) < get<i>(lhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(rhs < lhs) + Semantics: Returns !(rhs < lhs)

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(rhs) < get<i>(lhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(rhs) < get<i>(lhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns rhs - < lhs. + Semantics: Returns rhs + < lhs.

    -
    -template<typename T1, typename T2, ..., typename TN,
    +
    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 <= + Requirements: For all i, + 1 <= i < - N, get<i>(lhs) < get<i>(rhs) - is a valid expression returning a type that is convertible to bool. + N, get<i>(lhs) < get<i>(rhs) + is a valid expression returning a type that is convertible to bool.

    - Semantics: Returns !(lhs < rhs). + Semantics: Returns !(lhs < rhs).

    diff --git a/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html b/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html index 5a61e7e9..ad69e74c 100644 --- a/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html +++ b/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html @@ -4,7 +4,7 @@ Tuple creation functions - + @@ -30,40 +30,38 @@ creation functions">Tuple creation functions
    - + Description

    - TR1 describes 2 utility functions for creating _tr1tuple_s. make_tuple - builds a tuple out of it's argument list, and tie + TR1 describes 2 utility functions for creating _tr1tuple_s. make_tuple + builds a tuple out of it's argument list, and tie builds a tuple of references to it's arguments. The details of these creation functions are described in this section.

    - + Specification
    -
    -template<typename T1, typename T2, ..., typename TN>
    +
    template<typename T1, typename T2, ..., typename TN>
     tuple<V1, V2, ..., VN> make_tuple(const T1& t1, const T2& t2, ..., const TN& tn);
     

    - Where Vi is X& - if the cv-unqualified type Ti - is reference_wrapper<X>, - otherwise Vi is Ti. + Where Vi is X& + if the cv-unqualified type Ti + is reference_wrapper<X>, + otherwise Vi is Ti.

    - Returns: tuple<V1, V2, ..., VN>(t1, t2, ..., tN) + Returns: tuple<V1, V2, ..., VN>(t1, t2, ..., tN)

    -
    -template<typename T1, typename T2, ..., typename TN>
    +
    template<typename T1, typename T2, ..., typename TN>
     tuple<T1&, T2&, ..., TN&> tie(T1& t1, T2& t2, ..., TN& tn);
     

    - Returns: tuple<T1&, T2&, ..., - TN&>(t1, t2, ..., tN). When argument ti - is ignore, assigning any + Returns: tuple<T1&, T2&, ..., + TN&>(t1, t2, ..., tN). When argument ti + is ignore, assigning any value to the corresponding tuple element has has no effect.

    diff --git a/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html b/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html index a79dd592..5593aecd 100644 --- a/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html +++ b/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html @@ -4,7 +4,7 @@ Tuple helper classes - + Tuple helper classes
    - + Description

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

    - + Specification
    -
    -tuple_size<T>::value
    +
    tuple_size<T>::value
     

    - Requires: T - is any fusion sequence type, including tuple. + Requires: T + is any fusion sequence type, including tuple.

    - Type: MPL + Type: MPL Integral Constant

    - Value: The number of elements in the sequence. - Equivalent to result_of::size<T>::type. + Value: The number of elements in the sequence. + Equivalent to result_of::size<T>::type.

    -
    -tuple_element<I, T>::type
    +
    tuple_element<I, T>::type
     

    - Requires: T - is any fusion sequence type, including tuple. - 0 <= + Requires: T + is any fusion sequence type, including tuple. + 0 <= I < - N or the program is ill formed. + N or the program is ill formed.

    - Value: The type of the Ith - element of T. Equivalent - to result_of::value_at<I,T>::type. + Value: The type of the Ith + element of T. Equivalent + to result_of::value_at<I,T>::type.

    diff --git a/doc/html/fusion/tuple/pairs.html b/doc/html/fusion/tuple/pairs.html index 8c91a35f..c1032bb8 100644 --- a/doc/html/fusion/tuple/pairs.html +++ b/doc/html/fusion/tuple/pairs.html @@ -3,7 +3,7 @@ Pairs - +

    - + Description

    The TR1 - Tuple interface is specified to provide uniform access to std::pair + Tuple interface is specified to provide uniform access to std::pair as if it were a 2 element tuple.

    - + Specification

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

    - Type: An MPL + Type: An MPL Integral Constant

    - Value: Returns 2, the number of elements + Value: Returns 2, the number of elements in a pair.

    -
    -tuple_element<0, std::pair<T1, T2> >::type
    +
    tuple_element<0, std::pair<T1, T2> >::type
     

    - Type: T1 + Type: T1

    - Value: Returns the type of the first element + Value: Returns the type of the first element of the pair

    -
    -tuple_element<1, std::pair<T1, T2> >::type
    +
    tuple_element<1, std::pair<T1, T2> >::type
     

    - Type: T2 + Type: T2

    - Value: Returns thetype of the second element + Value: Returns thetype of the second element of the pair

    -
    -template<int I, typename T1, typename T2>
    +
    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 + Type: If I + == 0 + P is T1, + else if I == + 1 P + is T2 else the program is ill-formed.

    - Returns: pr.first - if I == - 0 else pr.second.[*Returns: - pr.first if I - == 0 - else pr.second. + Returns: pr.first + if I == + 0 else pr.second.[*Returns: + pr.first if I + == 0 + else pr.second.

    diff --git a/doc/html/fusion/view.html b/doc/html/fusion/view.html index 7cb0fb2b..0c1f1a42 100644 --- a/doc/html/fusion/view.html +++ b/doc/html/fusion/view.html @@ -3,7 +3,7 @@ View - + @@ -44,11 +44,10 @@ to copy and be passed around by value.

    - + Header

    -
    -#include <boost/fusion/view.hpp>
    +
    #include <boost/fusion/view.hpp>
     #include <boost/fusion/include/view.hpp>
     
    diff --git a/doc/html/fusion/view/filter_view.html b/doc/html/fusion/view/filter_view.html index f15d8e8a..7c2b424e 100644 --- a/doc/html/fusion/view/filter_view.html +++ b/doc/html/fusion/view/filter_view.html @@ -3,7 +3,7 @@ filter_view - + @@ -26,34 +26,32 @@

    - + Description

    - filter_view is a view into + filter_view is a view into a subset of its underlying sequence's elements satisfying a given predicate (an MPL metafunction). - The filter_view presents - only those elements for which its predicate evaluates to mpl::true_. + The filter_view presents + only those elements for which its predicate evaluates to mpl::true_.

    - + Header

    -
    -#include <boost/fusion/view/filter_view.hpp>
    +
    #include <boost/fusion/view/filter_view.hpp>
     #include <boost/fusion/include/filter_view.hpp>
     

    - + Synopsis

    -
    -template <typename Sequence, typename Pred>
    +
    template <typename Sequence, typename Pred>
     struct filter_view;
     

    - + Template parameters

    @@ -83,7 +81,7 @@

    - Sequence + Sequence

    @@ -101,12 +99,12 @@

    - Pred + Pred

    - Unary Metafunction returning an mpl::bool_ + Unary Metafunction returning an mpl::bool_

    @@ -117,7 +115,7 @@

    - + Model of

    - + Expression Semantics

    @@ -172,57 +170,56 @@

    - F(s) + F(s)

    - Creates a filter_view - given a sequence, s. + Creates a filter_view + given a sequence, s.

    - F(f) + F(f)

    - Copy constructs a filter_view - from another filter_view, - f. + Copy constructs a filter_view + from another filter_view, + f.

    - f = - f2 + f = + f2

    - Assigns to a filter_view, - f, from another - filter_view, f2. + Assigns to a filter_view, + f, from another + filter_view, f2.

    - + Example

    -
    -using boost::mpl::_;
    +
    using boost::mpl::_;
     using boost::mpl::not_;
     using boost::is_class;
     
    -typedef vector<std::string, char, long, bool, double> vector_type;
    +typedef vector<std::string, char, long, bool, double> vector_type;
     
     vector_type v("a-string", '@', 987654, true, 6.6);
     filter_view<vector_type const, not_<is_class<_> > > view(v);
    diff --git a/doc/html/fusion/view/iterator_range.html b/doc/html/fusion/view/iterator_range.html
    index 9487c625..88474668 100644
    --- a/doc/html/fusion/view/iterator_range.html
    +++ b/doc/html/fusion/view/iterator_range.html
    @@ -3,7 +3,7 @@
     
     iterator_range
     
    -
    +
     
     
     
    @@ -26,31 +26,29 @@
     
     

    - + Description

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

    - + Header

    -
    -#include <boost/fusion/view/iterator_range.hpp>
    +
    #include <boost/fusion/view/iterator_range.hpp>
     #include <boost/fusion/include/iterator_range.hpp>
     

    - + Synopsis

    -
    -template <typename First, typename Last>
    +
    template <typename First, typename Last>
     struct iterator_range;
     

    - + Template parameters

    @@ -80,7 +78,7 @@

    - First + First

    @@ -96,7 +94,7 @@

    - Last + Last

    @@ -112,7 +110,7 @@

    - + Model of

    • @@ -129,27 +127,27 @@

      Notation

      -
      IR
      +
      IR

      - An iterator_range type + An iterator_range type

      -
      f
      +
      f

      - An instance of First + An instance of First

      -
      l
      +
      l

      - An instance of Last + An instance of Last

      -
      ir, - ir2
      +
      ir, + ir2

      - Instances of iterator_range + Instances of iterator_range

      - + Expression Semantics

      @@ -180,62 +178,61 @@

      - IR(f, l) + IR(f, l)

      - Creates an iterator_range - given iterators, f - and l. + Creates an iterator_range + given iterators, f + and l.

      - IR(ir) + IR(ir)

      - Copy constructs an iterator_range - from another iterator_range, - ir. + Copy constructs an iterator_range + from another iterator_range, + ir.

      - ir = - ir2 + ir = + ir2

      - Assigns to a iterator_range, - ir, from another - iterator_range, - ir2. + Assigns to a iterator_range, + ir, from another + iterator_range, + ir2.

    - + Example

    -
    -char const* s = "Ruby";
    -typedef vector<int, char, double, char const*> vector_type;
    +
    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;
    +typedef result_of::begin<vector_type>::type A;
    +typedef result_of::end<vector_type>::type B;
    +typedef result_of::next<A>::type C;
    +typedef result_of::prior<B>::type D;
     
     C c(vec);
     D d(vec);
    diff --git a/doc/html/fusion/view/joint_view.html b/doc/html/fusion/view/joint_view.html
    index 2c60599c..15471e97 100644
    --- a/doc/html/fusion/view/joint_view.html
    +++ b/doc/html/fusion/view/joint_view.html
    @@ -3,7 +3,7 @@
     
     joint_view
     
    -
    +
     
     
     
    @@ -26,31 +26,29 @@
     
     

    - + Description

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

    - + Header

    -
    -#include <boost/fusion/view/joint_view.hpp>
    +
    #include <boost/fusion/view/joint_view.hpp>
     #include <boost/fusion/include/joint_view.hpp>
     

    - + Synopsis

    -
    -template <typename Sequence1, typename Sequence2>
    +
    template <typename Sequence1, typename Sequence2>
     struct joint_view;
     

    - + Template parameters

    @@ -80,7 +78,7 @@

    - Sequence1 + Sequence1

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

    - Sequence2 + Sequence2

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

    - + Model of

    - + Expression Semantics

    @@ -174,58 +172,57 @@

    - JV(s1, s2) + JV(s1, s2)

    - Creates a joint_view - given sequences, s1 - and s2. + Creates a joint_view + given sequences, s1 + and s2.

    - JV(jv) + JV(jv)

    - Copy constructs a joint_view - from another joint_view, - jv. + Copy constructs a joint_view + from another joint_view, + jv.

    - jv = - jv2 + jv = + jv2

    - Assigns to a joint_view, - jv, from another - joint_view, jv2. + Assigns to a joint_view, + jv, from another + joint_view, jv2.

    - + Example

    -
    -vector<int, char> v1(3, 'x');
    -vector<std::string, int> v2("hello", 123);
    +
    vector<int, char> v1(3, 'x');
    +vector<std::string, int> v2("hello", 123);
     joint_view<
    -    vector<int, char>
    -  , vector<std::string, int>
    +    vector<int, char>
    +  , vector<std::string, int>
     > view(v1, v2);
     std::cout << view << std::endl;
     
    diff --git a/doc/html/fusion/view/reverse_view.html b/doc/html/fusion/view/reverse_view.html index 93260b61..89327f8e 100644 --- a/doc/html/fusion/view/reverse_view.html +++ b/doc/html/fusion/view/reverse_view.html @@ -3,7 +3,7 @@ reverse_view - + @@ -26,28 +26,26 @@

    - reverse_view presents a reversed + reverse_view presents a reversed view of underlying sequence. The first element will be its last and the last element will be its first.

    - + Header

    -
    -#include <boost/fusion/view/reverse_view.hpp>
    +
    #include <boost/fusion/view/reverse_view.hpp>
     #include <boost/fusion/include/reverse_view.hpp>
     

    - + Synopsis

    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     struct reverse_view;
     

    - + Template parameters

    @@ -76,7 +74,7 @@

    - Sequence + Sequence

    @@ -93,7 +91,7 @@

    - + Model of

    - + Expression Semantics

    @@ -149,53 +147,52 @@

    - RV(s) + RV(s)

    - Creates a unary reverse_view - given sequence, s. + Creates a unary reverse_view + given sequence, s.

    - RV(rv) + RV(rv)

    - Copy constructs a reverse_view - from another reverse_view, - rv. + Copy constructs a reverse_view + from another reverse_view, + rv.

    - rv = - rv2 + rv = + rv2

    - Assigns to a reverse_view, - rv, from another - reverse_view, rv2. + Assigns to a reverse_view, + rv, from another + reverse_view, rv2.

    - + Example

    -
    -typedef vector<int, short, double> vector_type;
    +
    typedef vector<int, short, double> vector_type;
     vector_type vec(2, 5, 3.3);
     
     reverse_view<vector_type> reverse(vec);
    diff --git a/doc/html/fusion/view/single_view.html b/doc/html/fusion/view/single_view.html
    index f3f8595c..8e8de598 100644
    --- a/doc/html/fusion/view/single_view.html
    +++ b/doc/html/fusion/view/single_view.html
    @@ -3,7 +3,7 @@
     
     single_view
     
    -
    +
     
     
     
    @@ -26,27 +26,25 @@
     
     

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

    - + Header

    -
    -#include <boost/fusion/view/single_view.hpp>
    +
    #include <boost/fusion/view/single_view.hpp>
     #include <boost/fusion/include/single_view.hpp>
     

    - + Synopsis

    -
    -template <typename T>
    +
    template <typename T>
     struct single_view;
     

    - + Template parameters

    @@ -75,7 +73,7 @@

    - T + T

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

    - + Model of

    - + Expression Semantics

    @@ -144,53 +142,52 @@

    - S(x) + S(x)

    - Creates a single_view - from x. + Creates a single_view + from x.

    - S(s) + S(s)

    - Copy constructs a single_view - from another single_view, - s. + Copy constructs a single_view + from another single_view, + s.

    - s = - s2 + s = + s2

    - Assigns to a single_view, - s, from another - single_view, s2. + Assigns to a single_view, + s, from another + single_view, s2.

    - + Example

    -
    -single_view<int> view(3);
    +
    single_view<int> view(3);
     std::cout << view << std::endl;
     
    diff --git a/doc/html/fusion/view/transform_view.html b/doc/html/fusion/view/transform_view.html index a129645d..16828da8 100644 --- a/doc/html/fusion/view/transform_view.html +++ b/doc/html/fusion/view/transform_view.html @@ -3,7 +3,7 @@ transform_view - + @@ -26,42 +26,39 @@

    - The unary version of transform_view + The unary version of transform_view presents a view of its underlying sequence given a unary function object - or function pointer. The binary version of transform_view + or function pointer. The binary version of transform_view presents a view of 2 underlying sequences, given a binary function object - or function pointer. The transform_view + or function pointer. The transform_view inherits the traversal characteristics (see Sequence Traversal Concept) of its underlying sequence or sequences.

    - + Header

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

    - + Synopsis

    - Unary Version + Unary Version

    -
    -template <typename Sequence, typename F1>
    +
    template <typename Sequence, typename F1>
     struct transform_view;
     

    - Binary Version + Binary Version

    -
    -template <typename Sequence1, typename Sequence2, typename F2>
    +
    template <typename Sequence1, typename Sequence2, typename F2>
     struct transform_view;
     

    - + Template parameters

    @@ -91,7 +88,7 @@ @@ -164,14 +161,14 @@ @@ -183,7 +180,7 @@

    - Sequence + Sequence

    @@ -109,7 +106,7 @@

    - Sequence1 + Sequence1

    @@ -127,7 +124,7 @@

    - Sequence2 + Sequence2

    @@ -145,14 +142,14 @@

    - F1 + F1

    - A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an instance - of F1 when called - with a value of each element type E + A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an instance + of F1 when called + with a value of each element type E in the input sequence.

    - F2 + F2

    - A binary function object or function pointer. boost::result_of<F2(E1, E2)>::type is the return type of an instance - of F2 when called - with a value of each corresponding pair of element type E1 and E2 + A binary function object or function pointer. boost::result_of<F2(E1, E2)>::type is the return type of an instance + of F2 when called + with a value of each corresponding pair of element type E1 and E2 in the input sequences.

    - + Model of

    • @@ -200,49 +197,49 @@

      Notation

      -
      TV
      +
      TV

      - A transform_view type + A transform_view type

      -
      BTV
      +
      BTV

      - A binary transform_view + A binary transform_view type

      -
      UTV
      +
      UTV

      - A unary transform_view + A unary transform_view type

      -
      f1
      +
      f1

      - An instance of F1 + An instance of F1

      -
      f2
      +
      f2

      - An instance of F2 + An instance of F2

      -
      s
      +
      s

      - An instance of Sequence + An instance of Sequence

      -
      s1
      +
      s1

      - An instance of Sequence1 + An instance of Sequence1

      -
      s2
      +
      s2

      - An instance of Sequence2 + An instance of Sequence2

      -
      tv, - tv2
      +
      tv, + tv2

      - Instances of transform_view + Instances of transform_view

      - + Expression Semantics

      @@ -278,70 +275,69 @@

      - UTV(s, f1) + UTV(s, f1)

      - Creates a unary transform_view - given sequence, s - and unary function object or function pointer, f1. + Creates a unary transform_view + given sequence, s + and unary function object or function pointer, f1.

      - BTV(s1, s2, f2) + BTV(s1, s2, f2)

      - Creates a binary transform_view - given sequences, s1 - and s2 and binary - function object or function pointer, f2. + Creates a binary transform_view + given sequences, s1 + and s2 and binary + function object or function pointer, f2.

      - TV(tv) + TV(tv)

      - Copy constructs a transform_view - from another transform_view, - tv. + Copy constructs a transform_view + from another transform_view, + tv.

      - tv = - tv2 + tv = + tv2

      - Assigns to a transform_view, - tv, from another - transform_view, - tv2. + Assigns to a transform_view, + tv, from another + transform_view, + tv2.

    - + Example

    -
    -struct square
    +
    struct square
     {
         template<typename Sig>
         struct result;
    @@ -358,7 +354,7 @@
         }
     };
     
    -typedef vector<int, short, double> vector_type;
    +typedef vector<int, short, double> vector_type;
     vector_type vec(2, 5, 3.3);
     
     transform_view<vector_type, square> transform(vec, square());
    diff --git a/doc/html/fusion/view/zip_view.html b/doc/html/fusion/view/zip_view.html
    index c23468cc..5a79edd8 100644
    --- a/doc/html/fusion/view/zip_view.html
    +++ b/doc/html/fusion/view/zip_view.html
    @@ -3,7 +3,7 @@
     
     zip_view
     
    -
    +
     
     
     
    @@ -26,34 +26,32 @@
     
     

    - + Description

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

    - + Header

    -
    -#include <boost/fusion/view/zip_view.hpp>
    +
    #include <boost/fusion/view/zip_view.hpp>
     #include <boost/fusion/include/zip_view.hpp>
     

    - + Synopsis

    -
    -template <typename Sequences>
    +
    template <typename Sequences>
     struct zip_view;
     

    - + Template parameters

    @@ -82,7 +80,7 @@

    - Sequences + Sequences

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

    - + Model of

    • @@ -116,23 +114,23 @@

      Notation

      -
      ZV
      +
      ZV

      - A joint_view type + A joint_view type

      -
      s
      +
      s

      - An instance of Sequences + An instance of Sequences

      -
      zv1, - zv2
      +
      zv1, + zv2

      - Instances of ZV + Instances of ZV

      - + Expression Semantics

      @@ -162,12 +160,12 @@

      - ZV(s) + ZV(s)

      - Creates a zip_view + Creates a zip_view given a sequence of references to the component _sequence_s.

      @@ -175,44 +173,43 @@

      - ZV(zv1) + ZV(zv1)

      - Copy constructs a zip_view - from another zip_view, - zv. + Copy constructs a zip_view + from another zip_view, + zv.

      - zv1 = - zv2 + zv1 = + zv2

      - Assigns to a zip_view, - zv, from another - zip_view, zv2. + Assigns to a zip_view, + zv, from another + zip_view, zv2.

    - + Example

    -
    -typedef vector<int,int> vec1;
    -typedef vector<char,char> vec2;
    +
    typedef vector<int,int> vec1;
    +typedef vector<char,char> vec2;
     vec1 v1(1,2);
     vec2 v2('a','b');
    -typedef vector<vec1&, vec2&> sequences;
    +typedef vector<vec1&, vec2&> sequences;
     std::cout << zip_view<sequences>(sequences(v1, v2)) << std::endl; // ((1 a) (2 b))
     
    diff --git a/doc/html/index.html b/doc/html/index.html index 6d3d1f9a..6b462d75 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,7 +3,7 @@ Chapter 1. Fusion 2.0 - + @@ -34,7 +34,7 @@
    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -215,16 +215,16 @@
    Functions
    Metafunctions
    +
    Limits
    Adapters
    fused
    fused_procedure
    fused_function_object
    -
    unfused_generic
    -
    unfused_lvalue_args
    -
    unfused_rvalue_args
    +
    unfused
    unfused_typed
    +
    Limits
    Generation
    @@ -240,7 +240,7 @@
    - +

    Last revised: July 21, 2008 at 07:17:27 GMT

    Last revised: February 22, 2009 at 06:13:35 GMT