diff --git a/changelist.txt b/changelist.txt new file mode 100644 index 00000000..bb4a21d6 --- /dev/null +++ b/changelist.txt @@ -0,0 +1,5 @@ +Interface Changes + +- June 12, 2009: vector0 is now vector0<> as per Boost Trac Ticket #1608 + to follow MPL more closely. + diff --git a/doc/Jamfile b/doc/Jamfile index 0feef100..b09cd291 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -28,4 +28,3 @@ boostbook quickbook ; - diff --git a/doc/adapted.qbk b/doc/adapted.qbk index a19696fd..53e4bfbd 100644 --- a/doc/adapted.qbk +++ b/doc/adapted.qbk @@ -157,7 +157,7 @@ necessary boilerplate to make an arbitrary struct into a __random_access_sequenc [heading Synopsis] BOOST_FUSION_ADAPT_STRUCT( - struct_name + struct_name, (member_type0, member_name0) (member_type1, member_name1) ... @@ -190,7 +190,7 @@ namespace qualified name of the struct to be converted. // demo::employee is now a Fusion sequence BOOST_FUSION_ADAPT_STRUCT( - demo::employee + demo::employee, (std::string, name) (int, age)) @@ -205,7 +205,7 @@ and __associative_sequence__. [heading Synopsis] BOOST_FUSION_ADAPT_ASSOC_STRUCT( - struct_name + struct_name, (member_type0, member_name0, key_type0) (member_type1, member_name1, key_type1) ... @@ -247,7 +247,7 @@ namespace qualified name of the struct to be converted. // It is also an associative sequence with // keys keys::name and keys::age present. BOOST_FUSION_ADAPT_ASSOC_STRUCT( - demo::employee + demo::employee, (std::string, name, keys::name) (int, age, keys::age)) diff --git a/doc/container.qbk b/doc/container.qbk index 62baca68..c859e4ae 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -48,7 +48,6 @@ sequence container, and in many cases the most efficient. [*Numbered forms] - template <> struct vector0; template @@ -629,14 +628,13 @@ Create a __set__ from one or more values. typename __result_of_make_set__::type make_set(T0 const& x0, T1 const& x1... TN const& xN); -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`set` is implemented in terms of the vector. That is why we reuse -`FUSION_MAX_VECTOR_SIZE`] elements, where `FUSION_MAX_VECTOR_SIZE` is a user -definable predefined maximum that defaults to `10`. You may define the -preprocessor constant `FUSION_MAX_VECTOR_SIZE` before including any Fusion -header to change the default. Example: +The variadic function accepts `0` to `FUSION_MAX_SET_SIZE` elements, +where `FUSION_MAX_SET_SIZE` is a user definable predefined maximum that +defaults to `10`. You may define the preprocessor constant +`FUSION_MAX_SET_SIZE` before including any Fusion header to change the +default. Example: - #define FUSION_MAX_VECTOR_SIZE 20 + #define FUSION_MAX_SET_SIZE 20 [heading Parameters] @@ -683,15 +681,14 @@ Create a __map__ from one or more key/data pairs. , typename T0, typename T1,... typename TN> typename __result_of_make_map__::type make_map(T0 const& x0, T1 const& x1... TN const& xN); + +The variadic function accepts `0` to `FUSION_MAX_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: -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`map` is implemented in terms of the vector. That is why we reuse -`FUSION_MAX_VECTOR_SIZE`] elements, where `FUSION_MAX_VECTOR_SIZE` is a user -definable predefined maximum that defaults to `10`. You may define the -preprocessor constant `FUSION_MAX_VECTOR_SIZE` before including any Fusion -header to change the default. Example: - - #define FUSION_MAX_VECTOR_SIZE 20 + #define FUSION_MAX_MAP_SIZE 20 [heading Parameters] @@ -1063,14 +1060,13 @@ Returns the result type of __make_set__. template struct make_set; -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`set` is implemented in terms of the vector. That is why we reuse -`FUSION_MAX_VECTOR_SIZE`] elements, where `FUSION_MAX_VECTOR_SIZE` is a user -definable predefined maximum that defaults to `10`. You may define the -preprocessor constant `FUSION_MAX_VECTOR_SIZE` before including any Fusion -header to change the default. Example: +The variadic function accepts `0` to `FUSION_MAX_SET_SIZE` elements, +where `FUSION_MAX_SET_SIZE` is a user definable predefined maximum that +defaults to `10`. You may define the preprocessor constant +`FUSION_MAX_SET_SIZE` before including any Fusion header to change the +default. Example: - #define FUSION_MAX_VECTOR_SIZE 20 + #define FUSION_MAX_SET_SIZE 20 [heading Parameters] @@ -1114,14 +1110,13 @@ Returns the result type of __make_map__. , typename T0, typename T1,... typename TN> struct make_map; -The variadic function accepts `0` to `FUSION_MAX_VECTOR_SIZE`[footnote -`map` is implemented in terms of the vector. That is why we reuse -`FUSION_MAX_VECTOR_SIZE`] elements, where `FUSION_MAX_VECTOR_SIZE` is a user -definable predefined maximum that defaults to `10`. You may define the -preprocessor constant `FUSION_MAX_VECTOR_SIZE` before including any Fusion -header to change the default. Example: +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_VECTOR_SIZE 20 + #define FUSION_MAX_MAP_SIZE 20 [heading Parameters] 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..77569ed6 100644 --- a/doc/html/fusion/acknowledgements.html +++ b/doc/html/fusion/acknowledgements.html @@ -3,10 +3,10 @@ Acknowledgements - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +

Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey Gurtovoy, Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan Marsden, Eric diff --git a/doc/html/fusion/adapted.html b/doc/html/fusion/adapted.html index 8a1358ae..5dd7f165 100644 --- a/doc/html/fusion/adapted.html +++ b/doc/html/fusion/adapted.html @@ -3,10 +3,10 @@ Adapted - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

- +
+ +
+
std::pair
mpl sequence
@@ -46,11 +50,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 +63,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..fef3a05e 100644 --- a/doc/html/fusion/adapted/adapt_assoc.html +++ b/doc/html/fusion/adapted/adapt_assoc.html @@ -3,10 +3,10 @@ BOOST_FUSION_ADAPT_ASSOC_STRUCT - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +

- + Description

@@ -38,11 +42,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,7 +53,7 @@
     )
 

- + Semantics

@@ -70,19 +73,17 @@ 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..9f4bb3aa 100644
--- a/doc/html/fusion/adapted/adapt_struct.html
+++ b/doc/html/fusion/adapted/adapt_struct.html
@@ -3,10 +3,10 @@
 
  BOOST_FUSION_ADAPT_STRUCT
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
- +

- + Description

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

- + Synopsis

-
-BOOST_FUSION_ADAPT_STRUCT(
+
BOOST_FUSION_ADAPT_STRUCT(
     struct_name
     (member_type0, member_name0)
     (member_type1, member_name1)
@@ -48,7 +51,7 @@
     )
 

- + Semantics

@@ -65,19 +68,17 @@ 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..be20f041 100644
--- a/doc/html/fusion/adapted/boost__array.html
+++ b/doc/html/fusion/adapted/boost__array.html
@@ -3,10 +3,10 @@
 
 boost::array
 
-
-
+
+
 
-
+
 
 
 
@@ -23,8 +23,12 @@
 PrevUpHomeNext
 
- +
+ +
+

This module provides adapters for boost::array. Including the module header makes boost::array @@ -33,26 +37,24 @@ 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;
@@ -61,7 +63,7 @@
 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..7967d788 100644 --- a/doc/html/fusion/adapted/boost__tuple.html +++ b/doc/html/fusion/adapted/boost__tuple.html @@ -3,10 +3,10 @@ boost::tuple - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

- +
+ +
+

This module provides adapters for boost::tuple. Including the module header makes boost::tuple @@ -33,30 +37,28 @@ 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..d5e2472f 100644 --- a/doc/html/fusion/adapted/mpl_sequence.html +++ b/doc/html/fusion/adapted/mpl_sequence.html @@ -3,10 +3,10 @@ mpl sequence - - + + - + @@ -23,23 +23,26 @@ PrevUpHomeNext

- +
+ +
+

This module provides adapters for MPL sequences. Including the module header makes all MPL 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,11 +66,10 @@

- + 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;
@@ -77,7 +79,7 @@
 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..ab190863 100644 --- a/doc/html/fusion/adapted/std__pair.html +++ b/doc/html/fusion/adapted/std__pair.html @@ -3,10 +3,10 @@ std::pair - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

- +
+ +
+

This module provides adapters for std::pair. Including the module header makes std::pair @@ -33,32 +37,30 @@ 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::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

diff --git a/doc/html/fusion/algorithm.html b/doc/html/fusion/algorithm.html index cf44e1d8..0a67e17a 100644 --- a/doc/html/fusion/algorithm.html +++ b/doc/html/fusion/algorithm.html @@ -3,10 +3,10 @@ Algorithm - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

- +
+ +
+
Iteration
@@ -43,7 +47,7 @@

- + Lazy Evaluation

@@ -66,7 +70,7 @@ as we want without incurring a high runtime penalty.

- + Sequence Extension

@@ -89,11 +93,10 @@ 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..bfaeb862 100644 --- a/doc/html/fusion/algorithm/iteration.html +++ b/doc/html/fusion/algorithm/iteration.html @@ -3,10 +3,10 @@ Iteration - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
Functions
Metafunctions
@@ -34,11 +38,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..dcba7466 100644 --- a/doc/html/fusion/algorithm/iteration/functions.html +++ b/doc/html/fusion/algorithm/iteration/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
fold
accumulate
diff --git a/doc/html/fusion/algorithm/iteration/functions/accumulate.html b/doc/html/fusion/algorithm/iteration/functions/accumulate.html index afa5797f..f984b2f8 100644 --- a/doc/html/fusion/algorithm/iteration/functions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/functions/accumulate.html @@ -3,10 +3,10 @@ accumulate - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -37,11 +41,10 @@ and the previous state.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename State,
     typename F
@@ -50,7 +53,7 @@
     Sequence& seq, State const& initial_state, F const& f);
 
-

Table 1.34. Parameters

+

Table 1.34. Parameters

@@ -58,91 +61,66 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

Operation's argument -

-
-

+

initial_state -

-
-

+

Any type -

-
-

+

Initial state -

-
-

+

f -

-
-

+

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

-
-

+

Operation's argument -

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

Return type: Any type @@ -152,26 +130,24 @@ where e1 ...eN are the elements of seq.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
+
#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;
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/fold.html b/doc/html/fusion/algorithm/iteration/functions/fold.html
index 5602ce26..096f2b51 100644
--- a/doc/html/fusion/algorithm/iteration/functions/fold.html
+++ b/doc/html/fusion/algorithm/iteration/functions/fold.html
@@ -3,10 +3,10 @@
 
 fold
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
- +
+
+fold +
+
+
- + Description

@@ -37,11 +41,10 @@ and the previous state.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename State,
     typename F
@@ -50,7 +53,7 @@
     Sequence& seq, State const& initial_state, F const& f);
 
-

Table 1.33. Parameters

+

Table 1.33. Parameters

@@ -58,91 +61,66 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

Operation's argument -

-
-

+

initial_state -

-
-

+

Any type -

-
-

+

Initial state -

-
-

+

f -

-
-

+

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

-
-

+

Operation's argument -

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

Return type: Any type @@ -152,26 +130,24 @@ where e1 ...eN are the elements of seq.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
+
#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;
 
diff --git a/doc/html/fusion/algorithm/iteration/functions/for_each.html b/doc/html/fusion/algorithm/iteration/functions/for_each.html
index 6e1f5acb..8e50a7e9 100644
--- a/doc/html/fusion/algorithm/iteration/functions/for_each.html
+++ b/doc/html/fusion/algorithm/iteration/functions/for_each.html
@@ -3,10 +3,10 @@
 
 for_each
 
-
-
+
+
 
-
+
 
 
 
@@ -23,21 +23,24 @@
 PrevUpHomeNext
 
- +
+ +
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -45,7 +48,7 @@
     Sequence& seq, F const& f);
 
-

Table 1.35. Parameters

+

Table 1.35. Parameters

@@ -53,73 +56,54 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

A unary Regular Callable Object -

-
-

+

Operation's argument -

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

Return type: void @@ -129,26 +113,24 @@ in seq.

- + Complexity

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
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions.html b/doc/html/fusion/algorithm/iteration/metafunctions.html
index 6e338e90..d4d69116 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions.html
@@ -3,10 +3,10 @@
 
 Metafunctions
 
-
-
+
+
 
-
+
 
 
 
@@ -23,8 +23,12 @@
 PrevUpHomeNext
 
- +
+ +
+
fold
accumulate
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html index 10544a1a..7b12ff9f 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html @@ -3,10 +3,10 @@ accumulate - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Returns the result type of accumulate.

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

Table 1.37. Parameters

+

Table 1.37. Parameters

@@ -55,88 +58,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

The sequence to iterate -

-
-

+

State -

-
-

+

Any type -

-
-

+

The initial state for the first application of F -

-
-

+

F -

-
-

+

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

-
-

+

The operation to be applied on forward traversal -

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

Return type: Any type @@ -149,18 +127,17 @@ and binary function object or function pointer of type F.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/accumulate.hpp>
+
#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..77ee02f3 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html @@ -3,10 +3,10 @@ fold - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+fold +
+
+
- + Description

Returns the result type of fold.

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

Table 1.36. Parameters

+

Table 1.36. Parameters

@@ -55,88 +58,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

The sequence to iterate -

-
-

+

State -

-
-

+

Any type -

-
-

+

The initial state for the first application of F -

-
-

+

F -

-
-

+

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

-
-

+

The operation to be applied on forward traversal -

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

Return type: Any type @@ -149,18 +127,17 @@ and binary function object or function pointer of type F.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/iteration/fold.hpp>
+
#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..b5eecf0a 100644 --- a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html +++ b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html @@ -3,10 +3,10 @@ for_each - - + + - + @@ -23,22 +23,25 @@ PrevUpHomeNext
- +
+ +
+

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

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

Table 1.38. Parameters

+

Table 1.38. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

F -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: void. @@ -131,18 +115,17 @@ 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..fc3db9fa 100644 --- a/doc/html/fusion/algorithm/query.html +++ b/doc/html/fusion/algorithm/query.html @@ -3,10 +3,10 @@ Query - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+

+Query +

+
+
Functions
Metafunctions
@@ -33,11 +37,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..67be2efb 100644 --- a/doc/html/fusion/algorithm/query/functions.html +++ b/doc/html/fusion/algorithm/query/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
any
all
diff --git a/doc/html/fusion/algorithm/query/functions/all.html b/doc/html/fusion/algorithm/query/functions/all.html index f390c520..bd8d41b4 100644 --- a/doc/html/fusion/algorithm/query/functions/all.html +++ b/doc/html/fusion/algorithm/query/functions/all.html @@ -3,10 +3,10 @@ all - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
-
-all
+
+
+all +
+
+
- + Description

@@ -37,11 +41,10 @@ element of seq.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -49,7 +52,7 @@
     Sequence const& seq, F f);
 
-

Table 1.40. Parameters

+

Table 1.40. Parameters

@@ -57,71 +60,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

The sequence to search -

-
-

+

f -

-
-

+

A unary function object -

-
-

+

The search predicate -

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

Return type: bool @@ -133,26 +117,24 @@ element e in seq.

- + Complexity

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
diff --git a/doc/html/fusion/algorithm/query/functions/any.html b/doc/html/fusion/algorithm/query/functions/any.html
index 6fa8e22e..aac7fb4d 100644
--- a/doc/html/fusion/algorithm/query/functions/any.html
+++ b/doc/html/fusion/algorithm/query/functions/any.html
@@ -3,10 +3,10 @@
 
 any
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
-
-any
+
+
+any +
+
+
- + Description

@@ -37,11 +41,10 @@ least one element of seq.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -49,7 +52,7 @@
     Sequence const& seq, F f);
 
-

Table 1.39. Parameters

+

Table 1.39. Parameters

@@ -57,71 +60,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

The sequence to search -

-
-

+

f -

-
-

+

A unary function object -

-
-

+

The search predicate -

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

Return type: bool @@ -133,26 +117,24 @@ element e in seq.

- + Complexity

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
diff --git a/doc/html/fusion/algorithm/query/functions/count.html b/doc/html/fusion/algorithm/query/functions/count.html
index 768ad2c9..71990376 100644
--- a/doc/html/fusion/algorithm/query/functions/count.html
+++ b/doc/html/fusion/algorithm/query/functions/count.html
@@ -3,10 +3,10 @@
 
 count
 
-
-
+
+
 
-
+
 
 
 
@@ -23,21 +23,24 @@
 PrevUpHomeNext
 
- +
+
+count +
+
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -45,7 +48,7 @@
     Sequence const& seq, T const& t);
 
-

Table 1.44. Parameters

+

Table 1.44. Parameters

@@ -53,72 +56,53 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

The sequence to search -

-
-

+

T -

-
-

+

Any type -

-
-

+

The type to count -

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

Return type: int @@ -129,26 +113,24 @@ t in seq.

- + Complexity

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);
+
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..85036034 100644 --- a/doc/html/fusion/algorithm/query/functions/count_if.html +++ b/doc/html/fusion/algorithm/query/functions/count_if.html @@ -3,10 +3,10 @@ count_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ a given unary function object evaluates to true.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -46,7 +49,7 @@
     Sequence const& seq, F f);
 
-

Table 1.45. Parameters

+

Table 1.45. Parameters

@@ -54,71 +57,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

The sequence to search -

-
-

+

f -

-
-

+

A unary function object -

-
-

+

The search predicate -

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

Return type: int @@ -128,26 +112,24 @@ in seq where f evaluates to true.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/count_if.hpp>
+
#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);
+
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..4168cceb 100644 --- a/doc/html/fusion/algorithm/query/functions/find.html +++ b/doc/html/fusion/algorithm/query/functions/find.html @@ -3,10 +3,10 @@ find - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+find +
+
+
- + Description

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

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

Table 1.42. Parameters

+

Table 1.42. Parameters

@@ -58,69 +61,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

The sequence to search -

-
-

+

T -

-
-

+

Any type -

-
-

+

The type to search for -

-
- + Expression Semantics
-
-find<T>(seq)
+
find<T>(seq)
 

Return type: A model of the same iterator @@ -133,26 +117,24 @@ to find_if<boost::is_same<_, T> >(seq)

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/find.hpp>
+
#include <boost/fusion/algorithm/query/find.hpp>
 #include <boost/fusion/include/find.hpp>
 
- + Example
-
-const vector<char,int> vec('a','0');
+
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..2acdceaf 100644 --- a/doc/html/fusion/algorithm/query/functions/find_if.html +++ b/doc/html/fusion/algorithm/query/functions/find_if.html @@ -3,10 +3,10 @@ find_if - - + + - + @@ -23,23 +23,26 @@ PrevUpHomeNext
- +
+ +
+

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

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

Table 1.43. Parameters

+

Table 1.43. Parameters

@@ -60,70 +63,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

The sequence to search -

-
-

+

F -

-
-

+

A unary MPL Lambda Expression -

-
-

+

The search predicate -

-
- + Expression Semantics
-
-find_if<F>(seq)
+
find_if<F>(seq)
 

Return type: An iterator of the same @@ -137,7 +121,7 @@ if there is no such element.

- + Complexity

@@ -147,11 +131,10 @@ /algorithm/query/find_if.hpp>

- + Example
-
-const vector<double,int> vec(1.0,2);
+
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..49dc1b6c 100644 --- a/doc/html/fusion/algorithm/query/functions/none.html +++ b/doc/html/fusion/algorithm/query/functions/none.html @@ -3,10 +3,10 @@ none - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+none +
+
+
- + Description

@@ -37,11 +41,10 @@ element of seq.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -49,7 +52,7 @@
     Sequence const& seq, F f);
 
-

Table 1.41. Parameters

+

Table 1.41. Parameters

@@ -57,71 +60,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

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

-
-

+

The sequence to search -

-
-

+

f -

-
-

+

A unary function object -

-
-

+

The search predicate -

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

Return type: bool @@ -133,26 +117,24 @@ element e in seq. Result equivalent to !any(seq, f).

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/none.hpp>
+
#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
diff --git a/doc/html/fusion/algorithm/query/metafunctions.html b/doc/html/fusion/algorithm/query/metafunctions.html
index 51fd7502..03aa9147 100644
--- a/doc/html/fusion/algorithm/query/metafunctions.html
+++ b/doc/html/fusion/algorithm/query/metafunctions.html
@@ -3,10 +3,10 @@
 
 Metafunctions
 
-
-
+
+
 
-
+
 
 
 
@@ -23,8 +23,12 @@
 PrevUpHomeNext
 
- +
+ +
+
any
all
diff --git a/doc/html/fusion/algorithm/query/metafunctions/all.html b/doc/html/fusion/algorithm/query/metafunctions/all.html index 38f893ae..2a568658 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/all.html +++ b/doc/html/fusion/algorithm/query/metafunctions/all.html @@ -3,10 +3,10 @@ all - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
-
-all
+
+
+all +
+
+
- + Description

A metafunction returning the result type of all.

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

Table 1.47. Parameters

+

Table 1.47. Parameters

@@ -55,71 +58,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

F -

-
-

+

A model of unary Polymorphic Function Object -

-
-

+

Operation's argument -

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

Return type: bool. @@ -134,18 +118,17 @@ 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..bd2847d5 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/any.html +++ b/doc/html/fusion/algorithm/query/metafunctions/any.html @@ -3,10 +3,10 @@ any - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
-
-any
+
+
+any +
+
+
- + Description

A metafunction returning the result type of any.

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

Table 1.46. Parameters

+

Table 1.46. Parameters

@@ -55,71 +58,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

F -

-
-

+

A model of unary Polymorphic Function Object -

-
-

+

Operation's argument -

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

Return type: bool. @@ -134,18 +118,17 @@ 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..09e508ab 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/count.html +++ b/doc/html/fusion/algorithm/query/metafunctions/count.html @@ -3,10 +3,10 @@ count - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+count +
+
+
- + Description

@@ -34,11 +38,10 @@ given the sequence and search types.

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

Table 1.51. Parameters

+

Table 1.51. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

heading Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: int. @@ -129,18 +113,17 @@ 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..d6146f03 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/count_if.html +++ b/doc/html/fusion/algorithm/query/metafunctions/count_if.html @@ -3,10 +3,10 @@ count_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ given the sequence and predicate types.

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

Table 1.52. Parameters

+

Table 1.52. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A unary function object -

-
-

+

Operation's argument -

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

Return type: int. @@ -129,18 +113,17 @@ 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..aab23421 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/find.html +++ b/doc/html/fusion/algorithm/query/metafunctions/find.html @@ -3,10 +3,10 @@ find - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+find +
+
+
- + Description

@@ -34,11 +38,10 @@ given the sequence and search types.

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

Table 1.49. Parameters

+

Table 1.49. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

Model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: A model of the same iterator @@ -131,18 +115,17 @@ if there is no such element.

- + Complexity

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..9969c76a 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/find_if.html +++ b/doc/html/fusion/algorithm/query/metafunctions/find_if.html @@ -3,10 +3,10 @@ find_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ given the sequence and predicate types.

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

Table 1.50. Parameters

+

Table 1.50. Parameters

@@ -56,70 +59,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A model of MPL Lambda Expression -

-
-

+

Operation's arguments -

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

Return type: A model of the same iterator @@ -132,18 +116,17 @@ to true. Returns result_of::end<Sequence>::type if there is no such element.

- + Complexity

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

- + Header
-
-#include <boost/fusion/algorithm/query/find_if.hpp>
+
#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..c304be6f 100644 --- a/doc/html/fusion/algorithm/query/metafunctions/none.html +++ b/doc/html/fusion/algorithm/query/metafunctions/none.html @@ -3,10 +3,10 @@ none - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+none +
+
+
- + Description

A metafunction returning the result type of none.

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

Table 1.48. Parameters

+

Table 1.48. Parameters

@@ -55,71 +58,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

F -

-
-

+

A model of unary Polymorphic Function Object -

-
-

+

Operation's argument -

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

Return type: bool. @@ -134,18 +118,17 @@ 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..8fd2b42b 100644 --- a/doc/html/fusion/algorithm/transformation.html +++ b/doc/html/fusion/algorithm/transformation.html @@ -3,10 +3,10 @@ Transformation - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
Functions
Metafunctions
@@ -46,11 +50,10 @@

- + 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..99877326 100644 --- a/doc/html/fusion/algorithm/transformation/functions.html +++ b/doc/html/fusion/algorithm/transformation/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
filter
filter_if
diff --git a/doc/html/fusion/algorithm/transformation/functions/clear.html b/doc/html/fusion/algorithm/transformation/functions/clear.html index 756245e2..feb5afff 100644 --- a/doc/html/fusion/algorithm/transformation/functions/clear.html +++ b/doc/html/fusion/algorithm/transformation/functions/clear.html @@ -3,10 +3,10 @@ clear - - + + - + @@ -23,27 +23,30 @@ PrevUpHomeNext
- +
+
+clear +
+
+
- + Description

clear returns an empty sequence.

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

Table 1.62. Parameters

+

Table 1.62. Parameters

@@ -51,50 +54,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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..ea461dd4 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase.html @@ -3,10 +3,10 @@ erase - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+erase +
+
+
- + Description

@@ -34,11 +38,10 @@ those at a specified iterator, or between two iterators.

- + Synposis
-
-template<
+
template<
     typename Sequence,
     typename First
     >
@@ -54,7 +57,7 @@
     Sequence const& seq, First const& it1, Last const& it2);
 
-

Table 1.63. Parameters

+

Table 1.63. Parameters

@@ -62,91 +65,66 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameters -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

it1 -

-
-

+

A model of Forward Iterator -

-
-

+

Iterator into seq -

-
-

+

it2 -

-
-

+

A model of Forward Iterator -

-
-

+

Iterator into seq after it1 -

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

Return type: A model of seq except the element at pos.

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

Return type: A model of 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');
+
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..e1866d08 100644 --- a/doc/html/fusion/algorithm/transformation/functions/erase_key.html +++ b/doc/html/fusion/algorithm/transformation/functions/erase_key.html @@ -3,10 +3,10 @@ erase_key - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -39,18 +43,17 @@ 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

@@ -58,69 +61,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Associative Sequence -

-
-

+

Operation's argument -

-
-

+

Key -

-
-

+

Any type -

-
-

+

Key to erase -

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

Return type: A model of 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..737dd46c 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter.html @@ -3,10 +3,10 @@ filter - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+filter +
+
+
- + Description

@@ -34,18 +38,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);
 
-

Table 1.53. Parameters

+

Table 1.53. Parameters

@@ -53,69 +56,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

The type to retain -

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

Return type: A model of 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);
+
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..195e3cb3 100644 --- a/doc/html/fusion/algorithm/transformation/functions/filter_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/filter_if.html @@ -3,10 +3,10 @@ filter_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -35,18 +39,17 @@ 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);
 
-

Table 1.54. Parameters

+

Table 1.54. Parameters

@@ -54,70 +57,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A unary MPL Lambda Expression -

-
-

+

The predicate to filter by -

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

Return type: A model of

- + 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);
+
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..fafd881e 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert.html @@ -3,10 +3,10 @@ insert - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+insert +
+
+
- + Description

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

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

Table 1.65. Parameters

+

Table 1.65. Parameters

@@ -54,88 +57,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

pos -

-
-

+

A model of Forward Iterator -

-
-

+

The position to insert at -

-
-

+

t -

-
-

+

Any type -

-
-

+

The value to insert -

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

Return type: A model of 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);
+
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..89f5ec2c 100644 --- a/doc/html/fusion/algorithm/transformation/functions/insert_range.html +++ b/doc/html/fusion/algorithm/transformation/functions/insert_range.html @@ -3,10 +3,10 @@ insert_range - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ iterator.

- + Synposis
-
-template<
+
template<
     typename Sequence,
     typename Pos,
     typename Range
@@ -47,7 +50,7 @@
     Sequence const& seq, Pos const& pos, Range const& range);
 
-

Table 1.66. Parameters

+

Table 1.66. Parameters

@@ -55,90 +58,65 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

pos -

-
-

+

A model of Forward Iterator -

-
-

+

The position to insert at -

-
-

+

range -

-
-

+

A model of Forward Sequence -

-
-

+

Range to insert -

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

Return type: A model of

- + 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);
+
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..a068bd71 100644 --- a/doc/html/fusion/algorithm/transformation/functions/join.html +++ b/doc/html/fusion/algorithm/transformation/functions/join.html @@ -3,10 +3,10 @@ join - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+join +
+
+
- + Description

@@ -34,17 +38,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);
 
-

Table 1.67. Parameters

+

Table 1.67. Parameters

@@ -52,71 +55,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

lhs -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

rhs -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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> 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..c7ecff2e 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_back.html @@ -3,10 +3,10 @@ pop_back - - + + - + @@ -23,27 +23,30 @@ PrevUpHomeNext
- +
+ +
+
- + 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);
 
-

Table 1.69. Parameters

+

Table 1.69. Parameters

@@ -51,50 +54,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of 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..a3ce3e51 100644 --- a/doc/html/fusion/algorithm/transformation/functions/pop_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/pop_front.html @@ -3,10 +3,10 @@ pop_front - - + + - + @@ -23,27 +23,30 @@ PrevUpHomeNext
- +
+ +
+
- + 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);
 
-

Table 1.70. Parameters

+

Table 1.70. Parameters

@@ -51,50 +54,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of 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..2040cd1f 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_back.html @@ -3,10 +3,10 @@ push_back - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -45,7 +48,7 @@
     Sequence const& seq, T const& t);
 
-

Table 1.71. Parameters

+

Table 1.71. Parameters

@@ -53,69 +56,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

t -

-
-

+

Any type -

-
-

+

The value to add to the end -

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

Return type: A model of 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..09bece0c 100644 --- a/doc/html/fusion/algorithm/transformation/functions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/functions/push_front.html @@ -3,10 +3,10 @@ push_front - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -45,7 +48,7 @@
     Sequence const& seq, T const& t);
 
-

Table 1.72. Parameters

+

Table 1.72. Parameters

@@ -53,69 +56,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

t -

-
-

+

Any type -

-
-

+

The value to add to the beginning -

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

Return type: A model of 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..db4100b6 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove.html @@ -3,10 +3,10 @@ remove - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+remove +
+
+
- + Description

@@ -34,18 +38,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);
 
-

Table 1.59. Parameters

+

Table 1.59. Parameters

@@ -53,69 +56,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Type to remove -

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

Return type: A model of 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);
+
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..2f65e2d2 100644 --- a/doc/html/fusion/algorithm/transformation/functions/remove_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/remove_if.html @@ -3,10 +3,10 @@ remove_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,18 +38,17 @@ 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);
 
-

Table 1.60. Parameters

+

Table 1.60. Parameters

@@ -53,70 +56,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A model of unary MPL Lambda Expression -

-
-

+

Removal predicate -

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

Return type: A model of >(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);
+
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..aca836da 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace.html @@ -3,10 +3,10 @@ replace - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ a new value.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename T
     >
@@ -46,7 +49,7 @@
     Sequence const& seq, T const& old_value, T const& new_value);
 
-

Table 1.57. Parameters

+

Table 1.57. Parameters

@@ -54,31 +57,22 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence, e == old_value @@ -86,58 +80,42 @@ for each element e in seq with type convertible to T -

-
-

+

Operation's argument -

-
-

+

old_value -

-
-

+

Any type -

-
-

+

Value to replace -

-
-

+

new_value -

-
-

+

Any type -

-
-

+

Replacement value -

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

Return type: A model of 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..61d37669 100644 --- a/doc/html/fusion/algorithm/transformation/functions/replace_if.html +++ b/doc/html/fusion/algorithm/transformation/functions/replace_if.html @@ -3,10 +3,10 @@ replace_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -35,11 +39,10 @@ replaced with a new value.

- + Synopsis
-
-template<
+
template<
     typename Sequence,
     typename F,
     typename T>
@@ -47,7 +50,7 @@
     Sequence const& seq, F f, T const& new_value);
 
-

Table 1.58. Parameters

+

Table 1.58. Parameters

@@ -55,88 +58,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

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

-
-

+

Operation's argument -

-
-

+

new_value -

-
-

+

Any type -

-
-

+

Replacement value -

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

Return type: A model of 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
diff --git a/doc/html/fusion/algorithm/transformation/functions/reverse.html b/doc/html/fusion/algorithm/transformation/functions/reverse.html
index 11bf809c..4e1f3781 100644
--- a/doc/html/fusion/algorithm/transformation/functions/reverse.html
+++ b/doc/html/fusion/algorithm/transformation/functions/reverse.html
@@ -3,10 +3,10 @@
 
 reverse
 
-
-
+
+
 
-
+
 
 
 
@@ -23,27 +23,30 @@
 PrevUpHomeNext
 
 
- +
+ +
+
- + 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);
 
-

Table 1.61. Parameters

+

Table 1.61. Parameters

@@ -51,50 +54,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Bidirectional Sequence -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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..5b0ee247 100644 --- a/doc/html/fusion/algorithm/transformation/functions/transform.html +++ b/doc/html/fusion/algorithm/transformation/functions/transform.html @@ -3,10 +3,10 @@ transform - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -37,12 +41,11 @@ of seq.

- + Unary version synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -50,7 +53,7 @@
     Sequence const& seq, F f);
 
-

Table 1.55. Parameters

+

Table 1.55. Parameters

@@ -58,72 +61,53 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

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

-
-

+

Transformation function -

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

Return type: A model of seq.

- + Binary version synopsis
-
-template<
+
template<
     typename Sequence1,
     typename Sequence2,
     typename F
@@ -150,7 +133,7 @@
     Sequence1 const& seq1, Sequence2 const& seq2, F f);
 
-

Table 1.56. Parameters

+

Table 1.56. Parameters

@@ -158,81 +141,57 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq1 -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

seq2 -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

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

-
-

+

Transformation function -

-
@@ -248,26 +207,24 @@ 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;
 
diff --git a/doc/html/fusion/algorithm/transformation/functions/zip.html b/doc/html/fusion/algorithm/transformation/functions/zip.html
index 199ab464..45e2d273 100644
--- a/doc/html/fusion/algorithm/transformation/functions/zip.html
+++ b/doc/html/fusion/algorithm/transformation/functions/zip.html
@@ -3,10 +3,10 @@
 
 zip
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
-
-zip
+
+
+zip +
+
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence1,
     typename Sequence2,
     ...
@@ -48,7 +51,7 @@
 zip(Sequence1 const& seq1, Sequence2 const& seq2, ... SequenceN const& seqN);
 
-

Table 1.68. Parameters

+

Table 1.68. Parameters

@@ -56,50 +59,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq1 to seqN -

-
-

+

Each sequence is a model of Forward Sequence. -

-
-

+

Operation's argument -

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

Return type: A model of '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> 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..f51eb53b 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions.html @@ -3,10 +3,10 @@ Metafunctions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
filter
filter_if
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html index 8fb27b3c..6c591a83 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html @@ -3,10 +3,10 @@ clear - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+clear +
+
+
- + Description

@@ -34,11 +38,10 @@ type.

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

Table 1.82. Parameters

+

Table 1.82. Parameters

@@ -55,48 +58,35 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: A model of 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..efa53477 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html @@ -3,10 +3,10 @@ erase - - + + - + @@ -23,22 +23,25 @@ PrevUpHomeNext
- +
+
+erase +
+
+

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

Table 1.83. Parameters

+

Table 1.83. Parameters

@@ -56,90 +59,65 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

It1 -

-
-

+

A model of Forward Iterator -

-
-

+

Operation's argument -

-
-

+

It2 -

-
-

+

A model of Forward Iterator -

-
-

+

Operation's argument -

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

Return type: A model of 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 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..dbfd5bbf 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html @@ -3,10 +3,10 @@ erase_key - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ and key types.

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

Table 1.84. Parameters

+

Table 1.84. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Associative Sequence -

-
-

+

Operation's argument -

-
-

+

Key -

-
-

+

Any type -

-
-

+

Key type -

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

Return type: A model of 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..7557f2f8 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html @@ -3,10 +3,10 @@ filter - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+filter +
+
+
- + Description

@@ -34,11 +38,10 @@ and type to retain.

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

Table 1.73. Parameter

+

Table 1.73. Parameter

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Type to retain -

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

Return type: A model of 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..b64f9a23 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html @@ -3,10 +3,10 @@ filter_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -35,11 +39,10 @@ Lambda Expression predicate type.

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

Table 1.74. Parameter

+

Table 1.74. Parameter

@@ -57,70 +60,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A unary MPL Lambda Expression -

-
-

+

Type to retain -

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

Return type: A model of 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..3643e325 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html @@ -3,10 +3,10 @@ insert - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+
+insert +
+
+
- + Description

@@ -34,11 +38,10 @@ position iterator and insertion types.

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

Table 1.85. Parameters

+

Table 1.85. Parameters

@@ -57,88 +60,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Position -

-
-

+

A model of Forward Iterator -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: A model of 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..270214e6 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html @@ -3,10 +3,10 @@ insert_range - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ sequence, position iterator and insertion range types.

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

Table 1.86. Parameters

+

Table 1.86. Parameters

@@ -57,90 +60,65 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Position -

-
-

+

A model of Forward Iterator -

-
-

+

Operation's argument -

-
-

+

Range -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of 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..486eab6c 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/join.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/join.html @@ -3,10 +3,10 @@ join - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+join +
+
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename LhSequence,
     typename RhSequence
     >
@@ -47,12 +50,11 @@
 };
 
- + Expression Semantics
-
-result_of::join<LhSequence, RhSequence>::type
+
result_of::join<LhSequence, RhSequence>::type
 

Return type: A model of

- + 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..6db048e6 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html @@ -3,10 +3,10 @@ pop_back - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ type.

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

Table 1.87. Parameters

+

Table 1.87. Parameters

@@ -55,50 +58,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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..8a6db591 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html @@ -3,10 +3,10 @@ pop_front - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ type.

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

Table 1.88. Parameters

+

Table 1.88. Parameters

@@ -55,50 +58,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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..48767806 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html @@ -3,10 +3,10 @@ push_back - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ the input sequence and element to push.

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

Table 1.89. Parameters

+

Table 1.89. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: A model of

- + 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..48ec2b9a 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html @@ -3,10 +3,10 @@ push_front - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ of the input sequence and element to push.

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

Table 1.90. Parameters

+

Table 1.90. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Operation's argument -

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

Return type: A model of

- + Complexity

diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html index 667c78ce..2a8b7eeb 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html @@ -3,10 +3,10 @@ remove - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +
+
+remove +
+
+
- + Description

@@ -34,11 +38,10 @@ removal types.

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

Table 1.79. Parameters

+

Table 1.79. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

Remove elements of this type -

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

Return type: A model of 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..a0af26fd 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html @@ -3,10 +3,10 @@ remove_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -35,11 +39,10 @@ Lambda Expression predicate types.

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

Table 1.80. Parameters

+

Table 1.80. Parameters

@@ -57,70 +60,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

Pred -

-
-

+

A model of unary MPL Lambda Expression -

-
-

+

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

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

Return type: A model of 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..f4d23939 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html @@ -3,10 +3,10 @@ replace - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ the input sequence and element to replace.

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

Table 1.77. Parameters

+

Table 1.77. Parameters

@@ -56,69 +59,50 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

T -

-
-

+

Any type -

-
-

+

The type of the search and replacement objects -

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

Return type: A model 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..ae514425 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html @@ -3,10 +3,10 @@ replace_if - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -36,11 +40,10 @@ Function Object predicate and replacement object.

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

Table 1.78. Parameters

+

Table 1.78. Parameters

@@ -58,88 +61,63 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

F -

-
-

+

A model of unary Polymorphic Function Object -

-
-

+

Replacement predicate -

-
-

+

T -

-
-

+

Any type -

-
-

+

The type of the replacement object -

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

Return type: A model 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..3f548d7b 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html @@ -3,10 +3,10 @@ reverse - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ type.

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

Table 1.81. Parameters

+

Table 1.81. Parameters

@@ -55,50 +58,37 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A model of Bidirectional Sequence -

-
-

+

Operation's argument -

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

Return type: A model of 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..c202927f 100644 --- a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html +++ b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html @@ -3,10 +3,10 @@ transform - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -37,12 +41,11 @@ of seq.

- + Unary version synopsis
-
-template<
+
template<
     typename Sequence,
     typename F
     >
@@ -50,7 +53,7 @@
     Sequence const& seq, F f);
 
-

Table 1.75. Parameters

+

Table 1.75. Parameters

@@ -58,72 +61,53 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

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

-
-

+

Transformation function -

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

Return type: A model of seq.

- + Binary version synopsis
-
-template<
+
template<
     typename Sequence1,
     typename Sequence2,
     typename F
@@ -150,7 +133,7 @@
     Sequence1 const& seq1, Sequence2 const& seq2, F f);
 
-

Table 1.76. Parameters

+

Table 1.76. Parameters

@@ -158,81 +141,57 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq1 -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

seq2 -

-
-

+

A model of Forward Sequence -

-
-

+

Operation's argument -

-
-

+

f -

-
-

+

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

-
-

+

Transformation function -

-
@@ -248,26 +207,24 @@ 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;
 
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
index 840c9039..119bd233 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
@@ -3,10 +3,10 @@
 
 zip
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
-
-zip
+
+
+zip +
+
+
- + Description

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

- + Synopsis
-
-template<
+
template<
     typename Sequence1,
     typename Sequence2,
     ...
@@ -50,12 +53,11 @@
 };
 
- + Expression Semantics
-
-result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
+
result_of::zip<Sequence1, Sequence2, ... SequenceN>::type
 

Return type: A model of the most restrictive @@ -73,18 +75,17 @@ '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..38a42e09 100644 --- a/doc/html/fusion/change_log.html +++ b/doc/html/fusion/change_log.html @@ -3,10 +3,10 @@ Change log - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+

This section summarizes significant changes to the Fusion library.

diff --git a/doc/html/fusion/container.html b/doc/html/fusion/container.html index ad50b704..1a616561 100644 --- a/doc/html/fusion/container.html +++ b/doc/html/fusion/container.html @@ -3,10 +3,10 @@ Container - - + + - @@ -24,8 +24,12 @@ PrevUpHomeNext
- +
+ +
+
vector
cons
@@ -49,11 +53,10 @@ These containers are more or less counterparts of those in 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..55d4ba30 100644 --- a/doc/html/fusion/container/cons.html +++ b/doc/html/fusion/container/cons.html @@ -3,10 +3,10 @@ cons - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+

+cons +

+
+

- + Description

@@ -42,23 +46,21 @@ 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

@@ -68,60 +70,42 @@ - - + - + +

- - + - +

+ - - + - + +

-

+

Parameter -

-
-

+

Description -

-
-

+

Default -

-
-

+

Car -

-
-

+

Head type -

-
-

-

-

+

-

+

Cdr -

-
-

+

Tail type -

-
-

+

nil -

-

- + Model of

  • - + Expression Semantics

    @@ -178,115 +162,83 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    nil() -

    - - -

    +

    +

    Creates an empty list. -

    - +

    - -

    +

    C() -

    - - -

    +

    +

    Creates a cons with default constructed elements. -

    - +

    - -

    +

    C(car) -

    - - -

    +

    +

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

    - +

    - -

    +

    C(car, cdr) -

    - - -

    +

    +

    Creates a cons with car head and cdr tail. -

    - +

    - -

    +

    C(s) -

    - - -

    +

    +

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

    - +

    - -

    +

    l = s -

    - - -

    +

    +

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

    - +

    - -

    +

    at<N>(l) -

    - - -

    +

    +

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

    - +

- +
+ +
+
Functions
Metafunctions
@@ -34,11 +38,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..b1a32164 100644 --- a/doc/html/fusion/container/conversion/functions.html +++ b/doc/html/fusion/container/conversion/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
as_list
as_vector
diff --git a/doc/html/fusion/container/conversion/functions/as_list.html b/doc/html/fusion/container/conversion/functions/as_list.html index 0c763d69..0c50bc89 100644 --- a/doc/html/fusion/container/conversion/functions/as_list.html +++ b/doc/html/fusion/container/conversion/functions/as_list.html @@ -3,10 +3,10 @@ as_list - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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 +49,7 @@
 as_list(Sequence const& seq);
 
- + Parameters
@@ -56,47 +59,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

An instance of Sequence -

-
-

+

The sequence to convert. -

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

Return type: result_of::as_list<Sequence>::type @@ -106,19 +96,17 @@ 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..4f884f3e 100644 --- a/doc/html/fusion/container/conversion/functions/as_map.html +++ b/doc/html/fusion/container/conversion/functions/as_map.html @@ -3,10 +3,10 @@ as_map - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+as_map +
+
+
- + Description

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 +49,7 @@
 as_map(Sequence const& seq);
 
- + Parameters
@@ -56,47 +59,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

An instance of Sequence -

-
-

+

The sequence to convert. -

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

Return type: result_of::as_map<Sequence>::type @@ -111,19 +101,17 @@ 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(
+
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..26f9a173 100644 --- a/doc/html/fusion/container/conversion/functions/as_set.html +++ b/doc/html/fusion/container/conversion/functions/as_set.html @@ -3,10 +3,10 @@ as_set - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+
+as_set +
+
+
- + Description

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 +49,7 @@
 as_set(Sequence const& seq);
 
- + Parameters
@@ -56,47 +59,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

An instance of Sequence -

-
-

+

The sequence to convert. -

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

Return type: result_of::as_set<Sequence>::type @@ -110,19 +100,17 @@ 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..124481e1 100644 --- a/doc/html/fusion/container/conversion/functions/as_vector.html +++ b/doc/html/fusion/container/conversion/functions/as_vector.html @@ -3,10 +3,10 @@ as_vector - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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 +49,7 @@
 as_vector(Sequence const& seq);
 
- + Parameters
@@ -56,47 +59,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

seq -

-
-

+

An instance of Sequence -

-
-

+

The sequence to convert. -

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

Return type: result_of::as_vector<Sequence>::type @@ -106,19 +96,17 @@ 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..6eaabfae 100644 --- a/doc/html/fusion/container/conversion/metafunctions.html +++ b/doc/html/fusion/container/conversion/metafunctions.html @@ -3,10 +3,10 @@ Metafunctions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
as_list
as_vector
diff --git a/doc/html/fusion/container/conversion/metafunctions/as_list.html b/doc/html/fusion/container/conversion/metafunctions/as_list.html index da828883..0e1515d7 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_list.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_list.html @@ -3,10 +3,10 @@ as_list - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Returns the result type of as_list.

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_list;
 
- + Parameters
@@ -51,47 +54,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A fusion Sequence -

-
-

+

The sequence type to convert. -

-
- + Expression Semantics
-
-result_of::as_list<Sequence>::type;
+
result_of::as_list<Sequence>::type;
 

Return type: A list with same elements as the @@ -102,19 +92,17 @@ 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..a903a2da 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_map.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_map.html @@ -3,10 +3,10 @@ as_map - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
- +
+
+as_map +
+
+
- + Description

Returns the result type of as_map.

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_map;
 
- + Parameters
@@ -51,47 +54,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A fusion Sequence -

-
-

+

The sequence to convert. -

-
- + Expression Semantics
-
-result_of::as_map<Sequence>::type;
+
result_of::as_map<Sequence>::type;
 

Return type: A map with same elements as the @@ -107,19 +97,17 @@ 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<
+
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..3bb19f0d 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_set.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_set.html @@ -3,10 +3,10 @@ as_set - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
- +
+
+as_set +
+
+
- + Description

Returns the result type of as_set.

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_set;
 
- + Parameters
@@ -51,47 +54,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A fusion Sequence -

-
-

+

The sequence to convert. -

-
- + Expression Semantics
-
-result_of::as_set<Sequence>::type;
+
result_of::as_set<Sequence>::type;
 

Return type: A set with same elements as the @@ -106,19 +96,17 @@ 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..5965a7c7 100644 --- a/doc/html/fusion/container/conversion/metafunctions/as_vector.html +++ b/doc/html/fusion/container/conversion/metafunctions/as_vector.html @@ -3,10 +3,10 @@ as_vector - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Returns the result type of as_vector.

- + Synopsis
-
-template <typename Sequence>
+
template <typename Sequence>
 struct as_vector;
 
- + Parameters
@@ -51,47 +54,34 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Sequence -

-
-

+

A fusion Sequence -

-
-

+

The sequence to convert. -

-
- + Expression Semantics
-
-result_of::as_vector<Sequence>::type;
+
result_of::as_vector<Sequence>::type;
 

Return type: A vector with same elements as @@ -102,19 +92,17 @@ 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..23369336 100644 --- a/doc/html/fusion/container/generation.html +++ b/doc/html/fusion/container/generation.html @@ -3,10 +3,10 @@ Generation - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
Functions
MetaFunctions
@@ -33,11 +37,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..4a7cabfa 100644 --- a/doc/html/fusion/container/generation/functions.html +++ b/doc/html/fusion/container/generation/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
make_list
make_cons
diff --git a/doc/html/fusion/container/generation/functions/list_tie.html b/doc/html/fusion/container/generation/functions/list_tie.html index cb73d6ce..ce6e3a6f 100644 --- a/doc/html/fusion/container/generation/functions/list_tie.html +++ b/doc/html/fusion/container/generation/functions/list_tie.html @@ -3,10 +3,10 @@ list_tie - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Constructs a tie using a list sequence.

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
template <typename T0, typename T1,... typename TN>
 list<T0&, T1&,... TN&>
 list_tie(T0& x0, T1& x1... TN& xN);
 
@@ -49,11 +52,10 @@ 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
@@ -63,49 +65,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

The arguments to list_tie -

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

Return type: list<T0&, T1&,... @@ -115,19 +104,17 @@ 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..6ab4f6ca 100644 --- a/doc/html/fusion/container/generation/functions/make_cons.html +++ b/doc/html/fusion/container/generation/functions/make_cons.html @@ -3,10 +3,10 @@ make_cons - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -35,11 +39,10 @@ and optional cdr (tail).

- + Synopsis
-
-template <typename Car>
+
template <typename Car>
 typename result_of::make_cons<Car>::type
 make_cons(Car const& car);
 
@@ -48,7 +51,7 @@
 make_cons(Car const& car, Cdr const& cdr);
 
- + Parameters
@@ -58,66 +61,47 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

car -

-
-

+

Instance of Car -

-
-

+

The list's head -

-
-

+

cdr -

-
-

+

Instance of Cdr -

-
-

+

The list's tail (optional) -

-
- + Expression Semantics
-
-make_cons(car, cdr);
+
make_cons(car, cdr);
 

Return type: result_of::make_cons<Car, Cdr>::type or result_of::make_cons<Car>::type @@ -128,22 +112,20 @@ (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
diff --git a/doc/html/fusion/container/generation/functions/make_list.html b/doc/html/fusion/container/generation/functions/make_list.html index 49ca486d..4950bbff 100644 --- a/doc/html/fusion/container/generation/functions/make_list.html +++ b/doc/html/fusion/container/generation/functions/make_list.html @@ -3,10 +3,10 @@ make_list - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ from one or more values.

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
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);
 
@@ -50,11 +53,10 @@ 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
@@ -64,49 +66,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

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 @@ -115,22 +104,20 @@ 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
diff --git a/doc/html/fusion/container/generation/functions/make_map.html b/doc/html/fusion/container/generation/functions/make_map.html index 8b202e40..abf904a9 100644 --- a/doc/html/fusion/container/generation/functions/make_map.html +++ b/doc/html/fusion/container/generation/functions/make_map.html @@ -3,10 +3,10 @@ make_map - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ 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
@@ -46,18 +49,16 @@
 

The variadic function accepts 0 - to FUSION_MAX_VECTOR_SIZE - [10] - elements, where FUSION_MAX_VECTOR_SIZE + 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_VECTOR_SIZE - before including any Fusion header to change the default. Example: + FUSION_MAX_MAP_SIZE before + including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_MAP_SIZE 20
 
- + Parameters
@@ -67,70 +68,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

K0, K1,... KN -

-
-

+

The key types -

-
-

+

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

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

The arguments to make_map -

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

Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type @@ -146,24 +128,22 @@ 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_map(
     make_pair<int>('X')
   , make_pair<double>("Men"))
 
- + See also
@@ -171,13 +151,6 @@ boost::ref, fusion::pair

-
-

-

[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..aefe0a04 100644 --- a/doc/html/fusion/container/generation/functions/make_set.html +++ b/doc/html/fusion/container/generation/functions/make_set.html @@ -3,10 +3,10 @@ make_set - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,28 +38,25 @@ from one or more values.

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
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 + to FUSION_MAX_SET_SIZE + elements, where FUSION_MAX_SET_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: + FUSION_MAX_SET_SIZE before + including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_SET_SIZE 20
 
- + Parameters
@@ -65,49 +66,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

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 @@ -120,35 +108,26 @@ 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

-
-

-

[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..7ca37d12 100644 --- a/doc/html/fusion/container/generation/functions/make_vector.html +++ b/doc/html/fusion/container/generation/functions/make_vector.html @@ -3,10 +3,10 @@ make_vector - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+ +
+
- + Description

@@ -34,11 +38,10 @@ from one or more values.

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
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);
 
@@ -50,11 +53,10 @@ 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
@@ -64,49 +66,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

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 @@ -115,22 +104,20 @@ 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
diff --git a/doc/html/fusion/container/generation/functions/map_tie.html b/doc/html/fusion/container/generation/functions/map_tie.html index 87173dfa..f8c12d8e 100644 --- a/doc/html/fusion/container/generation/functions/map_tie.html +++ b/doc/html/fusion/container/generation/functions/map_tie.html @@ -3,10 +3,10 @@ map_tie - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Constructs a tie using a map sequence.

- + 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>
 map<pair<K0, D0&>, pair<K1, D1&>,... pair<KN, DN&> >
 map_tie(D0& d0, D1& d1... DN& dN);
 
@@ -49,11 +52,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
@@ -63,71 +65,52 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

K0, K1,... KN -

-
-

+

Any type -

-
-

+

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

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

The arguments to map_tie -

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

Return type: map<pair<K0, D0&>, pair<K1, @@ -138,19 +121,17 @@ 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..efb3d5b5 100644
--- a/doc/html/fusion/container/generation/functions/tiers.html
+++ b/doc/html/fusion/container/generation/functions/tiers.html
@@ -3,10 +3,10 @@
 
 Tiers
 
-
-
+
+
 
-
+
 
 
 
@@ -23,8 +23,12 @@
 PrevUpHomeNext
 
- +
+
+Tiers +
+
+

Tiers are sequences, where all elements are non-const reference types. They are constructed with a call to a couple of tie @@ -39,8 +43,7 @@

Example:

-
-int i; char c; double d;
+
int i; char c; double d;
   ...
 vector_tie(i, c, a);
 
@@ -49,15 +52,14 @@ 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] + [9] .

A tie can be used to 'unpack' another tuple into variables. E.g.:

-
-int i; char c; double d;
+
int i; char c; double d;
 vector_tie(i, c, d) = make_vector(1,'a', 5.5);
 std::cout << i << " " <<  c << " " << d;
 
@@ -67,7 +69,7 @@ when calling functions which return sequences.

- + Ignore

@@ -76,13 +78,12 @@ may return a sequence, only part of which you are interested in. For example:

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


-

[11] +

[9] see Boost.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..5470bec7 100644 --- a/doc/html/fusion/container/generation/functions/vector_tie.html +++ b/doc/html/fusion/container/generation/functions/vector_tie.html @@ -3,10 +3,10 @@ vector_tie - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Constructs a tie using a vector sequence.

- + Synopsis
-
-template <typename T0, typename T1,... typename TN>
+
template <typename T0, typename T1,... typename TN>
 vector<T0&, T1&,... TN&>
 vector_tie(T0& x0, T1& x1... TN& xN);
 
@@ -49,11 +52,10 @@ 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
@@ -63,49 +65,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

x0, x1,... xN -

-
-

+

Instances of T0, T1,... TN -

-
-

+

The arguments to vector_tie -

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

Return type: vector<T0&, T1&,... @@ -115,19 +104,17 @@ 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..07cf1cd7 100644 --- a/doc/html/fusion/container/generation/metafunctions.html +++ b/doc/html/fusion/container/generation/metafunctions.html @@ -3,10 +3,10 @@ MetaFunctions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
make_list
make_cons
diff --git a/doc/html/fusion/container/generation/metafunctions/list_tie.html b/doc/html/fusion/container/generation/metafunctions/list_tie.html index 9ee4acfc..3f90f937 100644 --- a/doc/html/fusion/container/generation/metafunctions/list_tie.html +++ b/doc/html/fusion/container/generation/metafunctions/list_tie.html @@ -3,10 +3,10 @@ list_tie - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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;
 

@@ -48,11 +51,10 @@ 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
@@ -62,49 +64,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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&,... @@ -114,19 +103,17 @@ 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..5f148559 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_cons.html +++ b/doc/html/fusion/container/generation/metafunctions/make_cons.html @@ -3,10 +3,10 @@ make_cons - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
- +
+ +
+
- + Description

Returns the result type of make_cons.

- + Synopsis
-
-template <typename Car, typename Cdr = nil>
+
template <typename Car, typename Cdr = nil>
 struct make_cons;
 
- + Parameters
@@ -51,66 +54,47 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

Car -

-
-

+

Any type -

-
-

+

The list's head type -

-
-

+

Cdr -

-
-

+

A cons -

-
-

+

The list's tail type (optional) -

-
- + Expression Semantics
-
-result_of::make_cons<Car, Cdr>::type
+
result_of::make_cons<Car, Cdr>::type
 

Return type: A cons with head element, Car, of type converted following the @@ -123,19 +107,17 @@ (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..5f484f08 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_list.html +++ b/doc/html/fusion/container/generation/metafunctions/make_list.html @@ -3,10 +3,10 @@ make_list - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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;
 

@@ -48,11 +51,10 @@ 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
@@ -62,49 +64,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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 @@ -115,19 +104,17 @@ 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..0e24befd 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_map.html +++ b/doc/html/fusion/container/generation/metafunctions/make_map.html @@ -3,10 +3,10 @@ make_map - - + + - + @@ -23,39 +23,40 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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 + 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_VECTOR_SIZE - before including any Fusion header to change the default. Example: + FUSION_MAX_MAP_SIZE before + including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_MAP_SIZE 20
 
- + Parameters
@@ -65,70 +66,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

K0, K1,... KN -

-
-

+

Any type -

-
-

+

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

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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

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

Return type: result_of::make_map<K0, K0,... KN, T0, T1,... TN>::type @@ -143,35 +125,26 @@ 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

-
-

-

[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..83e3fe26 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_set.html +++ b/doc/html/fusion/container/generation/metafunctions/make_set.html @@ -3,10 +3,10 @@ make_set - - + + - + @@ -23,37 +23,38 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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 + to FUSION_MAX_SET_SIZE + elements, where FUSION_MAX_SET_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: + FUSION_MAX_SET_SIZE before + including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_SET_SIZE 20
 
- + Parameters
@@ -63,49 +64,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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 @@ -120,27 +108,18 @@ 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 -

-
diff --git a/doc/html/fusion/container/generation/metafunctions/make_vector.html b/doc/html/fusion/container/generation/metafunctions/make_vector.html index a03c568b..ac90cb3d 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_vector.html +++ b/doc/html/fusion/container/generation/metafunctions/make_vector.html @@ -3,10 +3,10 @@ make_vector - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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;
 

@@ -48,11 +51,10 @@ 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
@@ -62,49 +64,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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 @@ -115,19 +104,17 @@ 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..a259aa7e 100644 --- a/doc/html/fusion/container/generation/metafunctions/map_tie.html +++ b/doc/html/fusion/container/generation/metafunctions/map_tie.html @@ -3,10 +3,10 @@ map_tie - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
- +
+ +
+
- + Description

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;
 

@@ -48,11 +51,10 @@ 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
@@ -62,70 +64,51 @@ - - + - + +

- - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

K0, K1,... KN -

-
-

+

Any type -

-
-

+

The key types for map_tie -

-
-

+

D0, D1,... DN -

-
-

+

Any type -

-
-

+

The arguments types for map_tie -

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

Return type: map<pair<K0, D0&>, pair<K1, @@ -136,19 +119,17 @@ 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..a4a90a45 100644
--- a/doc/html/fusion/container/generation/metafunctions/vector_tie.html
+++ b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
@@ -3,10 +3,10 @@
 
 vector_tie
 
-
-
+
+
 
-
+
 
 
 
@@ -23,21 +23,24 @@
 PrevUpHomeNext
 
 
- +
+ +
+
- + Description

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;
 

@@ -48,11 +51,10 @@ 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
@@ -62,49 +64,36 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Requirement -

-
-

+

Description -

-
-

+

T0, T1,... TN -

-
-

+

Any type -

-
-

+

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&,... @@ -114,19 +103,17 @@ 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..60631008 100644 --- a/doc/html/fusion/container/list.html +++ b/doc/html/fusion/container/list.html @@ -3,10 +3,10 @@ list - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+

+list +

+
+

- + Description

@@ -38,21 +42,19 @@ 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
@@ -68,18 +70,16 @@
         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 before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_LIST_SIZE 20
+
#define FUSION_MAX_LIST_SIZE 20
 

- + Template parameters

@@ -89,42 +89,30 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Description -

-
-

+

Default -

-
-

+

T0...TN -

-
-

+

Element types -

-
-

+

unspecified-type -

-

- + Model of

  • - + Expression Semantics

    @@ -172,89 +160,65 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    L() -

    - - -

    +

    +

    Creates a list with default constructed elements. -

    - +

    - -

    +

    L(e0, e1,... en) -

    - - -

    +

    +

    Creates a list with elements e0...en. -

    - +

    - -

    +

    L(s) -

    - - -

    +

    +

    Copy constructs a list from a Forward Sequence, s. -

    - +

    - -

    +

    l = s -

    - - -

    +

    +

    Assigns to a list, l, from a Forward Sequence, s. -

    - +

    - -

    +

    at<N>(l) -

    - - -

    +

    +

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

    - +

-

-map

+
+

+map +

+
+

- + Description

@@ -40,21 +44,19 @@ (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
@@ -70,18 +72,16 @@
         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 before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_MAP_SIZE 20
+
#define FUSION_MAX_MAP_SIZE 20
 

- + Template parameters

@@ -91,42 +91,30 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Description -

-
-

+

Default -

-
-

+

T0...TN -

-
-

+

Element types -

-
-

+

unspecified-type -

-

- + Model of

    @@ -159,7 +147,7 @@

- + Expression Semantics

@@ -176,81 +164,60 @@ - -

+

Expression -

- - -

+

+

Semantics -

- +

- -

+

M() -

- - -

+

+

Creates a map with default constructed elements. -

- +

- -

+

M(e0, e1,... en) -

- - -

+

+

Creates a map with element pairs e0...en. -

- +

- -

+

M(s) -

- - -

+

+

Copy constructs a map from a Forward Sequence s. -

- +

- -

+

m = s -

- - -

+

+

Assigns to a map, m, from a Forward Sequence s. -

- +

- + Example

-
-typedef map<
+
typedef map<
     pair<int, char>
   , pair<double, std::string> >
 map_type;
diff --git a/doc/html/fusion/container/set.html b/doc/html/fusion/container/set.html
index 61fba0c4..127f5ae6 100644
--- a/doc/html/fusion/container/set.html
+++ b/doc/html/fusion/container/set.html
@@ -3,10 +3,10 @@
 
 set
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
 
-

-set

+
+

+set +

+
+

- + Description

@@ -39,21 +43,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
@@ -69,18 +71,16 @@
         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 before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_SET_SIZE 20
+
#define FUSION_MAX_SET_SIZE 20
 

- + Template parameters

@@ -90,42 +90,30 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Description -

-
-

+

Default -

-
-

+

T0...TN -

-
-

+

Element types -

-
-

+

unspecified-type -

-

- + Model of

    @@ -158,7 +146,7 @@

- + Expression Semantics

@@ -175,81 +163,60 @@ - -

+

Expression -

- - -

+

+

Semantics -

- +

- -

+

S() -

- - -

+

+

Creates a set with default constructed elements. -

- +

- -

+

S(e0, e1,... en) -

- - -

+

+

Creates a set with elements e0...en. -

- +

- -

+

S(fs) -

- - -

+

+

Copy constructs a set from a Forward Sequence fs. -

- +

- -

+

s = fs -

- - -

+

+

Assigns to a set, s, from a Forward Sequence fs. -

- +

- + Example

-
-typedef set<int, float> S;
+
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;
diff --git a/doc/html/fusion/container/vector.html b/doc/html/fusion/container/vector.html
index b4ab929d..c0c1359a 100644
--- a/doc/html/fusion/container/vector.html
+++ b/doc/html/fusion/container/vector.html
@@ -3,10 +3,10 @@
 
 vector
 
-
-
+
+
 
-
+
 
 
 
@@ -23,10 +23,14 @@
 PrevUpHomeNext
 
 
- +
+

+vector +

+
+

- + Description

@@ -39,11 +43,10 @@ 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 +64,13 @@
 #include <boost/fusion/include/vector50.hpp>
 

- + Synopsis

Numbered forms

-
-template <>
-struct vector0;
+
struct vector0;
 
 template <typename T0>
 struct vector1;
@@ -88,8 +89,7 @@
 

Variadic form

-
-template <
+
template <
     typename T0 = unspecified
   , typename T1 = unspecified
   , typename T2 = unspecified
@@ -101,8 +101,7 @@
 

The numbered form accepts the exact number of elements. Example:

-
-vector3<int, char, double>
+
vector3<int, char, double>
 

The variadic form accepts 0 to @@ -111,18 +110,16 @@ 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 before including any Fusion header to change the default. Example:

-
-#define FUSION_MAX_VECTOR_SIZE 20
+
#define FUSION_MAX_VECTOR_SIZE 20
 

- + Template parameters

@@ -132,42 +129,30 @@ - - + - + +

- - + - + +

-

+

Parameter -

-
-

+

Description -

-
-

+

Default -

-
-

+

T0...TN -

-
-

+

Element types -

-
-

+

unspecified -

-

- + Model of

  • - + Expression Semantics

    @@ -211,81 +196,60 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    V() -

    - - -

    +

    +

    Creates a vector with default constructed elements. -

    - +

    - -

    +

    V(e0, e1,... en) -

    - - -

    +

    +

    Creates a vector with elements e0...en. -

    - +

    - -

    +

    V(s) -

    - - -

    +

    +

    Copy constructs a vector from a Forward Sequence, s. -

    - +

    - -

    +

    v = s -

    - - -

    +

    +

    Assigns to a vector, v, from a Forward Sequence, s. -

    - +

- + Example

-
-vector<int, float> v(12, 5.5f);
+
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..d8b91114 100644 --- a/doc/html/fusion/extension.html +++ b/doc/html/fusion/extension.html @@ -3,10 +3,10 @@ Extension - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +
+ +
+
The Full Extension Mechanism
Sequence Facade
diff --git a/doc/html/fusion/extension/ext_full.html b/doc/html/fusion/extension/ext_full.html index 879138c3..53fe4bc8 100644 --- a/doc/html/fusion/extension/ext_full.html +++ b/doc/html/fusion/extension/ext_full.html @@ -3,10 +3,10 @@ The Full Extension Mechanism - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
- +

The Fusion library is designed to be extensible, new sequences types can easily be added. In fact, the library support for std::pair, @@ -48,15 +52,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
     {
@@ -80,7 +83,7 @@
         Start guide.
       

- + Enabling Tag Dispatching

@@ -90,8 +93,7 @@ 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
 }
 
@@ -101,8 +103,7 @@ 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 {
@@ -119,12 +120,11 @@
         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

@@ -138,8 +138,7 @@ 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> >
 {
@@ -187,7 +186,7 @@
         clearer as we add features to our implementation.
       

- + A first couple of instructive features

@@ -196,8 +195,7 @@ 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>
@@ -225,8 +223,7 @@
         To understand how value_of_impl
         is used by the library we will look at the implementation of value_of:
       

-
-template <typename Iterator>
+
template <typename Iterator>
 struct value_of
     : extension::value_of_impl<typename detail::tag_of<Iterator>::type>::
         template apply<Iterator>
@@ -243,8 +240,7 @@
         Ok, lets enable dereferencing of our iterator. In this case we must provide
         a suitable specialization of deref_impl.
       

-
-template<>
+
template<>
 struct deref_impl<example::example_struct_iterator_tag>
 {
     template<typename Iterator>
@@ -285,8 +281,7 @@
         deref_impl is used, lets
         have a look at the implementation of deref:
       

-
-namespace result_of
+
namespace result_of
 {
     template <typename Iterator>
     struct deref
@@ -331,7 +326,7 @@
         

- + Implementing the remaining iterator functionality

@@ -340,8 +335,7 @@ work in pretty much the same way. Lets start with forward iteration, by providing a next_impl:

-
-template<>
+
template<>
 struct next_impl<example::example_struct_iterator_tag>
 {
     template<typename Iterator>
@@ -386,7 +380,7 @@
         are provided in the example code.
       

- + Implementing the intrinsic functions of the sequence

@@ -396,8 +390,7 @@ 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>
@@ -415,8 +408,7 @@
         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>
@@ -445,7 +437,7 @@
         value_at_impl and at_impl.
       

- + Enabling our type as an associative container

@@ -464,8 +456,7 @@ 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>
@@ -513,7 +504,7 @@
         of is_associative_impl.
       

- + Summary

diff --git a/doc/html/fusion/extension/iterator_facade.html b/doc/html/fusion/extension/iterator_facade.html index ce1c74f7..446b94d2 100644 --- a/doc/html/fusion/extension/iterator_facade.html +++ b/doc/html/fusion/extension/iterator_facade.html @@ -3,10 +3,10 @@ Iterator Facade - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +
+ +
+

- + Description

@@ -35,15 +39,14 @@ iterator.

- + Synopsis

-
-template<typename Derived, typename TravesalTag>
+
template<typename Derived, typename TravesalTag>
 struct iterator_facade;
 

- + Usage

@@ -57,56 +60,44 @@ type.

-

Table 1.93. Parameters

+

Table 1.93. Parameters

- - + +

- - + +

- - + +

-

+

Name -

-
-

+

Description -

-
-

+

iterator, It, It1, It2 -

-
-

+

A type derived from iterator_facade -

-
-

+

N -

-
-

+

An MPL Integral Constant -

-
-

Table 1.94. Key Expressions

+

Table 1.94. Key Expressions

@@ -114,266 +105,181 @@ - - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

- - + - + +

-

+

Expression -

-
-

+

Result -

-
-

+

Default -

-
-

+

iterator::template value_of<It>::type -

-
-

+

The element stored at iterator position It -

-
-

+

None -

-
-

+

iterator::template deref<It>::type -

-
-

+

The type returned when dereferencing an iterator of type It -

-
-

+

None -

-
-

+

iterator::template deref<It>::call(it) -

-
-

+

Dereferences iterator it -

-
-

+

None -

-
-

+

iterator::template next<It>::type -

-
-

+

The type of the next element from It -

-
-

+

None -

-
-

+

iterator::template next<It>::call(it) -

-
-

+

The next iterator after it -

-
-

+

None -

-
-

+

iterator::template prior<It>::type -

-
-

+

The type of the next element from It -

-
-

+

None -

-
-

+

iterator::template prior<It>::call(it) -

-
-

+

The next iterator after it -

-
-

+

None -

-
-

+

iterator::template advance<It, N>::type -

-
-

+

The type of an iterator advanced N elements from It -

-
-

+

Implemented in terms of next and prior -

-
-

+

iterator::template advance<It, N>::call(it) -

-
-

+

An iterator advanced N elements from it -

-
-

+

Implemented in terms of next and prior -

-
-

+

iterator::template distance<It1, It2>::type -

-
-

+

The distance between iterators of type It1 and It2 as an MPL Integral Constant -

-
-

+

None -

-
-

+

iterator::template distance<It1, It2>::call(it1, it2) -

-
-

+

The distance between iterator it1 and it2 -

-
-

+

None -

-
-

+

iterator::template equal_to<It1, It2>::type -

-
-

+

The distance between iterators of type It1 and It2 -

-
-

+

boost::same_type<It1, It2>::type -

-
-

+

iterator::template equal_to<It1, It2>::call(it1, it2) -

-
-

+

The distance between iterators it1 and it2 -

-
-

+

boost::same_type<It1, It2>::type() -

-

- + Header

-
-#include <boost/fusion/iterator/iterator_facade.hpp>
+
#include <boost/fusion/iterator/iterator_facade.hpp>
 #include <boost/fusion/include/iterator_facade.hpp>
 

- + Example

diff --git a/doc/html/fusion/extension/sequence_facade.html b/doc/html/fusion/extension/sequence_facade.html index 23a08090..5ff15c19 100644 --- a/doc/html/fusion/extension/sequence_facade.html +++ b/doc/html/fusion/extension/sequence_facade.html @@ -3,10 +3,10 @@ Sequence Facade - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext

- +
+ +
+

- + Description

@@ -35,15 +39,14 @@ iterator.

- + Synopsis

-
-template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
+
template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
 struct sequence_facade;
 

- + Usage

@@ -59,199 +62,146 @@ type.

-

Table 1.91. Parameters

+

Table 1.91. Parameters

- - + +

- - + +

- - + +

-

+

Name -

-
-

+

Description -

-
-

+

sequence, Seq -

-
-

+

A type derived from sequence_facade -

-
-

+

N -

-
-

+

An MPL Integral Constant -

-
-

Table 1.92. Key Expressions

+

Table 1.92. Key Expressions

- - + +

- - + +

- - + +

- - + +

- - + +

- - + +

- - + +

- - + +

- - + +

- - + +

-

+

Expression -

-
-

+

Result -

-
-

+

sequence::template begin<Seq>::type -

-
-

+

The type of an iterator to the beginning of a sequence of type Seq -

-
-

+

sequence::template begin<Seq>::call(seq) -

-
-

+

An iterator to the beginning of sequence seq -

-
-

+

sequence::template end<Seq>::type -

-
-

+

The type of an iterator to the end of a sequence of type Seq -

-
-

+

sequence::template end<Seq>::call(seq) -

-
-

+

An iterator to the end of sequence seq -

-
-

+

sequence::template size<Seq>::type -

-
-

+

The size of a sequence of type Seq as an MPL Integral Constant -

-
-

+

sequence::template size<Seq>::call(seq) -

-
-

+

The size of sequence seq -

-
-

+

sequence::template at<Seq, N>::type -

-
-

+

The type of element N in a sequence of type Seq -

-
-

+

sequence::template at<Seq, N>::call(seq) -

-
-

+

Element N in sequence seq -

-
-

+

sequence::template value_at<Sequence, N>::type -

-
-

+

The type of the 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

diff --git a/doc/html/fusion/functional.html b/doc/html/fusion/functional.html index d5ad9ee6..b0acb353 100644 --- a/doc/html/fusion/functional.html +++ b/doc/html/fusion/functional.html @@ -3,10 +3,10 @@ Functional - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

- +
+ +
+
Concepts
@@ -40,16 +44,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,19 +65,21 @@ 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. @@ -83,15 +89,13 @@ 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 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 @@ -102,7 +106,7 @@ form of f'.

- + Calling functions and function objects

@@ -129,8 +133,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 +148,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..c6fb7deb 100644 --- a/doc/html/fusion/functional/adapters.html +++ b/doc/html/fusion/functional/adapters.html @@ -3,11 +3,10 @@ Adapters - - + + - + @@ -21,19 +20,22 @@

-PrevUpHomeNext +PrevUpHomeNext
- +
+ +
+

Function object templates to transform a particular target function. @@ -50,7 +52,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html index 53e548d3..5bd93940 100644 --- a/doc/html/fusion/functional/adapters/fused.html +++ b/doc/html/fusion/functional/adapters/fused.html @@ -3,10 +3,10 @@ fused - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
- +
+

+fused +

+
+
- + Description

@@ -55,19 +59,21 @@ be defined (Boost provides this function for std::auto_ptr and boost::shared_ptr).

-

- /functional/adapter/fused.hpp> -

+
+ + Header +
+
#include <boost/fusion/functional/adapter/fused.hpp>
+
- + Synopsis
-
-template <typename Function>
+
template <typename Function>
 class fused;
 
- + Template parameters
@@ -78,43 +84,31 @@ - -

+

Parameter -

- - -

+

+

Description -

- - -

+

+

Default -

- +

- -

+

Function -

- - -

+

+

A Deferred Callable Object -

- - -

-

- +

+

+

- + Model of
    @@ -150,7 +144,7 @@
- + Expression Semantics
@@ -160,75 +154,60 @@ - -

+

Expression -

- - -

+

+

Semantics -

- +

- -

+

fused<R>(r) -

- - -

+

+

Creates a fused function as described above, initializes the target function with r. -

- +

- -

+

fused<R>() -

- - -

+

+

Creates a fused function as described above, attempts to use R's default constructor. -

- +

- -

+

f(s) -

- - -

+

+

Calls r with the elements in s as its arguments. -

- +

- + Example
-
-fused< std::plus<long> > f;
+
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..36475302 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,17 @@

-PrevUpHomeNext +PrevUpHomeNext
- +
- + Description

@@ -45,19 +49,21 @@ 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
@@ -68,43 +74,31 @@ - -

+

Parameter -

- - -

+

+

Description -

- - -

+

+

Default -

- +

- -

+

Function -

- - -

+

+

Polymorphic Function Object type -

- - -

-

- +

+

+

- + Model of
@@ -141,7 +135,7 @@
- + Expression Semantics
@@ -151,65 +145,48 @@ - -

+

Expression -

- - -

+

+

Semantics -

- +

- -

+

fused_function_object<R>(r) -

- - -

+

+

Creates a fused function as described above, initializes the target function with r. -

- +

- -

+

fused_function_object<R>() -

- - -

+

+

Creates a fused function as described above, attempts to use R's default constructor. -

- +

- -

+

f(s) -

- - -

+

+

Calls r with the elements in s as its arguments. -

- +

- + Example
-
-template<class SeqOfSeqs, class Func>
+
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)
@@ -243,7 +220,7 @@
 }
 
- + See also
@@ -252,6 +229,8 @@
  • fused_procedure
  • invoke_function_object
  • +
  • make_fused_function_object
  • deduce
  • @@ -266,7 +245,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..4f3cf8e8 100644 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -3,10 +3,10 @@ fused_procedure - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +
    - + Description

    @@ -62,19 +66,21 @@ 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
    @@ -85,42 +91,30 @@ - -

    +

    Parameter -

    - - -

    +

    +

    Description -

    - - -

    +

    +

    Default -

    - +

    - -

    +

    Function -

    - - -

    +

    +

    Callable Object type -

    - - -

    -

    - +

    +

    +

    - + Model of
    @@ -156,7 +150,7 @@
    - + Expression Semantics
    @@ -166,65 +160,48 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    fused_procedure<R>(r) -

    - - -

    +

    +

    Creates a fused function as described above, initializes the target function with r. -

    - +

    - -

    +

    fused_procedure<R>() -

    - - -

    +

    +

    Creates a fused function as described above, attempts to use R's default constructor. -

    - +

    - -

    +

    f(s) -

    - - -

    +

    +

    Calls r with the elements in s as its arguments. -

    - +

    - + Example
    -
    -template<class SequenceOfSequences, class Func>
    +
    template<class SequenceOfSequences, class Func>
     void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
     {
         for_each(zip_view<SequenceOfSequences>(s),
    @@ -241,7 +218,7 @@
     }
     
    - + See also
    @@ -250,6 +227,8 @@
  • fused_function_object
  • invoke_procedure
  • +
  • make_fused_procedure
  • diff --git a/doc/html/fusion/functional/adapters/limits.html b/doc/html/fusion/functional/adapters/limits.html new file mode 100644 index 00000000..bfab6bae --- /dev/null +++ b/doc/html/fusion/functional/adapters/limits.html @@ -0,0 +1,70 @@ + + + +Limits + + + + + + + + +
    + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +

    +Limits +

    +
    +
    +
    + + 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..327c5f0c --- /dev/null +++ b/doc/html/fusion/functional/adapters/unfused.html @@ -0,0 +1,265 @@ + + + +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_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html index 41608679..c190d5b4 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,17 @@

    -PrevUpHomeNext +PrevUpHomeNext
    - +
    + +
    +
    - + Description

    @@ -51,29 +55,31 @@ object is held by value, the adapter is const).

    -

    - /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
    @@ -84,61 +90,43 @@ - -

    +

    Parameter -

    - - -

    +

    +

    Description -

    - - -

    +

    +

    Default -

    - +

    - -

    +

    Function -

    - - -

    +

    +

    A unary Polymorphic Function Object -

    - - -

    -

    - +

    +

    +

    - -

    +

    Sequence -

    - - -

    +

    +

    A Sequence -

    - - -

    -

    - +

    +

    +

    - + Model of
    @@ -184,7 +172,7 @@
    - + Expression Semantics
    @@ -194,67 +182,50 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    UT(f) -

    - - -

    +

    +

    Creates a fused function as described above, initializes the target function with f. -

    - +

    - -

    +

    UT() -

    - - -

    +

    +

    Creates a fused function as described above, attempts to use F's default constructor. -

    - +

    - -

    +

    ut(a0...aN) -

    - - -

    +

    +

    Calls f with an instance of S (or a subsequence of S starting at the first element, if fewer arguments are given and the overload hasn't been disabled) initialized with a0...aN. -

    - +

    - + Example
    -
    -struct add_assign // applies operator+=
    +
    struct add_assign // applies operator+=
     {
         typedef void result_type; // for simplicity
     
    @@ -305,7 +276,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,13 +290,11 @@
     }
     
    - + See also
    @@ -341,7 +310,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/concepts.html b/doc/html/fusion/functional/concepts.html index b6ddb1b3..2fcb5288 100644 --- a/doc/html/fusion/functional/concepts.html +++ b/doc/html/fusion/functional/concepts.html @@ -3,10 +3,10 @@ Concepts - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +
    - +
    - + Description

    @@ -36,7 +40,7 @@ of a function call operator.

    - + Models
      @@ -51,11 +55,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
    diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html
    index 47e13671..c32f67af 100644
    --- a/doc/html/fusion/functional/concepts/def_callable.html
    +++ b/doc/html/fusion/functional/concepts/def_callable.html
    @@ -4,10 +4,10 @@
      Deferred
             Callable Object
     
    -
    -
    +
    +
     
    -
     
    @@ -26,12 +26,16 @@
     PrevUpHomeNext
     
    -

    + + Callable Object +

    +
    +
    - + Description

    @@ -40,7 +44,7 @@ to determine the result of a call.

    - + Refinement of
    @@ -81,7 +85,7 @@
    - + Expression requirements
    @@ -91,35 +95,27 @@ - -

    +

    Expression -

    - - -

    +

    +

    Type -

    - +

    - -

    +

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

    - - -

    +

    +

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

    - +

    - + Models
      @@ -133,11 +129,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
    diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html
    index e8329338..f09578a5 100644
    --- a/doc/html/fusion/functional/concepts/poly.html
    +++ b/doc/html/fusion/functional/concepts/poly.html
    @@ -4,10 +4,10 @@
      Polymorphic Function
             Object
     
    -
    -
    +
    +
     
    -
     
     
    @@ -25,12 +25,16 @@
     PrevUpHomeNext
     
     
    -
    - + Description

    @@ -39,7 +43,7 @@ Callable Object type.

    - + Refinement of
    @@ -83,7 +87,7 @@
    - + Expression requirements
    @@ -94,45 +98,33 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return Type -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    f(a1, ...aN) -

    - - -

    +

    +

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

    - - -

    +

    +

    Unspecified -

    - +

    - + Models
      @@ -147,11 +139,10 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     std::less<int>()
     // using namespace boost;
    diff --git a/doc/html/fusion/functional/concepts/reg_callable.html b/doc/html/fusion/functional/concepts/reg_callable.html
    index 2728c32d..6836380c 100644
    --- a/doc/html/fusion/functional/concepts/reg_callable.html
    +++ b/doc/html/fusion/functional/concepts/reg_callable.html
    @@ -4,10 +4,10 @@
      Regular Callable
             Object
     
    -
    -
    +
    +
     
    -
    +
     
     
    @@ -25,12 +25,16 @@
     PrevUpHomeNext
     
     
    -
    +
    +
    - + Description

    @@ -39,7 +43,7 @@ can appear immediately to the left of a function call operator.

    - + Refinement of
    @@ -69,7 +73,7 @@
    - + Expression requirements
    @@ -80,43 +84,31 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return Type -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    f(a1, ...aN) -

    - - -

    +

    +

    Unspecified -

    - - -

    +

    +

    Unspecified -

    - +

    - + Models
      @@ -128,11 +120,10 @@
    - + Examples
    -
    -& a_free_function
    +
    & a_free_function
     & a_class::a_static_member_function
     std::less<int>()
     // using namespace boost;
    diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html
    index 4620cf2c..3a5eade9 100644
    --- a/doc/html/fusion/functional/generation.html
    +++ b/doc/html/fusion/functional/generation.html
    @@ -3,10 +3,10 @@
     
     Generation
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -20,11 +20,15 @@
     
     
    -PrevUpHomeNext +PrevUpHomeNext
    - +
    + +
    +
    Functions
    Metafunctions
    @@ -41,7 +45,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html index c9603fba..7894f6a7 100644 --- a/doc/html/fusion/functional/generation/functions.html +++ b/doc/html/fusion/functional/generation/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -24,8 +24,12 @@ PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused.html b/doc/html/fusion/functional/generation/functions/mk_fused.html index c210e657..5d8f1d2b 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused.html @@ -4,10 +4,10 @@ make_fused - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -
    + + make_fused +
    +
    +
    - + Description

    @@ -40,17 +44,16 @@ conversion is applied to the target function.

    - + Synopsis
    -
    -template <typename F>
    +
    template <typename F>
     inline typename make_fused<F>::type
     make_fused(F const & f);
     
    - + Parameters
    @@ -60,49 +63,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    Model of Deferred Callable Object -

    -
    -

    +

    The function to transform. -

    -
    - + Expression Semantics
    -
    -make_fused(f);
    +
    make_fused(f);
     

    Return type: A specialization of fused. @@ -111,19 +101,17 @@ 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()
     {
    @@ -135,7 +123,7 @@
     }
     
    - + 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..90dc7caf 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,15 +23,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -
    + + make_fused_function_object +
    +
    +
    - + Description

    @@ -42,17 +46,16 @@ 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(F const & f);
     
    - + Parameters
    @@ -62,49 +65,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    Model of Polymorphic Function Object -

    -
    -

    +

    The function to transform. -

    -
    - + Expression Semantics
    -
    -make_fused_function_object(f);
    +
    make_fused_function_object(f);
     

    Return type: A specialization of fused_function_object. @@ -114,19 +104,17 @@ 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;
    @@ -151,7 +139,7 @@
     }
     
    - + See also
    @@ -173,7 +161,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..f9bebfa7 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html @@ -4,10 +4,10 @@ make_fused_procedure - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext
    -
    + + make_fused_procedure +
    +
    +
    - + Description

    @@ -42,17 +46,16 @@ conversion applied to the target function.

    - + Synopsis
    -
    -template <typename F>
    +
    template <typename F>
     inline typename make_fused_procedure<F>::type
     make_fused_procedure(F const & f);
     
    - + Parameters
    @@ -62,48 +65,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    Model of Callable Object -

    -
    -

    +

    The function to transform. -

    -
    - + Expression Semantics
    -
    -make_fused_procedure(f);
    +
    make_fused_procedure(f);
     

    Return type: A specialization of fused_procedure. @@ -113,25 +103,23 @@ 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);
     
    - + 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..0298e0f0 --- /dev/null +++ b/doc/html/fusion/functional/generation/functions/mk_unfused.html @@ -0,0 +1,163 @@ + + + + + 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/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html index 5d165479..5e91f690 100644 --- a/doc/html/fusion/functional/generation/metafunctions.html +++ b/doc/html/fusion/functional/generation/metafunctions.html @@ -3,11 +3,11 @@ Metafunctions - - + + - + @@ -22,11 +22,15 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,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..5a994cbb 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html @@ -4,10 +4,10 @@ make_fused - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -
    + + make_fused +
    +
    +
    - + Description

    @@ -38,19 +42,17 @@ 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,7 +62,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html index cc35e263..e32d4534 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,15 +23,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -
    + + make_fused_function_object +
    +
    +
    - + Description

    @@ -39,19 +43,17 @@ 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,7 +63,7 @@
     }
     
    - + See also
    @@ -79,7 +81,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..492b80e5 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html @@ -4,10 +4,10 @@ make_fused_procedure - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext
    -
    + + make_fused_procedure +
    +
    +
    - + Description

    @@ -39,19 +43,17 @@ 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,7 +63,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html b/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html new file mode 100644 index 00000000..2a8e12d3 --- /dev/null +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html @@ -0,0 +1,86 @@ + + + + + make_unfused + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    + +
    +
    +
    + + Description +
    +

    + Returns the result type of make_unfused. +

    +
    + + Header +
    +
    #include <boost/fusion/functional/generation/make_unfused.hpp>
    +#include <boost/fusion/include/make_unfused.hpp>
    +
    +
    + + Synopsis +
    +
    namespace result_of
    +{
    +    template<typename Function>
    +    struct make_unfused
    +    {
    +        typedef unspecified type;
    +    };
    +}
    +
    +
    + + See + also +
    + +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html index d1a29b0a..57b36bfe 100644 --- a/doc/html/fusion/functional/invocation.html +++ b/doc/html/fusion/functional/invocation.html @@ -3,10 +3,10 @@ Invocation - - + + - @@ -24,11 +24,16 @@ PrevUpHomeNext
    diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html index abcc99ac..de44d69e 100644 --- a/doc/html/fusion/functional/invocation/functions.html +++ b/doc/html/fusion/functional/invocation/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    @@ -76,70 +82,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    A Deferred Callable Object -

    -
    -

    +

    The function to call. -

    -
    -

    +

    s -

    -
    -

    +

    A Forward Sequence -

    -
    -

    +

    The arguments. -

    -
    - + Expression Semantics
    -
    -invoke(f,s);
    +
    invoke(f,s);
     

    Return type: Return type of f when invoked with the elements in @@ -150,19 +137,21 @@ 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;
    +
    std::plus<int> add;
     assert(invoke(add,make_vector(1,1)) == 2);
     
    - + See also
    @@ -173,6 +162,8 @@ invoke_function_object">invoke_function_object
  • result_of::invoke
  • fused
  • +
  • make_fused
  • diff --git a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html index a509ae35..25fc420a 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html @@ -4,10 +4,10 @@ invoke_function_object - - + + - @@ -25,12 +25,16 @@ PrevUpHomeNext
    -
    + + invoke_function_object +
    +
    +
    - + Description

    @@ -42,12 +46,14 @@ 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
         >
    @@ -64,7 +70,7 @@
     invoke_function_object(Function f, Sequence const & s);
     
    - + Parameters
    @@ -74,70 +80,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    Model of Polymorphic Function Object -

    -
    -

    +

    The function object to call. -

    -
    -

    +

    s -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The arguments. -

    -
    - + Expression Semantics
    -
    -invoke_function_object(f,s);
    +
    invoke_function_object(f,s);
     

    Return type: Return type of f when invoked with the elements in @@ -148,15 +135,17 @@ 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;
    @@ -179,7 +168,7 @@
     }
     
    - + See also
    @@ -190,6 +179,8 @@
  • result_of::invoke_function_object
  • fused_function_object
  • +
  • make_fused_function_object
  • diff --git a/doc/html/fusion/functional/invocation/functions/invoke_proc.html b/doc/html/fusion/functional/invocation/functions/invoke_proc.html index f969edf9..dd35abd7 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_proc.html @@ -4,10 +4,10 @@ invoke_procedure - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -
    + + invoke_procedure +
    +
    +
    - + Description

    @@ -54,11 +58,10 @@ isn't implemented).

    - + Synopsis
    -
    -template<
    +
    template<
         typename Function,
         class Sequence
         >
    @@ -75,7 +78,7 @@
     invoke_procedure(Function f, Sequence const & s);
     
    - + Parameters
    @@ -85,69 +88,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    f -

    -
    -

    +

    Model of Callable Object -

    -
    -

    +

    The function to call. -

    -
    -

    +

    s -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The arguments. -

    -
    - + Expression Semantics
    -
    -invoke_procedure(f,s);
    +
    invoke_procedure(f,s);
     

    Return type: void @@ -157,21 +141,23 @@ 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);
     
    - + See also
    @@ -182,6 +168,8 @@
  • result_of::invoke_procedure
  • fused_procedure
  • +
  • make_fused_procedure
  • diff --git a/doc/html/fusion/functional/invocation/limits.html b/doc/html/fusion/functional/invocation/limits.html new file mode 100644 index 00000000..b07fc1af --- /dev/null +++ b/doc/html/fusion/functional/invocation/limits.html @@ -0,0 +1,73 @@ + + + +Limits + + + + + + + + +
    + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +

    +Limits +

    +
    +
    +
    + + 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..7ad8bfe2 100644 --- a/doc/html/fusion/functional/invocation/metafunctions.html +++ b/doc/html/fusion/functional/invocation/metafunctions.html @@ -3,10 +3,10 @@ Metafunctions - - + + - @@ -24,8 +24,12 @@ PrevUpHomeNext
    - +
    + +
    +
    - +
    +
    +invoke +
    +
    +
    - + Description

    Returns the result type of invoke.

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             typename Function,
    @@ -51,7 +54,7 @@
     }
     
    - + 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..521c1442 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,15 +22,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -
    + + invoke_function_object +
    +
    +
    - + Description

    @@ -38,11 +42,10 @@ invoke_function_object">invoke_function_object.

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             class Function,
    @@ -55,7 +58,7 @@
     }
     
    - + See also
    @@ -76,7 +79,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..31143059 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html @@ -4,10 +4,10 @@ invoke_procedure - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -
    + + invoke_procedure +
    +
    +
    - + Description

    @@ -38,11 +42,10 @@ invoke_procedure">invoke_procedure.

    - + Synopsis
    -
    -namespace result_of
    +
    namespace result_of
     {
         template<
             typename Function,
    @@ -55,7 +58,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html index 6587ef11..1cb677ef 100644 --- a/doc/html/fusion/introduction.html +++ b/doc/html/fusion/introduction.html @@ -3,10 +3,10 @@ Introduction - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +

    An advantage other languages such as Python and Lisp/ Scheme, ML and Haskell, etc., over C++ is the ability to have heterogeneous containers that can hold @@ -116,7 +120,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 +135,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..384fd8c6 100644 --- a/doc/html/fusion/iterator.html +++ b/doc/html/fusion/iterator.html @@ -3,10 +3,10 @@ Iterator - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

    - +
    + +
    +
    Concepts
    @@ -74,11 +78,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..f128002f 100644 --- a/doc/html/fusion/iterator/concepts.html +++ b/doc/html/fusion/iterator/concepts.html @@ -3,10 +3,10 @@ Concepts - - + + - + @@ -24,8 +24,12 @@ PrevUpHomeNext
    - +
    + +
    +
    Forward Iterator
    diff --git a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html index 88c318b3..0ce19ebc 100644 --- a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html +++ b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html @@ -4,10 +4,10 @@ Bidirectional Iterator - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext
    -

    + + Iterator +

    +
    +
    - + Description

    @@ -61,7 +65,7 @@

    - + Refinement of
    @@ -70,7 +74,7 @@ Iterator">Forward Iterator

    - + Expression requirements
    @@ -86,103 +90,73 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    next(i) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    prior(i) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance_c<N>(i) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance<M>(i) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    +

    +

    Constant -

    - +

    - + Meta Expressions
    @@ -192,32 +166,24 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

    result_of::prior<I>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -233,32 +199,24 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    prior(i) -

    - - -

    +

    +

    An iterator to the element preceding i -

    - +

    - + Invariants

    @@ -275,7 +233,7 @@

    - + Models
      diff --git a/doc/html/fusion/iterator/concepts/forward_iterator.html b/doc/html/fusion/iterator/concepts/forward_iterator.html index 54fa0077..0edff7c2 100644 --- a/doc/html/fusion/iterator/concepts/forward_iterator.html +++ b/doc/html/fusion/iterator/concepts/forward_iterator.html @@ -4,10 +4,10 @@ Forward Iterator - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -

    + + Iterator +

    +
    +
    - + Description

    @@ -63,7 +67,7 @@

    - + Expression requirements
    @@ -78,173 +82,119 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    next(i) -

    - - -

    +

    +

    Forward Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    i == j -

    - - -

    +

    +

    Convertible to bool -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    i != j -

    - - -

    +

    +

    Convertible to bool -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance_c<N>(i) -

    - - -

    +

    +

    Forward Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance<M>(i) -

    - - -

    +

    +

    Forward Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    distance(i, j) -

    - - -

    +

    +

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

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    deref(i) -

    - - -

    +

    +

    result_of::deref<I>::type -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    *i -

    - - -

    +

    +

    result_of::deref<I>::type -

    - - -

    +

    +

    Constant -

    - +

    - + Meta Expressions
    @@ -254,108 +204,76 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

    result_of::next<I>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Linear -

    - +

    - -

    +

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

    - - -

    +

    +

    Linear -

    - +

    - -

    +

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

    - - -

    +

    +

    Linear -

    - +

    - -

    +

    result_of::deref<I>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::value_of<I>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -365,123 +283,87 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    next(i) -

    - - -

    +

    +

    An iterator to the element following i -

    - +

    - -

    +

    i == j -

    - - -

    +

    +

    Iterator equality comparison -

    - +

    - -

    +

    i != j -

    - - -

    +

    +

    Iterator inequality comparison -

    - +

    - -

    +

    advance_c<N>(i) -

    - - -

    +

    +

    An iterator n elements after i in the sequence -

    - +

    - -

    +

    advance<M>(i) -

    - - -

    +

    +

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

    - +

    - -

    +

    distance(i, j) -

    - - -

    +

    +

    The number of elements between i and j -

    - +

    - -

    +

    deref(i) -

    - - -

    +

    +

    The element at positioni -

    - +

    - -

    +

    *i -

    - - -

    +

    +

    Equivalent to deref(i) -

    - +

    - + Invariants

    @@ -505,7 +387,7 @@

    - + 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..50672836 100644 --- a/doc/html/fusion/iterator/concepts/random_access_iterator.html +++ b/doc/html/fusion/iterator/concepts/random_access_iterator.html @@ -4,10 +4,10 @@ Random Access Iterator - - + + - @@ -25,12 +25,16 @@ PrevUpHomeNext
    -

    + + Access Iterator +

    +
    +
    - + Description

    @@ -63,7 +67,7 @@

    - + Refinement of
    @@ -73,7 +77,7 @@ Iterator

    - + Expression requirements
    @@ -89,103 +93,73 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    next(i) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    prior(i) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance_c<N>(i) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    +

    +

    Constant -

    - +

    - -

    +

    advance<M>(i) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    +

    +

    Constant -

    - +

    - + Meta Expressions
    @@ -195,60 +169,44 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Models
      diff --git a/doc/html/fusion/iterator/functions.html b/doc/html/fusion/iterator/functions.html index 74b52d7f..24eba686 100644 --- a/doc/html/fusion/iterator/functions.html +++ b/doc/html/fusion/iterator/functions.html @@ -3,10 +3,10 @@ Functions - - + + - @@ -24,8 +24,12 @@ PrevUpHomeNext
    - +
    + +
    +
    deref
    next
    diff --git a/doc/html/fusion/iterator/functions/advance.html b/doc/html/fusion/iterator/functions/advance.html index f8beff4d..0d2d2903 100644 --- a/doc/html/fusion/iterator/functions/advance.html +++ b/doc/html/fusion/iterator/functions/advance.html @@ -3,10 +3,10 @@ advance - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    + +
    +
    - + Description

    Moves an iterator by a specified distance.

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

    Table 1.6. Parameters

    +

    Table 1.6. Parameters

    @@ -52,70 +55,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Iterator to move relative to -

    -
    -

    +

    N -

    -
    -

    +

    An MPL Integral Constant -

    -
    -

    +

    Number of positions to move -

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

    Return type: A model of the same iterator @@ -131,19 +115,17 @@ 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<mpl::int_<2> >(begin(v))) == 3);
    diff --git a/doc/html/fusion/iterator/functions/advance_c.html b/doc/html/fusion/iterator/functions/advance_c.html
    index 80782f3f..342eef78 100644
    --- a/doc/html/fusion/iterator/functions/advance_c.html
    +++ b/doc/html/fusion/iterator/functions/advance_c.html
    @@ -3,10 +3,10 @@
     
     advance_c
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,28 +23,31 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + 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);
     
    -

    Table 1.7. Parameters

    +

    Table 1.7. Parameters

    @@ -52,69 +55,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Iterator to move relative to -

    -
    -

    +

    N -

    -
    -

    +

    Integer constant -

    -
    -

    +

    Number of positions to move -

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

    Return type: A model of the same iterator @@ -130,19 +114,17 @@ 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);
    diff --git a/doc/html/fusion/iterator/functions/deref.html b/doc/html/fusion/iterator/functions/deref.html
    index 6e980ce1..0efebf3f 100644
    --- a/doc/html/fusion/iterator/functions/deref.html
    +++ b/doc/html/fusion/iterator/functions/deref.html
    @@ -3,10 +3,10 @@
     
     deref
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,27 +23,30 @@
     PrevUpHomeNext
     
    - +
    +

    +deref +

    +
    +
    - + Description

    Deferences an iterator.

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

    Table 1.2. Parameters

    +

    Table 1.2. Parameters

    @@ -51,50 +54,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: result_of::deref<I>::type @@ -104,19 +94,17 @@ 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);
    diff --git a/doc/html/fusion/iterator/functions/distance.html b/doc/html/fusion/iterator/functions/distance.html
    index eb820046..d02f51a5 100644
    --- a/doc/html/fusion/iterator/functions/distance.html
    +++ b/doc/html/fusion/iterator/functions/distance.html
    @@ -3,10 +3,10 @@
     
     distance
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,28 +23,31 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + 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);
     
    -

    Table 1.5. Parameters

    +

    Table 1.5. Parameters

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i, j -

    -
    -

    +

    Models of Forward Iterator into the same sequence -

    -
    -

    +

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

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

    Return type: int @@ -105,19 +95,17 @@ 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);
    diff --git a/doc/html/fusion/iterator/functions/next.html b/doc/html/fusion/iterator/functions/next.html
    index 2ff7f62f..ec73a842 100644
    --- a/doc/html/fusion/iterator/functions/next.html
    +++ b/doc/html/fusion/iterator/functions/next.html
    @@ -3,10 +3,10 @@
     
     next
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,27 +23,30 @@
     PrevUpHomeNext
     
    - +
    +

    +next +

    +
    +
    - + Description

    Moves an iterator 1 position forwards.

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

    Table 1.3. Parameters

    +

    Table 1.3. Parameters

    @@ -51,50 +54,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: A model of the same iterator @@ -105,19 +95,17 @@ 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);
    diff --git a/doc/html/fusion/iterator/functions/prior.html b/doc/html/fusion/iterator/functions/prior.html
    index 4bb04c0d..d70a7929 100644
    --- a/doc/html/fusion/iterator/functions/prior.html
    +++ b/doc/html/fusion/iterator/functions/prior.html
    @@ -3,10 +3,10 @@
     
     prior
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,27 +23,30 @@
     PrevUpHomeNext
     
    - +
    +

    +prior +

    +
    +
    - + Description

    Moves an iterator 1 position backwards.

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

    Table 1.4. Parameters

    +

    Table 1.4. Parameters

    @@ -51,50 +54,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Bidirectional Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: A model of the same iterator @@ -105,19 +95,17 @@ 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);
    diff --git a/doc/html/fusion/iterator/metafunctions.html b/doc/html/fusion/iterator/metafunctions.html
    index a3796084..8d1fb1fd 100644
    --- a/doc/html/fusion/iterator/metafunctions.html
    +++ b/doc/html/fusion/iterator/metafunctions.html
    @@ -3,10 +3,10 @@
     
     Metafunctions
     
    -
    -
    +
    +
     
    -
     
     
    @@ -24,8 +24,12 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    value_of
    deref
    diff --git a/doc/html/fusion/iterator/metafunctions/advance.html b/doc/html/fusion/iterator/metafunctions/advance.html index c0d2e266..28aee7dc 100644 --- a/doc/html/fusion/iterator/metafunctions/advance.html +++ b/doc/html/fusion/iterator/metafunctions/advance.html @@ -3,10 +3,10 @@ advance - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    + +
    +
    - + Description

    Moves an iterator a specified distance.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename M
         >
    @@ -47,7 +50,7 @@
     };
     
    -

    Table 1.17. Parameters

    +

    Table 1.17. Parameters

    @@ -55,70 +58,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Iterator to move relative to -

    -
    -

    +

    M -

    -
    -

    +

    Model of MPL Integral Constant -

    -
    -

    +

    Number of positions to move -

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

    Return type: A model of the same iterator @@ -133,19 +117,17 @@ 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 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;
    diff --git a/doc/html/fusion/iterator/metafunctions/advance_c.html b/doc/html/fusion/iterator/metafunctions/advance_c.html
    index 426cefda..21362060 100644
    --- a/doc/html/fusion/iterator/metafunctions/advance_c.html
    +++ b/doc/html/fusion/iterator/metafunctions/advance_c.html
    @@ -3,10 +3,10 @@
     
     advance_c
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         int N
         >
    @@ -47,7 +50,7 @@
     };
     
    -

    Table 1.18. Parameters

    +

    Table 1.18. Parameters

    @@ -55,69 +58,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Iterator to move relative to -

    -
    -

    +

    N -

    -
    -

    +

    Integer constant -

    -
    -

    +

    Number of positions to move -

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

    Return type: A model of the same iterator @@ -132,19 +116,17 @@ 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 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;
    diff --git a/doc/html/fusion/iterator/metafunctions/deref.html b/doc/html/fusion/iterator/metafunctions/deref.html
    index 0d49a882..ebb7fc43 100644
    --- a/doc/html/fusion/iterator/metafunctions/deref.html
    +++ b/doc/html/fusion/iterator/metafunctions/deref.html
    @@ -3,10 +3,10 @@
     
     deref
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    +

    +deref +

    +
    +
    - + Description

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

    - + Synposis
    -
    -template<
    +
    template<
         typename I
         >
     struct deref
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.12. Parameters

    +

    Table 1.12. Parameters

    @@ -54,50 +57,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: Any type @@ -107,19 +97,17 @@ 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;
    diff --git a/doc/html/fusion/iterator/metafunctions/distance.html b/doc/html/fusion/iterator/metafunctions/distance.html
    index 7f825ef8..9c034b4f 100644
    --- a/doc/html/fusion/iterator/metafunctions/distance.html
    +++ b/doc/html/fusion/iterator/metafunctions/distance.html
    @@ -3,10 +3,10 @@
     
     distance
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + Description

    Returns the distance between two iterators.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename J
         >
    @@ -47,7 +50,7 @@
     };
     
    -

    Table 1.16. Parameters

    +

    Table 1.16. Parameters

    @@ -55,50 +58,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I, J -

    -
    -

    +

    Models of Forward Iterator into the same sequence -

    -
    -

    +

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

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

    Return type: A model of MPL @@ -110,19 +100,17 @@ 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 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;
    diff --git a/doc/html/fusion/iterator/metafunctions/equal_to.html b/doc/html/fusion/iterator/metafunctions/equal_to.html
    index 6dc3d549..2864ede4 100644
    --- a/doc/html/fusion/iterator/metafunctions/equal_to.html
    +++ b/doc/html/fusion/iterator/metafunctions/equal_to.html
    @@ -3,10 +3,10 @@
     
     equal_to
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + Description

    @@ -35,11 +39,10 @@ and J are equal.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I,
         typename J
         >
    @@ -49,7 +52,7 @@
     };
     
    -

    Table 1.15. Parameters

    +

    Table 1.15. Parameters

    @@ -57,48 +60,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I, J -

    -
    -

    +

    Any fusion iterators -

    -
    -

    +

    Operation's arguments -

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

    Return type: A model of MPL @@ -110,19 +100,17 @@ 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 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>));
    diff --git a/doc/html/fusion/iterator/metafunctions/next.html b/doc/html/fusion/iterator/metafunctions/next.html
    index 6f3f418f..5e57b362 100644
    --- a/doc/html/fusion/iterator/metafunctions/next.html
    +++ b/doc/html/fusion/iterator/metafunctions/next.html
    @@ -3,10 +3,10 @@
     
     next
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    +

    +next +

    +
    +
    - + Description

    Returns the type of the next iterator in a sequence.

    - + Synposis
    -
    -template<
    +
    template<
         typename I
         >
     struct next
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.13. Parameters

    +

    Table 1.13. Parameters

    @@ -54,50 +57,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: A model of the same iterator @@ -108,19 +98,17 @@ 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 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>));
    diff --git a/doc/html/fusion/iterator/metafunctions/prior.html b/doc/html/fusion/iterator/metafunctions/prior.html
    index 5a610de9..3b4ec8da 100644
    --- a/doc/html/fusion/iterator/metafunctions/prior.html
    +++ b/doc/html/fusion/iterator/metafunctions/prior.html
    @@ -3,10 +3,10 @@
     
     prior
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    +

    +prior +

    +
    +
    - + Description

    Returns the type of the previous iterator in a sequence.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I
         >
     struct prior
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.14. Parameters

    +

    Table 1.14. Parameters

    @@ -54,50 +57,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Bidirectional Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: A model of the same iterator @@ -108,19 +98,17 @@ 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 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>));
    diff --git a/doc/html/fusion/iterator/metafunctions/value_of.html b/doc/html/fusion/iterator/metafunctions/value_of.html
    index 2dfe4eaf..4b2da1c1 100644
    --- a/doc/html/fusion/iterator/metafunctions/value_of.html
    +++ b/doc/html/fusion/iterator/metafunctions/value_of.html
    @@ -3,10 +3,10 @@
     
     value_of
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,21 +23,24 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + Description

    Returns the type stored at the position of an iterator.

    - + Synopsis
    -
    -template<
    +
    template<
         typename I
         >
     struct value_of
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.11. Parameters

    +

    Table 1.11. Parameters

    @@ -54,50 +57,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    I -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: Any type @@ -107,19 +97,17 @@ 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 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;
    diff --git a/doc/html/fusion/iterator/operator.html b/doc/html/fusion/iterator/operator.html
    index b32d3c47..ebc0f2c0 100644
    --- a/doc/html/fusion/iterator/operator.html
    +++ b/doc/html/fusion/iterator/operator.html
    @@ -3,10 +3,10 @@
     
     Operator
     
    -
    -
    +
    +
     
    -
    +
     
     
    @@ -24,8 +24,12 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    Operator *
    diff --git a/doc/html/fusion/iterator/operator/operator_equality.html b/doc/html/fusion/iterator/operator/operator_equality.html index e932b79c..e416868f 100644 --- a/doc/html/fusion/iterator/operator/operator_equality.html +++ b/doc/html/fusion/iterator/operator/operator_equality.html @@ -4,10 +4,10 @@ Operator == - - + + - @@ -26,30 +26,33 @@ PrevUpHomeNext
    -

    + + == +

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

    @@ -57,48 +60,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i, j -

    -
    -

    +

    Any fusion iterators -

    -
    -

    +

    Operation's arguments -

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

    Return type: Convertible to bool. @@ -109,11 +99,10 @@ 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..74a5ba8e 100644 --- a/doc/html/fusion/iterator/operator/operator_inequality.html +++ b/doc/html/fusion/iterator/operator/operator_inequality.html @@ -4,10 +4,10 @@ Operator != - - + + - @@ -25,30 +25,33 @@ PrevUpHomeNext
    -

    + + != +

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

    @@ -56,43 +59,31 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i, j -

    -
    -

    +

    Any fusion iterators -

    -
    -

    +

    Operation's arguments -

    -
    - + Expression Semantics
    @@ -105,11 +96,10 @@ 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..e3223959 100644 --- a/doc/html/fusion/iterator/operator/operator_unary_star.html +++ b/doc/html/fusion/iterator/operator/operator_unary_star.html @@ -4,10 +4,10 @@ Operator * - - + + - + @@ -25,29 +25,32 @@ PrevUpHomeNext
    -

    + + * +

    +
    +
    - + Description

    Dereferences an iterator.

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

    Table 1.8. Parameters

    +

    Table 1.8. Parameters

    @@ -55,50 +58,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    i -

    -
    -

    +

    Model of Forward Iterator -

    -
    -

    +

    Operation's argument -

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

    Return type: Equivalent to the return @@ -108,19 +98,17 @@ 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);
    diff --git a/doc/html/fusion/notes.html b/doc/html/fusion/notes.html
    index c19a134b..5dfffa50 100644
    --- a/doc/html/fusion/notes.html
    +++ b/doc/html/fusion/notes.html
    @@ -3,11 +3,11 @@
     
     Notes
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -21,13 +21,17 @@
     
     
    -PrevUpHomeNext +PrevUpHomeNext
    - +
    +

    +Notes +

    +
    +

    - + Recursive Inlined Functions

    @@ -41,7 +45,7 @@ remains linear.

    - + Overloaded Functions

    @@ -51,7 +55,7 @@ given a key, k.

    - + Tag Dispatching

    @@ -73,8 +77,7 @@ For example, the fusion result_of::begin metafunction is implemented as follows:

    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     struct begin
     {
         typedef typename
    @@ -103,7 +106,7 @@
           
     

    - + Extensibility

    @@ -138,7 +141,7 @@ it very cheap to pass around.

    - + Element Conversion

    @@ -146,8 +149,7 @@ 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, @@ -161,18 +163,16 @@

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

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

    creates a list of type

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

    Function pointers: @@ -181,8 +181,7 @@ 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);
     
    @@ -190,19 +189,17 @@ 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 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)
     
    @@ -210,8 +207,7 @@ 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 @@ -223,8 +219,7 @@

    For example:

    -
    -A a; B b; const A ca = 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&>
    @@ -237,7 +232,7 @@
         



    -

    [14] +

    [10] 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 @@ -256,7 +251,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html index 2b8ba58c..090b980e 100644 --- a/doc/html/fusion/organization.html +++ b/doc/html/fusion/organization.html @@ -3,10 +3,10 @@ Organization - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +

    The library is organized into layers of modules, with each module addressing a particular area of responsibility. A module may not depend on modules in @@ -34,14 +38,14 @@ The library is organized in three layers:

    - + Layers

    - fusion_org + fusion_org

    @@ -65,7 +69,7 @@ against.

    - + Directory

      @@ -186,7 +190,7 @@

    - + Example

    @@ -194,20 +198,19 @@ 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] + [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..a3db07de 100644 --- a/doc/html/fusion/preface.html +++ b/doc/html/fusion/preface.html @@ -3,10 +3,10 @@ Preface - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +

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

    - + Description

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

    - + Motivation

    @@ -88,7 +92,7 @@ an instant AHA! moment.

    - + How to use this manual

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

    -

    Table 1.1. Icons

    +

    Table 1.1. Icons

    @@ -104,91 +108,61 @@ - - + - + +

    - - + - + +

    - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Icon -

    -
    -

    +

    Name -

    -
    -

    +

    Meaning -

    -
    -

    - note -

    -
    -

    +

    + note +

    Note -

    -
    -

    +

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

    -
    -

    - alert -

    -
    -

    +

    + alert +

    Alert -

    -
    -

    +

    Information provided is of utmost importance. -

    -
    -

    - caution -

    -
    -

    +

    + caution +

    Caution -

    -
    -

    +

    A mild warning. -

    -
    -

    - tip -

    -
    -

    +

    + tip +

    Tip -

    -
    -

    +

    A potentially useful and helpful piece of information. -

    -
    @@ -199,7 +173,7 @@ Tools.

    - + Support

    diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html index 7b92387d..62ad1d5b 100644 --- a/doc/html/fusion/quick_start.html +++ b/doc/html/fusion/quick_start.html @@ -3,10 +3,10 @@ Quick Start - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext

    - +
    + +
    +

    I assume the reader is already familiar with tuples (Boost.Tuple) and its ancestor std::pair. The tuple is a generalization of std::pair @@ -33,20 +37,18 @@

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

    -
    -vector<int, char, std::string> stuff(1, 'x', "howdy");
    +
    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);
    @@ -60,23 +62,21 @@
           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,8 +92,7 @@
     

    Now, finally:

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

    That's it! for_each is a fusion algorithm. @@ -118,7 +117,7 @@ print just about any Fusion Sequence.

    - + Print only pointers

    @@ -127,14 +126,12 @@ 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());
    @@ -152,7 +149,7 @@
           Easy, right?
         

    - + Associative tuples

    @@ -169,8 +166,7 @@ associate types with elements. It can be used as a cleverer replacement of the struct. Example:

    -
    -namespace fields
    +
    namespace fields
     {
         struct name;
         struct age;
    @@ -190,8 +186,7 @@
           For example, given a a_person
           of type, person, you can do:
         

    -
    -using namespace fields;
    +
    using namespace fields;
     std::string person_name = at_key<name>(a_person);
     int person_age = at_key<age>(a_person);
     
    @@ -204,8 +199,7 @@ maps. Example:

    -
    -struct saver
    +
    struct saver
     {
         template <typename Pair>
         void operator()(Pair const& data) const
    @@ -227,7 +221,7 @@
           a dog or a whole alternate_universe.
         

    - + Tip of the Iceberg

    @@ -238,12 +232,12 @@



    -

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

    [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..f2ae59a4 100644 --- a/doc/html/fusion/references.html +++ b/doc/html/fusion/references.html @@ -3,10 +3,10 @@ References - - + + - + @@ -22,8 +22,12 @@ PrevUpHome
    - +
    + +
    +
    - +
    + +
    +
    Concepts
    @@ -59,11 +63,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..acfc1f0f 100644 --- a/doc/html/fusion/sequence/concepts.html +++ b/doc/html/fusion/sequence/concepts.html @@ -3,10 +3,10 @@ Concepts - - + + - + @@ -24,8 +24,12 @@ PrevUpHomeNext
    - +
    + +
    +
    Forward Sequence
    @@ -40,7 +44,7 @@ Fusion Sequences are organized into a hierarchy of concepts.

    - + Traversal

    @@ -58,7 +62,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..7ca14672 100644 --- a/doc/html/fusion/sequence/concepts/associative_sequence.html +++ b/doc/html/fusion/sequence/concepts/associative_sequence.html @@ -4,10 +4,10 @@ Associative Sequence - - + + - @@ -25,12 +25,16 @@ PrevUpHomeNext

    -

    + + Sequence +

    +
    +
    - + Description

    @@ -71,7 +75,7 @@

    - + Valid Expressions
    @@ -86,101 +90,69 @@
    - - + - + - + +

    - - + - - + + +

    - - + - - + + +

    - - + - + - + +

    -

    +

    Expression -

    -
    -

    +

    Return type -

    -
    -

    +

    Type Requirements -

    -
    -

    +

    Runtime Complexity -

    -
    -

    +

    has_key<K>(s) -

    -
    -

    +

    MPL Boolean Constant. Convertible to bool. -

    -
    -

    -

    -
    -

    +

    +

    Constant -

    -
    -

    +

    at_key<K>(s) -

    -
    -

    +

    Any type -

    -
    -

    -

    -
    -

    +

    +

    Constant -

    -
    -

    +

    at_key<K>(s) = o -

    -
    -

    +

    Any type -

    -
    -

    +

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

    -
    -

    +

    Constant -

    -

    - + Result Type Expressions
    @@ -190,61 +162,45 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -262,52 +218,40 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    has_key<K>(s) -

    - - -

    +

    +

    A boolean Integral Constant c such that c::value == true if and only if there is one or more elements with the key k in s; see has_key. -

    - +

    - -

    +

    at_key<K>(s) -

    - - -

    +

    +

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

    - +

    - + Models
      diff --git a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html index 3e7b0d79..cb6c54e1 100644 --- a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html +++ b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html @@ -4,10 +4,10 @@ Bidirectional Sequence - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext
    -

    + + Sequence +

    +
    +
    - + Description

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

    - + Refinement of
    @@ -72,7 +76,7 @@
    - + Valid Expressions
    @@ -89,125 +93,85 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Type Requirements -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    begin(s) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    end(s) -

    - - -

    +

    +

    Bidirectional Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    back(s) -

    - - -

    +

    +

    Any type -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    back(s) = o -

    - - -

    +

    +

    Any type -

    - - -

    +

    +

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

    - - -

    +

    +

    Constant -

    - +

    - + Result Type Expressions
    @@ -217,58 +181,42 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

    result_of::begin<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::end<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::back<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -284,32 +232,24 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    back(s) -

    - - -

    +

    +

    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..8b8711a7 100644 --- a/doc/html/fusion/sequence/concepts/forward_sequence.html +++ b/doc/html/fusion/sequence/concepts/forward_sequence.html @@ -4,10 +4,10 @@ Forward Sequence - - + + - + @@ -25,12 +25,16 @@ PrevUpHomeNext
    -

    + + Sequence +

    +
    +
    - + Description

    @@ -62,7 +66,7 @@

    - + Valid Expressions
    @@ -77,169 +81,113 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Type Requirements -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    begin(s) -

    - - -

    +

    +

    Forward Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    end(s) -

    - - -

    +

    +

    Forward Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    size(s) -

    - - -

    +

    +

    MPL Integral Constant. Convertible to int. -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    empty(s) -

    - - -

    +

    +

    MPL Boolean Constant. Convertible to bool. -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    front(s) -

    - - -

    +

    +

    Any type -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    front(s) = o -

    - - -

    +

    +

    Any type -

    - - -

    +

    +

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

    - - -

    +

    +

    Constant -

    - +

    - + Result Type Expressions
    @@ -249,82 +197,58 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

    result_of::begin<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::end<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::size<S>::type -

    - - -

    +

    +

    Unspecified -

    - +

    - -

    +

    result_of::empty<S>::type -

    - - -

    +

    +

    Constant time -

    - +

    - -

    +

    result_of::front<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -334,85 +258,61 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    begin(s) -

    - - -

    +

    +

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

    - +

    - -

    +

    end(s) -

    - - -

    +

    +

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

    - +

    - -

    +

    size(s) -

    - - -

    +

    +

    The size of the sequence; see size. -

    - +

    - -

    +

    empty(s) -

    - - -

    +

    +

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

    - +

    - -

    +

    front(s) -

    - - -

    +

    +

    The first element in the sequence; see front. -

    - +

    - + Invariants

    @@ -438,7 +338,7 @@

    - + 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..e98694dc 100644 --- a/doc/html/fusion/sequence/concepts/random_access_sequence.html +++ b/doc/html/fusion/sequence/concepts/random_access_sequence.html @@ -4,10 +4,10 @@ Random Access Sequence - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext
    -

    + + Access Sequence +

    +
    +
    - + Description

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

    - + Refinement of
    @@ -79,7 +83,7 @@
    - + Valid Expressions
    @@ -96,125 +100,85 @@ - -

    +

    Expression -

    - - -

    +

    +

    Return type -

    - - -

    +

    +

    Type Requirements -

    - - -

    +

    +

    Runtime Complexity -

    - +

    - -

    +

    begin(s) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    end(s) -

    - - -

    +

    +

    Random Access Iterator -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    at<N>(s) -

    - - -

    +

    +

    Any type -

    - - -

    -

    - - -

    +

    +

    +

    +

    Constant -

    - +

    - -

    +

    at<N>(s) = o -

    - - -

    +

    +

    Any type -

    - - -

    +

    +

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

    - - -

    +

    +

    Constant -

    - +

    - + Result Type Expressions
    @@ -224,72 +188,52 @@ - -

    +

    Expression -

    - - -

    +

    +

    Compile Time Complexity -

    - +

    - -

    +

    result_of::begin<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

    result_of::end<S>::type -

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - -

    +

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

    - - -

    +

    +

    Amortized constant time -

    - +

    - + Expression Semantics
    @@ -313,32 +257,24 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    at<N>(s) -

    - - -

    +

    +

    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..af42206f 100644 --- a/doc/html/fusion/sequence/intrinsic.html +++ b/doc/html/fusion/sequence/intrinsic.html @@ -3,10 +3,10 @@ Intrinsic - - + + - @@ -24,8 +24,12 @@ PrevUpHomeNext
    - +
    + +
    +
    Functions
    Metafunctions
    @@ -37,20 +41,19 @@ Intrinsic functions, unlike 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..e2b94ae0 100644 --- a/doc/html/fusion/sequence/intrinsic/functions.html +++ b/doc/html/fusion/sequence/intrinsic/functions.html @@ -3,10 +3,10 @@ Functions - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +
    begin
    end
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at.html b/doc/html/fusion/sequence/intrinsic/functions/at.html index 9c4b9d4b..91429544 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at.html @@ -3,10 +3,10 @@ at - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    -
    -at
    +
    +
    +at +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template <typename N, typename Sequence>
    +
    template <typename N, typename Sequence>
     typename result_of::at<Sequence, N>::type
     at(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     at(Sequence const& seq);
     
    - + Parameters
    @@ -56,69 +59,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Random Access Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

    -
    -

    +

    N -

    -
    -

    +

    An MPL Integral Constant -

    -
    -

    +

    An index from the beginning of the sequence. -

    -
    - + Expression Semantics
    -
    -at<N>(seq);
    +
    at<N>(seq);
     

    Return type: Returns a reference to @@ -137,23 +121,20 @@

    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..5af335fc 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_c.html @@ -3,10 +3,10 @@ at_c - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    +
    +at_c +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template <int N, typename Sequence>
    +
    template <int N, typename Sequence>
     typename result_of::at_c<Sequence, N>::type
     at_c(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     at_c(Sequence const& seq);
     
    - + Parameters
    @@ -56,68 +59,49 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Random Access Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

    -
    -

    +

    N -

    -
    -

    +

    An integral constant -

    -
    -

    +

    An index from the beginning of the sequence. -

    -
    - + Expression Semantics
    -
    -at_c<N>(seq);
    +
    at_c<N>(seq);
     

    Return type: Returns a reference to @@ -137,23 +121,20 @@

    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..811f5537 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at_key.html @@ -3,10 +3,10 @@ at_key - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    +
    +at_key +
    +
    +
    - + Description

    Returns the element associated with a Key from the sequence.

    - + Synopsis
    -
    -template <typename Key, typename Sequence>
    +
    template <typename Key, typename Sequence>
     typename result_of::at_key<Sequence, Key>::type
     at_key(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     at_key(Sequence const& seq);
     
    - + Parameters
    @@ -56,68 +59,49 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Associative Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

    -
    -

    +

    Key -

    -
    -

    +

    Any type -

    -
    -

    +

    The queried key. -

    -
    - + Expression Semantics
    -
    -at_key<Key>(seq);
    +
    at_key<Key>(seq);
     

    Return type: Returns a reference to @@ -136,19 +120,17 @@ 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..57b4b4af 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/back.html +++ b/doc/html/fusion/sequence/intrinsic/functions/back.html @@ -3,10 +3,10 @@ back - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    +
    +back +
    +
    +
    - + Description

    Returns the last element in the sequence.

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::back<Sequence>::type
     back(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     back(Sequence const& seq);
     
    - + Parameters
    @@ -56,49 +59,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Bidirectional Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

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

    Return type: Returns a reference to @@ -117,19 +107,17 @@ 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..0263e040 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/functions/begin.html @@ -3,10 +3,10 @@ begin - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    +
    +begin +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::begin<Sequence>::type
     begin(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     begin(Sequence const& seq);
     
    - + Parameters
    @@ -56,49 +59,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The sequence we wish to get an iterator from. -

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

    Return type:

    - + 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);
    +
    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..694e11d8 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/functions/empty.html @@ -3,10 +3,10 @@ empty - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    +
    +empty +
    +
    +
    - + Description

    @@ -35,16 +39,15 @@ the sequence is empty, else, evaluates to false.

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::empty<Sequence>::type
     empty(Sequence const& seq);
     
    - + Parameters
    @@ -54,49 +57,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

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

    Return type: Convertible to bool. @@ -106,19 +96,17 @@ 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..b33b5599 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/end.html +++ b/doc/html/fusion/sequence/intrinsic/functions/end.html @@ -3,10 +3,10 @@ end - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    -
    -end
    +
    +
    +end +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::end<Sequence>::type
     end(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     end(Sequence const& seq);
     
    - + Parameters
    @@ -56,49 +59,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The sequence we wish to get an iterator from. -

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

    Return type:

    - + 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);
    +
    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..5362469a 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/front.html +++ b/doc/html/fusion/sequence/intrinsic/functions/front.html @@ -3,10 +3,10 @@ front - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    +
    +front +
    +
    +
    - + Description

    Returns the first element in the sequence.

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::front<Sequence>::type
     front(Sequence& seq);
     
    @@ -46,7 +49,7 @@
     front(Sequence const& seq);
     
    - + Parameters
    @@ -56,49 +59,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

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

    Return type: Returns a reference to @@ -117,19 +107,17 @@ 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..798e7686 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/functions/has_key.html @@ -3,10 +3,10 @@ has_key - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +
    - + Description

    @@ -36,16 +40,15 @@ to false.

    - + Synopsis
    -
    -template <typename Key, typename Sequence>
    +
    template <typename Key, typename Sequence>
     typename result_of::has_key<Sequence, Key>::type
     has_key(Sequence const& seq);
     
    - + Parameters
    @@ -55,68 +58,49 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Associative Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

    -
    -

    +

    Key -

    -
    -

    +

    Any type -

    -
    -

    +

    The queried key. -

    -
    - + Expression Semantics
    -
    -has_key<Key>(seq);
    +
    has_key<Key>(seq);
     

    Return type: Convertible to bool. @@ -126,19 +110,17 @@ 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..31d177c9 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/size.html +++ b/doc/html/fusion/sequence/intrinsic/functions/size.html @@ -3,10 +3,10 @@ size - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    +
    +size +
    +
    +
    - + Description

    @@ -34,16 +38,15 @@ that evaluates the number of elements in the sequence.

    - + Synopsis
    -
    -template <typename Sequence>
    +
    template <typename Sequence>
     typename result_of::size<Sequence>::type
     size(Sequence const& seq);
     
    - + Parameters
    @@ -53,49 +56,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq -

    -
    -

    +

    Model of Forward Sequence -

    -
    -

    +

    The sequence we wish to investigate. -

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

    Return type: Convertible to int. @@ -105,19 +95,17 @@ 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..c10e2b72 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/functions/swap.html @@ -3,10 +3,10 @@ swap - - + + - + @@ -23,25 +23,28 @@ PrevUpHomeNext
    - +
    +
    +swap +
    +
    +
    - + 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
    @@ -51,49 +54,36 @@ - - + - + +

    - - + - + +

    -

    +

    Parameters -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    seq1, seq2 -

    -
    -

    +

    Models of Forward Sequence -

    -
    -

    +

    The sequences whos elements we wish to swap. -

    -
    - + Expression Semantics
    -
    -swap(seq1, seq2);
    +
    swap(seq1, seq2);
     

    Return type: void @@ -108,11 +98,10 @@ /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"));
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions.html b/doc/html/fusion/sequence/intrinsic/metafunctions.html
    index 589d575b..8166d000 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions.html
    @@ -3,10 +3,10 @@
     
     Metafunctions
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,8 +23,12 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    begin
    end
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html index f627a517..c9c97486 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html @@ -3,10 +3,10 @@ at - - + + - + @@ -23,23 +23,26 @@ PrevUpHomeNext
    -
    -at
    +
    +
    +at +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename N>
     struct at
    @@ -48,7 +51,7 @@
     };
     
    -

    Table 1.25. Parameters

    +

    Table 1.25. Parameters

    @@ -56,70 +59,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    N -

    -
    -

    +

    An MPL Integral Constant -

    -
    -

    +

    Index of element -

    -
    - + Expression Semantics
    -
    -result_of::at<Seq, N>::type
    +
    result_of::at<Seq, N>::type
     

    Return type: Any type. @@ -132,16 +116,15 @@ /sequence/intrinsic/at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    +
    typedef vector<int,float,char> vec;
     BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));
     


    -

    [6] +

    [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 diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html index 2e74d5a1..97ba28cc 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html @@ -3,10 +3,10 @@ at_c - - + + - + @@ -23,23 +23,26 @@ PrevUpHomeNext

    - +
    +
    +at_c +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         int M>
     struct at_c
    @@ -48,7 +51,7 @@
     };
     
    -

    Table 1.26. Parameters

    +

    Table 1.26. Parameters

    @@ -56,69 +59,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    M -

    -
    -

    +

    Positive integer index -

    -
    -

    +

    Index of element -

    -
    - + Expression Semantics
    -
    -result_of::at_c<Seq, M>::type
    +
    result_of::at_c<Seq, M>::type
     

    Return type: Any type @@ -131,16 +115,15 @@ /sequence/intrinsic/at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    +
    typedef vector<int,float,char> vec;
     BOOST_MPL_ASSERT((boost::is_same<result_of::at_c<vec, 1>::type, float&>));
     


    -

    [7] +

    [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 diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html index e6905a1a..dfd8cae3 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html @@ -3,10 +3,10 @@ at_key - - + + - + @@ -23,23 +23,26 @@ PrevUpHomeNext

    - +
    +
    +at_key +
    +
    +
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename Key>
     struct at_key
    @@ -48,7 +51,7 @@
     };
     
    -

    Table 1.30. Parameters

    +

    Table 1.30. Parameters

    @@ -56,69 +59,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    Key -

    -
    -

    +

    Any type -

    -
    -

    +

    Key type -

    -
    - + Expression Semantics
    -
    -result_of::at_key<Seq, Key>::type
    +
    result_of::at_key<Seq, Key>::type
     

    Return type: Any type. @@ -133,16 +117,15 @@ /sequence/intrinsic/at_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +
    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] +

    [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 diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html index 721782f6..61a62cc2 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html @@ -3,10 +3,10 @@ back - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext

    - +
    +
    +back +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::back<Seq>::type
    +
    result_of::back<Seq>::type
     

    Return type: Any type @@ -108,11 +98,10 @@ /sequence/intrinsic/back.hpp>

    - + Example
    -
    -typedef vector<int,char> vec;
    +
    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..a0fc4f58 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html @@ -3,10 +3,10 @@ begin - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    +
    +begin +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::begin<Seq>::type
    +
    result_of::begin<Seq>::type
     

    Return type: An iterator modelling the @@ -109,11 +99,10 @@ /sequence/intrinsic/begin.hpp>

    - + Example
    -
    -typedef vector<int> vec;
    +
    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..4825331c 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html @@ -3,10 +3,10 @@ empty - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    +
    +empty +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::empty<Seq>::type
    +
    result_of::empty<Seq>::type
     

    Return type: An MPL @@ -110,11 +100,10 @@ /sequence/intrinsic/empty.hpp>

    - + Example
    -
    -typedef vector<> empty_vec;
    +
    typedef vector<> empty_vec;
     typedef vector<int,float,char> vec;
     
     BOOST_MPL_ASSERT((result_of::empty<empty_vec>));
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    index d82b3a6a..fdf88564 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    @@ -3,10 +3,10 @@
     
     end
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,28 +23,31 @@
     PrevUpHomeNext
     
    -
    -end
    +
    +
    +end +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::end<Seq>::type
    +
    result_of::end<Seq>::type
     

    Return type: A model of the same traversal @@ -109,11 +99,10 @@ /sequence/intrinsic/end.hpp>

    - + Example
    -
    -typedef vector<int> vec;
    +
    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..ffe3e082 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html @@ -3,10 +3,10 @@ front - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    +
    +front +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::front<Seq>::type
    +
    result_of::front<Seq>::type
     

    Return type: Any type @@ -109,11 +99,10 @@ /sequence/intrinsic/front.hpp>

    - + Example
    -
    -typedef vector<int,char> vec;
    +
    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..3afd7418 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html @@ -3,10 +3,10 @@ has_key - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    + +
    +
    - + Description

    Returns the result type of has_key.

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename Key>
     struct has_key
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.29. Parameters

    +

    Table 1.29. Parameters

    @@ -54,69 +57,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    Key -

    -
    -

    +

    Any type -

    -
    -

    +

    Key type -

    -
    - + Expression Semantics
    -
    -result_of::has_key<Seq, Key>::type
    +
    result_of::has_key<Seq, Key>::type
     

    Return type: An MPL @@ -132,11 +116,10 @@ /sequence/intrinsic/has_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +
    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..7b9c087d 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html @@ -3,10 +3,10 @@ size - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    +
    +size +
    +
    +
    - + Description

    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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    - + Expression Semantics
    -
    -result_of::size<Seq>::type
    +
    result_of::size<Seq>::type
     

    Return type: An MPL @@ -109,11 +99,10 @@ /sequence/intrinsic/size.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    +
    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..cd7bfb14 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html @@ -3,10 +3,10 @@ swap - - + + - + @@ -23,28 +23,31 @@ PrevUpHomeNext
    - +
    +
    +swap +
    +
    +
    - + 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

    @@ -52,50 +55,37 @@ - - + - + +

    - - + - + +

    -

    +

    Parameters -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq1, Seq2 -

    -
    -

    +

    Models of Forward Sequence -

    -
    -

    +

    The sequences being swapped -

    -
    - + Expression Semantics
    -
    -result_of::swap<Seq1, Seq2>::type
    +
    result_of::swap<Seq1, Seq2>::type
     

    Return type: void. diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html index a47106ae..fe665b3e 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html @@ -3,10 +3,10 @@ value_at - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext

    - +
    + +
    +
    - + Description

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

    - + Synopsis
    -
    -template<
    +
    template<
         typename Seq,
         typename N>
     struct value_at
    @@ -46,7 +49,7 @@
     };
     
    -

    Table 1.27. Parameters

    +

    Table 1.27. Parameters

    @@ -54,70 +57,51 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    N -

    -
    -

    +

    An MPL Integral Constant -

    -
    -

    +

    Index of element -

    -
    - + Expression Semantics
    -
    -result_of::value_at<Seq, N>::type
    +
    result_of::value_at<Seq, N>::type
     

    Return type: Any type. @@ -130,11 +114,10 @@ /sequence/intrinsic/value_at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    +
    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..8a7deecb 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html @@ -3,10 +3,10 @@ value_at_c - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    + +
    +
    - + 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 +49,7 @@
     };
     
    -

    Table 1.28. Parameters

    +

    Table 1.28. Parameters

    @@ -54,69 +57,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    M -

    -
    -

    +

    Positive integer index -

    -
    -

    +

    Index of element -

    -
    - + Expression Semantics
    -
    -result_of::value_at_c<Seq, M>::type
    +
    result_of::value_at_c<Seq, M>::type
     

    Return type: Any type @@ -129,11 +113,10 @@ /sequence/intrinsic/value_at.hpp>

    - + Example
    -
    -typedef vector<int,float,char> vec;
    +
    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..f294d2eb 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html @@ -3,10 +3,10 @@ value_at_key - - + + - + @@ -23,21 +23,24 @@ PrevUpHomeNext
    - +
    + +
    +
    - + 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 +49,7 @@
     };
     
    -

    Table 1.31. Parameters

    +

    Table 1.31. Parameters

    @@ -54,69 +57,50 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    Seq -

    -
    -

    +

    A model of Forward Sequence -

    -
    -

    +

    Argument sequence -

    -
    -

    +

    Key -

    -
    -

    +

    Any type -

    -
    -

    +

    Key type -

    -
    - + Expression Semantics
    -
    -result_of::value_at_key<Seq, Key>::type
    +
    result_of::value_at_key<Seq, Key>::type
     

    Return type: Any type. @@ -130,11 +114,10 @@ /sequence/intrinsic/value_at_key.hpp>

    - + Example
    -
    -typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    +
    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..6c3f0e63 100644 --- a/doc/html/fusion/sequence/operator.html +++ b/doc/html/fusion/sequence/operator.html @@ -3,10 +3,10 @@ Operator - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +
    I/O
    Comparison
    diff --git a/doc/html/fusion/sequence/operator/comparison.html b/doc/html/fusion/sequence/operator/comparison.html index 173ded05..646951a7 100644 --- a/doc/html/fusion/sequence/operator/comparison.html +++ b/doc/html/fusion/sequence/operator/comparison.html @@ -3,10 +3,10 @@ Comparison - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +
    equal
    not @@ -48,11 +52,10 @@ 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..06345af6 100644 --- a/doc/html/fusion/sequence/operator/comparison/equal.html +++ b/doc/html/fusion/sequence/operator/comparison/equal.html @@ -3,10 +3,10 @@ equal - - + + - + @@ -24,26 +24,29 @@ PrevUpHomeNext
    - +
    +
    +equal +
    +
    +
    - + 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
    @@ -53,48 +56,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a == b
    +
    a == b
     

    Return type: bool @@ -125,19 +115,17 @@ 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> 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..7b3f04ec 100644 --- a/doc/html/fusion/sequence/operator/comparison/greater_than.html +++ b/doc/html/fusion/sequence/operator/comparison/greater_than.html @@ -4,10 +4,10 @@ greater than - - + + - @@ -26,24 +26,27 @@ PrevUpHomeNext
    -
    + + than +
    +
    +

    Lexicographically compare two sequences.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator>(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -53,48 +56,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a > b
    +
    a > b
     

    Return type: bool @@ -117,19 +107,17 @@ 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<int, float> v1(4, 3.3f);
     vector<short, float> v2(5, 3.3f);
     vector<long, double> v3(5, 4.4);
     assert(v2 > v1);
    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..65a75b58 100644
    --- a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html
    @@ -4,10 +4,10 @@
     greater
               than equal
     
    -
    -
    +
    +
     
    -
     
     
    @@ -25,24 +25,27 @@
     PrevUpHomeNext
     
    -
    + + than equal +
    +
    +

    Lexicographically compare two sequences.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator>=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -52,48 +55,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a >= b
    +
    a >= b
     

    Return type: bool @@ -116,19 +106,17 @@ 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<int, float> v1(4, 3.3f);
     vector<short, float> v2(5, 3.3f);
     vector<long, double> v3(5, 4.4);
     assert(v2 >= v1);
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than.html b/doc/html/fusion/sequence/operator/comparison/less_than.html
    index 42dbe895..f4d6e672 100644
    --- a/doc/html/fusion/sequence/operator/comparison/less_than.html
    +++ b/doc/html/fusion/sequence/operator/comparison/less_than.html
    @@ -4,10 +4,10 @@
     less
               than
     
    -
    -
    +
    +
     
    -
     
    @@ -26,24 +26,27 @@
     PrevUpHomeNext
     
    -
    + + than +
    +
    +

    Lexicographically compare two sequences.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator<(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -53,48 +56,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a < b
    +
    a < b
     

    Return type: bool @@ -119,19 +109,17 @@ 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<int, float> v1(4, 3.3f);
     vector<short, float> v2(5, 3.3f);
     vector<long, double> v3(5, 4.4);
     assert(v1 < v2);
    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..de2c1bd5 100644
    --- a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html
    @@ -4,10 +4,10 @@
     less
               than equal
     
    -
    -
    +
    +
     
    -
     
    @@ -26,24 +26,27 @@
     PrevUpHomeNext
     
    -
    + + than equal +
    +
    +

    Lexicographically compare two sequences.

    - + Synopsis
    -
    -template <typename Seq1, typename Seq2>
    +
    template <typename Seq1, typename Seq2>
     bool
     operator<=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -53,48 +56,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a <= b
    +
    a <= b
     

    Return type: bool @@ -117,19 +107,17 @@ 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<int, float> v1(4, 3.3f);
     vector<short, float> v2(5, 3.3f);
     vector<long, double> v3(5, 4.4);
     assert(v1 <= v2);
    diff --git a/doc/html/fusion/sequence/operator/comparison/not_equal.html b/doc/html/fusion/sequence/operator/comparison/not_equal.html
    index 089452a4..5c7fb1d3 100644
    --- a/doc/html/fusion/sequence/operator/comparison/not_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/not_equal.html
    @@ -4,10 +4,10 @@
     not
               equal
     
    -
    -
    +
    +
     
    -
    +
     
     
    @@ -25,24 +25,27 @@
     PrevUpHomeNext
     
    -
    + + equal +
    +
    +

    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
    @@ -52,48 +55,35 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    a, b -

    -
    -

    +

    Instances of Sequence -

    -
    -

    +

    Sequence(s) to compare -

    -
    - + Expression Semantics
    -
    -a != b
    +
    a != b
     

    Return type: bool @@ -119,19 +109,17 @@ 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> v3(5, 'b');
     vector<int, char> t4(2, 'a');
     assert(v1 != v3);
     assert(v1 != t4);
    diff --git a/doc/html/fusion/sequence/operator/i_o.html b/doc/html/fusion/sequence/operator/i_o.html
    index c8ec47dc..207565e9 100644
    --- a/doc/html/fusion/sequence/operator/i_o.html
    +++ b/doc/html/fusion/sequence/operator/i_o.html
    @@ -3,10 +3,10 @@
     
     I/O
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,8 +23,12 @@
     PrevUpHomeNext
     
    -

    -I/O

    +
    +

    +I/O +

    +
    +
    in
    out
    @@ -43,8 +47,7 @@ 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;
     

    @@ -79,8 +82,7 @@

    Example:

    -
    -std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << a;
    +
    std::cout << tuple_open('[') << tuple_close(']') << tuple_delimiter(", ") << a;
     

    outputs the same vector, a @@ -91,14 +93,12 @@ 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, int> i;
     vector<int, int> j;
     
     std::cin >> i;
    @@ -116,11 +116,10 @@
               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..dd769851 100644 --- a/doc/html/fusion/sequence/operator/i_o/in.html +++ b/doc/html/fusion/sequence/operator/i_o/in.html @@ -3,10 +3,10 @@ in - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    -
    -in
    +
    +
    +in +
    +
    +
    - + Description

    @@ -34,16 +38,15 @@ stream.

    - + Synopsis
    -
    -template <typename IStream, typename Sequence>
    +
    template <typename IStream, typename Sequence>
     IStream&
     operator>>(IStream& is, Sequence& seq);
     
    - + Parameters
    @@ -53,66 +56,47 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    is -

    -
    -

    +

    An input stream. -

    -
    -

    +

    Stream to extract information from. -

    -
    -

    +

    seq -

    -
    -

    +

    A Sequence. -

    -
    -

    +

    The sequence to read. -

    -
    - + Expression Semantics
    -
    -is >> seq
    +
    is >> seq
     

    Return type: IStream& @@ -123,19 +107,17 @@ 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..2b081701 100644 --- a/doc/html/fusion/sequence/operator/i_o/out.html +++ b/doc/html/fusion/sequence/operator/i_o/out.html @@ -3,10 +3,10 @@ out - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    -
    -out
    +
    +
    +out +
    +
    +
    - + Description

    @@ -34,16 +38,15 @@ stream.

    - + Synopsis
    -
    -template <typename OStream, typename Sequence>
    +
    template <typename OStream, typename Sequence>
     OStream&
     operator<<(OStream& os, Sequence& seq);
     
    - + Parameters
    @@ -53,66 +56,47 @@ - - + - + +

    - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    os -

    -
    -

    +

    An output stream. -

    -
    -

    +

    Stream to write information to. -

    -
    -

    +

    seq -

    -
    -

    +

    A Sequence. -

    -
    -

    +

    The sequence to write. -

    -
    - + Expression Semantics
    -
    -os << seq
    +
    os << seq
     

    Return type: OStream& @@ -123,19 +107,17 @@ 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..7b36fd9c 100644 --- a/doc/html/fusion/support.html +++ b/doc/html/fusion/support.html @@ -3,10 +3,10 @@ Support - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +
    is_sequence
    is_view
    diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html index f04098bd..7da56cdd 100644 --- a/doc/html/fusion/support/category_of.html +++ b/doc/html/fusion/support/category_of.html @@ -3,10 +3,10 @@ category_of - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +

    - + Description

    @@ -36,11 +40,10 @@ Sequence Concepts).

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct category_of
    @@ -50,7 +53,7 @@
     }
     

    - + Parameters

    @@ -60,47 +63,34 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    T -

    -
    -

    +

    Any type -

    -
    -

    +

    The type to query. -

    -

    - + Expression Semantics

    -
    -typedef traits::category_of<T>::type category;
    +
    typedef traits::category_of<T>::type category;
     

    Return type: @@ -108,8 +98,7 @@

    For Iterators, the return type is derived from one of:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct incrementable_traversal_tag {};
     
    @@ -129,8 +118,7 @@
     

    For Sequences, the return type is derived from one of:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct incrementable_sequence_tag {};
     
    @@ -150,8 +138,7 @@
     

    And optionally from:

    -
    -namespace boost { namespace fusion
    +
    namespace boost { namespace fusion
     {
         struct associative_sequence_tag {};
     }}
    @@ -161,19 +148,17 @@
             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;
    +
    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> ));
    diff --git a/doc/html/fusion/support/deduce.html b/doc/html/fusion/support/deduce.html
    index f245a0c1..24e42164 100644
    --- a/doc/html/fusion/support/deduce.html
    +++ b/doc/html/fusion/support/deduce.html
    @@ -3,10 +3,10 @@
     
     deduce
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    +

    +deduce +

    +
    +

    - + Description

    @@ -39,19 +43,17 @@ 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 +63,10 @@
     }
     

    - + Example

    -
    -template <typename T>
    +
    template <typename T>
     struct holder
     {
         typename traits::deduce<T const &>::type element;
    @@ -82,7 +83,7 @@
     }
     

    - + See also

    diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html index 0ac46f2c..7c0eef03 100644 --- a/doc/html/fusion/support/deduce_sequence.html +++ b/doc/html/fusion/support/deduce_sequence.html @@ -3,10 +3,10 @@ deduce_sequence - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +

    - + Description

    @@ -39,19 +43,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 +63,10 @@
     }
     

    - + Example

    -
    -template <class Seq>
    +
    template <class Seq>
     struct holder
     {
         typename traits::deduce_sequence<Seq>::type element;
    @@ -84,7 +85,7 @@
     }
     

    - + See also

    diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html index dbf93333..a54a64a9 100644 --- a/doc/html/fusion/support/is_sequence.html +++ b/doc/html/fusion/support/is_sequence.html @@ -3,10 +3,10 @@ is_sequence - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +

    - + Description

    @@ -37,11 +41,10 @@ conforming sequences.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct is_sequence
    @@ -51,7 +54,7 @@
     }
     

    - + Parameters

    @@ -61,47 +64,34 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    T -

    -
    -

    +

    Any type -

    -
    -

    +

    The type to query. -

    -

    - + Expression Semantics

    -
    -typedef traits::is_sequence<T>::type c;
    +
    typedef traits::is_sequence<T>::type c;
     

    Return type: An MPL @@ -114,19 +104,17 @@ 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> > ));
    diff --git a/doc/html/fusion/support/is_view.html b/doc/html/fusion/support/is_view.html
    index 516e6129..75bb31b0 100644
    --- a/doc/html/fusion/support/is_view.html
    +++ b/doc/html/fusion/support/is_view.html
    @@ -3,10 +3,10 @@
     
     is_view
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    - + Description

    @@ -40,11 +44,10 @@ specialized to accomodate clients providing Fusion conforming views.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template <typename T>
         struct is_view
    @@ -54,7 +57,7 @@
     }
     

    - + Parameters

    @@ -64,46 +67,33 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    T -

    -
    -

    +

    Any type -

    -
    -

    +

    The type to query. -

    -

    - + Expression Semantics

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

    Return type: An MPL @@ -116,19 +106,17 @@ 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::_
    diff --git a/doc/html/fusion/support/pair.html b/doc/html/fusion/support/pair.html
    index b6fdb969..91f9088b 100644
    --- a/doc/html/fusion/support/pair.html
    +++ b/doc/html/fusion/support/pair.html
    @@ -3,10 +3,10 @@
     
     pair
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    +

    +pair +

    +
    +

    - + Description

    @@ -37,11 +41,10 @@ for example.

    - + Synopsis

    -
    -template <typename First, typename Second>
    +
    template <typename First, typename Second>
     struct pair;
     
     namespace result_of
    @@ -61,7 +64,7 @@
     make_pair(Second const &);
     

    - + Template parameters

    @@ -70,41 +73,29 @@ - - + +

    - - + +

    - - + +

    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    First -

    -
    -

    +

    The first type. This is purely a type. No data is held. -

    -
    -

    +

    Second -

    -
    -

    +

    The second type. This contains data. -

    -
    @@ -140,7 +131,7 @@

    - + Expression Semantics

    @@ -149,190 +140,136 @@ - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    - - + +

    -

    +

    Expression -

    -
    -

    +

    Semantics -

    -
    -

    +

    P::first_type -

    -
    -

    +

    The type of the first template parameter, F, equivalent to result_of::first<P>::type. -

    -
    -

    +

    P::second_type -

    -
    -

    +

    The type of the second template parameter, S, equivalent to result_of::second<P>::type. -

    -
    -

    +

    P() -

    -
    -

    +

    Default construction. -

    -
    -

    +

    P(s) -

    -
    -

    +

    Construct a pair given value for the second type, s. -

    -
    -

    +

    P(p2) -

    -
    -

    +

    Copy constructs a pair from another pair, p2. -

    -
    -

    +

    p.second -

    -
    -

    +

    Get the data from p1. -

    -
    -

    +

    p = p2 -

    -
    -

    +

    Assigns a pair, p1, from another pair, p2. -

    -
    -

    +

    make_pair<F>(s) -

    -
    -

    +

    Make a pair given the first type, F, and a value for the second type, s. The second type assumes the type of s -

    -
    -

    +

    o << p -

    -
    -

    +

    Output p to output stream, o. -

    -
    -

    +

    i >> p -

    -
    -

    +

    Input p from input stream, i. -

    -
    -

    +

    p == p2 -

    -
    -

    +

    Tests two pairs for equality. -

    -
    -

    +

    p != p2 -

    -
    -

    +

    Tests two pairs for inequality. -

    -

    - + Header

    -
    -#include <boost/fusion/support/pair.hpp>
    +
    #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..fa39c0c0 100644
    --- a/doc/html/fusion/support/tag_of.html
    +++ b/doc/html/fusion/support/tag_of.html
    @@ -3,10 +3,10 @@
     
     tag_of
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    +

    +tag_of +

    +
    +

    - + Description

    @@ -40,11 +44,10 @@ conforming sequences.

    - + Synopsis

    -
    -namespace traits
    +
    namespace traits
     {
         template<typename Sequence>
         struct tag_of
    @@ -54,7 +57,7 @@
     }
     

    - + Parameters

    @@ -64,46 +67,33 @@ - - + - + +

    - - + - + +

    -

    +

    Parameter -

    -
    -

    +

    Requirement -

    -
    -

    +

    Description -

    -
    -

    +

    T -

    -
    -

    +

    Any type -

    -
    -

    +

    The type to query. -

    -

    - + Expression Semantics

    -
    -typedef traits::tag_of<T>::type tag;
    +
    typedef traits::tag_of<T>::type tag;
     

    Return type: Any type. @@ -113,19 +103,17 @@ 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<> >::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;
    diff --git a/doc/html/fusion/tuple.html b/doc/html/fusion/tuple.html
    index cfa62786..9abb1754 100644
    --- a/doc/html/fusion/tuple.html
    +++ b/doc/html/fusion/tuple.html
    @@ -3,10 +3,10 @@
     
     Tuple
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,8 +23,12 @@
     PrevUpHomeNext
     
    - +
    +

    +Tuple +

    +
    +
    Class template tuple
    diff --git a/doc/html/fusion/tuple/class_template_tuple.html b/doc/html/fusion/tuple/class_template_tuple.html index 5a5ea9ff..210e3abd 100644 --- a/doc/html/fusion/tuple/class_template_tuple.html +++ b/doc/html/fusion/tuple/class_template_tuple.html @@ -3,10 +3,10 @@ Class template tuple - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    Construction
    Tuple @@ -48,11 +52,10 @@ 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..dcb36b49 100644
    --- a/doc/html/fusion/tuple/class_template_tuple/construction.html
    +++ b/doc/html/fusion/tuple/class_template_tuple/construction.html
    @@ -3,10 +3,10 @@
     
     Construction
     
    -
    -
    +
    +
     
    -
    +
     
     
    @@ -24,10 +24,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +
    - + Description

    @@ -38,7 +42,7 @@ in this section.

    - + Specification
    @@ -69,8 +73,7 @@

    -
    -tuple();
    +
    tuple();
     

    Requirements: Each Ti @@ -80,8 +83,7 @@ Semantics: Default initializes each element of the tuple.

    -
    -tuple(P1,P2,...,PN);
    +
    tuple(P1,P2,...,PN);
     

    Requirements: Each Pi @@ -91,8 +93,7 @@ Semantics: Copy initializes each element with the corresponding parameter.

    -
    -tuple(const tuple& t);
    +
    tuple(const tuple& t);
     

    Requirements: Each Ti @@ -103,8 +104,7 @@ 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);
     

    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..42ea67b2 100644 --- a/doc/html/fusion/tuple/class_template_tuple/element_access.html +++ b/doc/html/fusion/tuple/class_template_tuple/element_access.html @@ -4,10 +4,10 @@ Element access - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext

    -

    + + access +

    +
    +
    - + Description

    @@ -40,11 +44,10 @@ 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);
     

    @@ -62,8 +65,7 @@

    Returns: A reference to the Ith element of T.

    -
    -template<int I, typename T>
    +
    template<int I, typename T>
     PJ get(T const& 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..03009096 100644 --- a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html +++ b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html @@ -4,10 +4,10 @@ Relational operators - - + + - @@ -25,12 +25,16 @@ PrevUpHomeNext

    -

    + + operators +

    +
    +
    - + Description

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

    - + Specification
    @@ -69,8 +73,7 @@

    -
    -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,
    @@ -95,8 +98,7 @@
               == 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,
    @@ -116,8 +118,7 @@
               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,
    @@ -135,8 +136,7 @@
     

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

    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,
    @@ -174,8 +173,7 @@
               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,
    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..6ca825e5 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,10 +4,10 @@
     Tuple
             creation functions
     
    -
    -
    +
    +
     
    -
    +
     
     
    @@ -25,12 +25,16 @@
     PrevUpHomeNext
     
    -

    + + creation functions +

    +
    +
    - + Description

    @@ -40,11 +44,10 @@ 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);
     

    @@ -56,8 +59,7 @@

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

    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..144ae7bd 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,10 +4,10 @@ Tuple helper classes - - + + - @@ -26,12 +26,16 @@ PrevUpHomeNext

    -

    + + helper classes +

    +
    +
    - + Description

    @@ -40,11 +44,10 @@ tuple size, and the element types.

    - + Specification
    -
    -tuple_size<T>::value
    +
    tuple_size<T>::value
     

    Requires: T @@ -58,8 +61,7 @@ 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 diff --git a/doc/html/fusion/tuple/pairs.html b/doc/html/fusion/tuple/pairs.html index 8c91a35f..e4c9f43d 100644 --- a/doc/html/fusion/tuple/pairs.html +++ b/doc/html/fusion/tuple/pairs.html @@ -3,10 +3,10 @@ Pairs - - + + - @@ -24,10 +24,14 @@ PrevUpHomeNext

    - +
    +

    +View +

    +
    +
    single_view
    filter_view
    @@ -44,11 +48,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..9e72031b 100644 --- a/doc/html/fusion/view/filter_view.html +++ b/doc/html/fusion/view/filter_view.html @@ -3,10 +3,10 @@ filter_view - - + + - + @@ -23,10 +23,14 @@ PrevUpHomeNext
    - +
    + +
    +

    - + Description

    @@ -37,23 +41,21 @@ 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

    @@ -63,61 +65,43 @@ - - + - + +

    - - + - +

    + - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    Sequence -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    -

    +

    Pred -

    -
    -

    +

    Unary Metafunction returning an mpl::bool_ -

    -
    -

    -

    -

    +

    - + Model of

    • - + Expression Semantics

      @@ -157,68 +141,51 @@ - -

      +

      Expression -

      - - -

      +

      +

      Semantics -

      - +

      - -

      +

      F(s) -

      - - -

      +

      +

      Creates a filter_view given a sequence, s. -

      - +

      - -

      +

      F(f) -

      - - -

      +

      +

      Copy constructs a filter_view from another filter_view, f. -

      - +

      - -

      +

      f = f2 -

      - - -

      +

      +

      Assigns to a filter_view, f, from another filter_view, f2. -

      - +

    - + Example

    -
    -using boost::mpl::_;
    +
    using boost::mpl::_;
     using boost::mpl::not_;
     using boost::is_class;
     
    diff --git a/doc/html/fusion/view/iterator_range.html b/doc/html/fusion/view/iterator_range.html
    index 9487c625..3b882b27 100644
    --- a/doc/html/fusion/view/iterator_range.html
    +++ b/doc/html/fusion/view/iterator_range.html
    @@ -3,10 +3,10 @@
     
     iterator_range
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    - + Description

    @@ -34,23 +38,21 @@ 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

    @@ -60,59 +62,41 @@ - - + - + +

    - - + - +

    + - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    First -

    -
    -

    +

    A fusion Iterator -

    -
    -

    -

    -

    +

    -

    +

    Last -

    -
    -

    +

    A fusion Iterator -

    -
    -

    -

    -

    +

    - + Model of

    • @@ -149,7 +133,7 @@

    - + Expression Semantics

    @@ -165,70 +149,53 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    IR(f, l) -

    - - -

    +

    +

    Creates an iterator_range given iterators, f and l. -

    - +

    - -

    +

    IR(ir) -

    - - -

    +

    +

    Copy constructs an iterator_range from another iterator_range, ir. -

    - +

    - -

    +

    ir = ir2 -

    - - -

    +

    +

    Assigns to a iterator_range, ir, from another iterator_range, ir2. -

    - +

    - + Example

    -
    -char const* s = "Ruby";
    +
    char const* s = "Ruby";
     typedef vector<int, char, double, char const*> vector_type;
     vector_type vec(1, 'x', 3.3, s);
     
    diff --git a/doc/html/fusion/view/joint_view.html b/doc/html/fusion/view/joint_view.html
    index 2c60599c..42139fda 100644
    --- a/doc/html/fusion/view/joint_view.html
    +++ b/doc/html/fusion/view/joint_view.html
    @@ -3,10 +3,10 @@
     
     joint_view
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    - + Description

    @@ -34,23 +38,21 @@ 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

    @@ -60,63 +62,45 @@ - - + - + +

    - - + - +

    + - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    Sequence1 -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    -

    +

    Sequence2 -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    - + Model of

    • - + Expression Semantics

      @@ -159,69 +143,52 @@ - -

      +

      Expression -

      - - -

      +

      +

      Semantics -

      - +

      - -

      +

      JV(s1, s2) -

      - - -

      +

      +

      Creates a joint_view given sequences, s1 and s2. -

      - +

      - -

      +

      JV(jv) -

      - - -

      +

      +

      Copy constructs a joint_view from another joint_view, jv. -

      - +

      - -

      +

      jv = jv2 -

      - - -

      +

      +

      Assigns to a joint_view, jv, from another joint_view, jv2. -

      - +

    - + Example

    -
    -vector<int, char> v1(3, 'x');
    +
    vector<int, char> v1(3, 'x');
     vector<std::string, int> v2("hello", 123);
     joint_view<
         vector<int, char>
    diff --git a/doc/html/fusion/view/reverse_view.html b/doc/html/fusion/view/reverse_view.html
    index 93260b61..d9e32c9e 100644
    --- a/doc/html/fusion/view/reverse_view.html
    +++ b/doc/html/fusion/view/reverse_view.html
    @@ -3,10 +3,10 @@
     
     reverse_view
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,31 +23,33 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    reverse_view presents a reversed view of underlying sequence. The first element will be its last and the last element will be its first.

    - + Header

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

    @@ -57,43 +59,31 @@ - - + - + +

    - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    Sequence -

    -
    -

    +

    A Bidirectional Sequence -

    -
    -

    -

    -

    +

    - + Model of

    • - + Expression Semantics

      @@ -134,68 +124,51 @@ - -

      +

      Expression -

      - - -

      +

      +

      Semantics -

      - +

      - -

      +

      RV(s) -

      - - -

      +

      +

      Creates a unary reverse_view given sequence, s. -

      - +

      - -

      +

      RV(rv) -

      - - -

      +

      +

      Copy constructs a reverse_view from another reverse_view, rv. -

      - +

      - -

      +

      rv = rv2 -

      - - -

      +

      +

      Assigns to a reverse_view, rv, from another reverse_view, rv2. -

      - +

    - + Example

    -
    -typedef vector<int, short, double> vector_type;
    +
    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..45ba7877 100644
    --- a/doc/html/fusion/view/single_view.html
    +++ b/doc/html/fusion/view/single_view.html
    @@ -3,10 +3,10 @@
     
     single_view
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,30 +23,32 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    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

    @@ -56,41 +58,29 @@ - - + - + +

    - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    T -

    -
    -

    +

    Any type -

    -
    -

    -

    -

    +

    - + Model of

    • - + Expression Semantics

      @@ -129,68 +119,51 @@ - -

      +

      Expression -

      - - -

      +

      +

      Semantics -

      - +

      - -

      +

      S(x) -

      - - -

      +

      +

      Creates a single_view from x. -

      - +

      - -

      +

      S(s) -

      - - -

      +

      +

      Copy constructs a single_view from another single_view, s. -

      - +

      - -

      +

      s = s2 -

      - - -

      +

      +

      Assigns to a single_view, s, from another single_view, s2. -

      - +

    - + Example

    -
    -single_view<int> view(3);
    +
    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..4b4c8397 100644 --- a/doc/html/fusion/view/transform_view.html +++ b/doc/html/fusion/view/transform_view.html @@ -3,10 +3,10 @@ transform_view - - + + - + @@ -23,8 +23,12 @@ PrevUpHomeNext
    - +
    + +
    +

    The unary version of transform_view presents a view of its underlying sequence given a unary function object @@ -35,33 +39,30 @@ 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

    -
    -template <typename Sequence, typename F1>
    +
    template <typename Sequence, typename F1>
     struct transform_view;
     

    Binary Version

    -
    -template <typename Sequence1, typename Sequence2, typename F2>
    +
    template <typename Sequence1, typename Sequence2, typename F2>
     struct transform_view;
     

    - + Template parameters

    @@ -71,119 +72,83 @@ - - + - + +

    - - + - +

    + - - + - +

    + - - + - +

    + - - + - +

    + - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    Sequence -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    -

    +

    Sequence1 -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    -

    +

    Sequence2 -

    -
    -

    +

    A Forward Sequence -

    -
    -

    -

    -

    +

    -

    +

    F1 -

    -
    -

    +

    A unary function object or function pointer. boost::result_of<F1(E)>::type is the return type of an instance of F1 when called with a value of each element type E in the input sequence. -

    -
    -

    -

    -

    +

    -

    +

    F2 -

    -
    -

    +

    A binary function object or function pointer. boost::result_of<F2(E1, E2)>::type is the return type of an instance of F2 when called with a value of each corresponding pair of element type E1 and E2 in the input sequences. -

    -
    -

    -

    -

    +

    - + Model of

    • @@ -242,7 +207,7 @@

    - + Expression Semantics

    @@ -263,85 +228,64 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    UTV(s, f1) -

    - - -

    +

    +

    Creates a unary transform_view given sequence, s and unary function object or function pointer, f1. -

    - +

    - -

    +

    BTV(s1, s2, f2) -

    - - -

    +

    +

    Creates a binary transform_view given sequences, s1 and s2 and binary function object or function pointer, f2. -

    - +

    - -

    +

    TV(tv) -

    - - -

    +

    +

    Copy constructs a transform_view from another transform_view, tv. -

    - +

    - -

    +

    tv = tv2 -

    - - -

    +

    +

    Assigns to a transform_view, tv, from another transform_view, tv2. -

    - +

    - + Example

    -
    -struct square
    +
    struct square
     {
         template<typename Sig>
         struct result;
    diff --git a/doc/html/fusion/view/zip_view.html b/doc/html/fusion/view/zip_view.html
    index c23468cc..3b7b0a50 100644
    --- a/doc/html/fusion/view/zip_view.html
    +++ b/doc/html/fusion/view/zip_view.html
    @@ -3,10 +3,10 @@
     
     zip_view
     
    -
    -
    +
    +
     
    -
    +
     
     
     
    @@ -23,10 +23,14 @@
     PrevUpHomeNext
     
    - +
    + +
    +

    - + Description

    @@ -37,23 +41,21 @@ 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

    @@ -63,43 +65,31 @@ - - + - + +

    - - + - +

    +
    -

    +

    Parameter -

    -
    -

    +

    Description -

    -
    -

    +

    Default -

    -
    -

    +

    Sequences -

    -
    -

    +

    A Forward Sequence of references to other Fusion _sequence_s -

    -
    -

    -

    -

    +

    - + Model of

    • @@ -132,7 +122,7 @@

    - + Expression Semantics

    @@ -147,68 +137,51 @@ - -

    +

    Expression -

    - - -

    +

    +

    Semantics -

    - +

    - -

    +

    ZV(s) -

    - - -

    +

    +

    Creates a zip_view given a sequence of references to the component _sequence_s. -

    - +

    - -

    +

    ZV(zv1) -

    - - -

    +

    +

    Copy constructs a zip_view from another zip_view, zv. -

    - +

    - -

    +

    zv1 = zv2 -

    - - -

    +

    +

    Assigns to a zip_view, zv, from another zip_view, zv2. -

    - +

    - + Example

    -
    -typedef vector<int,int> vec1;
    +
    typedef vector<int,int> vec1;
     typedef vector<char,char> vec2;
     vec1 v1(1,2);
     vec2 v2('a','b');
    diff --git a/doc/html/index.html b/doc/html/index.html
    index 6d3d1f9a..befc55dd 100644
    --- a/doc/html/index.html
    +++ b/doc/html/index.html
    @@ -3,8 +3,8 @@
     
     Chapter 1. Fusion 2.0
     
    -
    -
    +
    +
     
     
     
    @@ -19,7 +19,8 @@
     
    Next
    -
    +
    +

    Chapter 1. Fusion 2.0

    @@ -33,13 +34,13 @@

    -
    -

    +

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

    -
    -
    +

    +
    +
    +
    - +

    Last revised: July 21, 2008 at 07:17:27 GMT

    Last revised: June 13, 2009 at 06:22:11 GMT


    diff --git a/example/cookbook/do_the_bind.cpp b/example/cookbook/do_the_bind.cpp index 33772383..ac5baee4 100644 --- a/example/cookbook/do_the_bind.cpp +++ b/example/cookbook/do_the_bind.cpp @@ -22,23 +22,29 @@ form. ==============================================================================*/ + #include -#include -#include +#include #include #include -#include #include -#include +#include #include #include +#include +#include + +#include +#include #include #include #include #include +#include +#include #include #include @@ -105,6 +111,7 @@ namespace impl // returned by bind template class fused_bound_function { + // Transform arguments to be held by value typedef typename traits::deduce_sequence::type bound_args; bound_args fsq_bind_args; @@ -144,19 +151,40 @@ namespace impl }; + // Find the number of placeholders in use + struct n_placeholders + { + struct fold_op + { + template struct result; + template struct result< S(A &,B &) > + : mpl::max { }; + }; + struct filter_pred + { + template struct apply : is_placeholder { }; + }; + + template + struct apply + : mpl::next< typename result_of::fold< + fusion::filter_view, mpl::int_<-1>, fold_op + >::type>::type + { }; + }; + // Fused implementation of the 'bind' function struct fused_binder { template struct result; - template + template ::value> struct result_impl { - // We have to transform the arguments so they are held by-value - // in the returned function. - typedef fusion::unfused_generic< - fused_bound_function > type; + typedef boost::forward_adapter,!Placeholders>,Placeholders> type; }; template @@ -168,14 +196,16 @@ namespace impl inline typename result_impl< BindArgs >::type operator()(BindArgs & bind_args) const { - return typename result< void(BindArgs) >::type(bind_args); + return typename result< void(BindArgs) >::type( + fusion::unfused< fused_bound_function, + ! n_placeholders::apply::value >(bind_args) ); } }; - // The binder's unfused type. We use unfused_rvalue_args to make that - // thing more similar to Boost.Bind. Because of that we have to use + // The binder's unfused type. We use lightweght_forward_adapter to make + // that thing more similar to Boost.Bind. Because of that we have to use // Boost.Ref (below in the sample code) - typedef fusion::unfused_rvalue_args binder; + typedef boost::lightweight_forward_adapter< fusion::unfused > binder; } // Placeholder globals @@ -225,10 +255,11 @@ int main() using boost::ref; int errors = 0; + errors += !( bind(f)() == 0); errors += !( bind(f,"Hi")() == 1); errors += !( bind(f,_1_)("there.") == 1); - errors += !( bind(f,"The answer is",_1_)(value) == 2); + errors += !( bind(f,"The answer is",_1_)(12) == 2); errors += !( bind(f,_1_,ref(value))("Really?") == 2); errors += !( bind(f,_1_,_2_)("Dunno. If there is an answer, it's",value) == 2); diff --git a/example/performance/functional.cpp b/example/performance/functional.cpp index e16d764d..8f7b3ecd 100644 --- a/example/performance/functional.cpp +++ b/example/performance/functional.cpp @@ -10,10 +10,12 @@ #include #include #include -#include -#include +#include #include +#include +#include + #include #include #include @@ -265,13 +267,13 @@ int main() total += res; } { - boost::fusion::unfused_rvalue_args f; - std::cout << "unfused_rvalue_args " << call_unfused(f,res) << std::endl; + boost::lightweight_forward_adapter< boost::fusion::unfused > f; + std::cout << "lightweight_forward_adapter< unfused > " << call_unfused(f,res) << std::endl; total += res; } { - boost::fusion::unfused_generic f; - std::cout << "unfused_generic " << call_unfused(f,res) << std::endl; + boost::forward_adapter< boost::fusion::unfused > f; + std::cout << "forward_adapter< unfused > " << call_unfused(f,res) << std::endl; total += res; } std::cout << std::endl << "Fused adapters:" << std::endl; @@ -291,13 +293,13 @@ int main() total += res; } { - boost::fusion::unfused_rvalue_args< boost::fusion::fused_function_object > f; - std::cout << "unfused_rvalue_args > " << call_unfused(f,res) << std::endl; + boost::lightweight_forward_adapter< boost::fusion::unfused< boost::fusion::fused_function_object > > f; + std::cout << "lightweight_forward_adapter< unfused > >" << call_unfused(f,res) << std::endl; total += res; } { - boost::fusion::unfused_generic< boost::fusion::fused_function_object > f; - std::cout << "unfused_generic > " << call_unfused(f,res) << std::endl; + boost::forward_adapter< boost::fusion::unfused< boost::fusion::fused_function_object > > f; + std::cout << "forward_adapter< unfused > > " << call_unfused(f,res) << std::endl; total += res; } diff --git a/test/Jamfile b/test/Jamfile index 12407035..76e9d1da 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -112,16 +112,12 @@ import testing ; [ run functional/fused.cpp : : : : ] [ run functional/fused_function_object.cpp : : : : ] [ run functional/fused_procedure.cpp : : : : ] - [ run functional/unfused_generic.cpp : : : : ] - [ run functional/unfused_lvalue_args.cpp : : : : ] - [ run functional/unfused_rvalue_args.cpp : : : : ] + [ run functional/unfused.cpp : : : : ] [ run functional/unfused_typed.cpp : : : : ] [ run functional/make_fused.cpp : : : : ] [ run functional/make_fused_function_object.cpp : : : : ] [ run functional/make_fused_procedure.cpp : : : : ] - [ run functional/make_unfused_generic.cpp : : : : ] - [ run functional/make_unfused_lvalue_args.cpp : : : : ] - [ run functional/make_unfused_rvalue_args.cpp : : : : ] + [ run functional/make_unfused.cpp : : : : ] [ run functional/invoke.cpp : : : : ] [ run functional/invoke_function_object.cpp : : : : ] [ run functional/invoke_procedure.cpp : : : : ] diff --git a/test/algorithm/all.cpp b/test/algorithm/all.cpp index 47c65e50..a4c7f32c 100644 --- a/test/algorithm/all.cpp +++ b/test/algorithm/all.cpp @@ -33,12 +33,24 @@ namespace int main() { + { + boost::fusion::vector<> t; + BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 < 4))); + BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 > 0))); + } + { boost::fusion::vector t(1, 2, 3.3); BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 < 4))); BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 > 0))); } + { + boost::fusion::vector t(1, 2, 3.3, 2); + BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 < 4))); + BOOST_TEST((boost::fusion::all(t, boost::lambda::_1 > 0))); + } + { boost::fusion::vector t(1, 2, 3.3); BOOST_TEST((!boost::fusion::all(t, boost::lambda::_1 == 1))); diff --git a/test/compile_time/Makefile b/test/compile_time/Makefile new file mode 100644 index 00000000..4887cf24 --- /dev/null +++ b/test/compile_time/Makefile @@ -0,0 +1,29 @@ +#============================================================================= +# Copyright (c) 2008 Dan Marsden +# +# Use modification and distribution are subject to 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). +#============================================================================== + +CXX=g++ +CXXFLAGS=-I$(BOOST_ROOT) + +TEST_SRCS=\ + vector_construction.cpp\ + vector_iteration.cpp\ + vector_intrinsic.cpp\ + fold.cpp\ + transform.cpp + +TEST_OBJS=$(TEST_SRCS:.cpp=.o) + +TEST_TARGETS=$(TEST_SRCS:.cpp=.test) + +all: $(TEST_TARGETS) + +%.test : %.cpp + time $(CXX) $(CXXFLAGS) $< -o $@ + +clean: + rm -f $(TEST_TARGETS) $(TEST_OBJS) diff --git a/test/compile_time/driver.hpp b/test/compile_time/driver.hpp new file mode 100644 index 00000000..8d06e6de --- /dev/null +++ b/test/compile_time/driver.hpp @@ -0,0 +1,75 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#if !defined(BOOST_FUSION_COMPILE_TIME_DRIVER) +#define BOOST_FUSION_COMPILE_TIME_DRIVER + +int main() +{ + test<0>(); + test<1>(); + test<2>(); + test<3>(); + test<4>(); + + test<5>(); + test<6>(); + test<7>(); + test<8>(); + test<9>(); + + test<10>(); + test<11>(); + test<12>(); + test<13>(); + test<14>(); + + test<15>(); + test<16>(); + test<17>(); + test<18>(); + test<19>(); + + test<20>(); + test<21>(); + test<22>(); + test<23>(); + test<24>(); + + test<25>(); + test<26>(); + test<27>(); + test<28>(); + test<29>(); + + test<30>(); + test<31>(); + test<32>(); + test<33>(); + test<34>(); + + test<35>(); + test<36>(); + test<37>(); + test<38>(); + test<39>(); + + test<40>(); + test<41>(); + test<42>(); + test<43>(); + test<44>(); + + test<45>(); + test<46>(); + test<47>(); + test<48>(); + test<49>(); +} + +#endif diff --git a/test/compile_time/fold.cpp b/test/compile_time/fold.cpp new file mode 100644 index 00000000..fa2e8f6c --- /dev/null +++ b/test/compile_time/fold.cpp @@ -0,0 +1,42 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + {}; + + struct f + { + typedef int result_type; + + template + int operator()(distinct const& d, int state) const + { + return state + n; + } + }; + + template + void test() + { + fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; + + fusion::fold(v, 0, f()); + } +} + +#include "./driver.hpp" diff --git a/test/compile_time/transform.cpp b/test/compile_time/transform.cpp new file mode 100644 index 00000000..04ad8ab2 --- /dev/null +++ b/test/compile_time/transform.cpp @@ -0,0 +1,55 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include +#include + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + { + static const int value = n; + }; + + struct f + { + typedef int result_type; + + template + result_type operator()(T const& t) const + { + return T::value; + } + }; + + struct touch + { + template + void operator()(T const&) const + {} + }; + + template + void test() + { + fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; + + // We're testing transform really + // for_each call is to force iteration through the lazy + // transform, otherwise very little will happen. + fusion::for_each(fusion::transform(v, f()), touch()); + } +} + +#include "./driver.hpp" diff --git a/test/compile_time/vector_construction.cpp b/test/compile_time/vector_construction.cpp new file mode 100644 index 00000000..18f9f16b --- /dev/null +++ b/test/compile_time/vector_construction.cpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + {}; + + template + void test() + { + fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; + } +} + +#include "./driver.hpp" diff --git a/test/compile_time/vector_intrinsic.cpp b/test/compile_time/vector_intrinsic.cpp new file mode 100644 index 00000000..3fa3a77e --- /dev/null +++ b/test/compile_time/vector_intrinsic.cpp @@ -0,0 +1,59 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + {}; + + template + void test() + { + typedef fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v_type; + + v_type v; + + fusion::at_c<0>(v); + fusion::at_c<1>(v); + fusion::at_c<2>(v); + fusion::at_c<3>(v); + fusion::at_c<4>(v); + + fusion::at_c<5>(v); + fusion::at_c<6>(v); + fusion::at_c<7>(v); + fusion::at_c<8>(v); + fusion::at_c<9>(v); + + typedef typename fusion::result_of::value_at_c::type va0; + typedef typename fusion::result_of::value_at_c::type va1; + typedef typename fusion::result_of::value_at_c::type va2; + typedef typename fusion::result_of::value_at_c::type va3; + typedef typename fusion::result_of::value_at_c::type va4; + + typedef typename fusion::result_of::value_at_c::type va5; + typedef typename fusion::result_of::value_at_c::type va6; + typedef typename fusion::result_of::value_at_c::type va7; + typedef typename fusion::result_of::value_at_c::type va8; + typedef typename fusion::result_of::value_at_c::type va9; + + fusion::begin(v); + fusion::end(v); + fusion::size(v); + } +} + +#include "./driver.hpp" diff --git a/test/compile_time/vector_iteration.cpp b/test/compile_time/vector_iteration.cpp new file mode 100644 index 00000000..ee63bee5 --- /dev/null +++ b/test/compile_time/vector_iteration.cpp @@ -0,0 +1,38 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + {}; + + struct null_op + { + template + void operator()(T const& t) const + {} + }; + + template + void test() + { + fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; + + fusion::for_each(v, null_op()); + } +} + +#include "./driver.hpp" diff --git a/test/functional/invoke.cpp b/test/functional/invoke.cpp index 68c59e4b..460e1e29 100644 --- a/test/functional/invoke.cpp +++ b/test/functional/invoke.cpp @@ -340,7 +340,7 @@ void result_type_tests() using boost::is_same; BOOST_TEST(( is_same< - fusion::result_of::invoke::type, int + fusion::result_of::invoke >::type, int >::value )); // disabled until boost::result_of supports it // BOOST_TEST(( is_same< diff --git a/test/functional/make_unfused.cpp b/test/functional/make_unfused.cpp new file mode 100644 index 00000000..a6462eb1 --- /dev/null +++ b/test/functional/make_unfused.cpp @@ -0,0 +1,126 @@ +/*============================================================================= + Copyright (c) 2006-2007 Tobias Schwinger + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include + +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +using boost::noncopyable; +typedef mpl::true_ no_nullary_call; + +using boost::ref; +using boost::cref; + +template +struct test_func + : Base +{ + template + struct result; + + template + struct result< Self(Seq &) > + : mpl::if_< mpl::and_< fusion::result_of::empty, RemoveNullary >, + boost::blank, mpl::identity >::type + { }; + + template + long operator()(Seq const & seq) const + { + long state = 0; + return fusion::fold(seq, state, fold_op()); + } + + template < typename Seq > + long operator()(Seq const & seq) + { + long state = 100; + return fusion::fold(seq, state, fold_op()); + } + + private: + + struct fold_op + { + typedef long result_type; + + template + long operator()(T & elem, long value) const + { + elem += sizeof(T); + return value + elem; + } + }; +}; + +template +inline T const & const_(T const & t) +{ + return t; +} + +int main() +{ + test_func<> f; + test_func f_nc; + + fusion::result_of::make_unfused< test_func<> >::type unfused_func = + fusion::make_unfused(f); + + fusion::result_of::make_unfused< boost::reference_wrapper< + test_func > >::type unfused_func_ref = + fusion::make_unfused(ref(f_nc)); + + fusion::result_of::make_unfused< boost::reference_wrapper< + test_func const> >::type unfused_func_c_ref = + fusion::make_unfused(cref(f_nc)); + + BOOST_TEST(unfused_func() == 100); + BOOST_TEST(const_(unfused_func)() == 0); + BOOST_TEST(unfused_func_ref() == 100); + BOOST_TEST(unfused_func_c_ref() == 0); + + long lv1 = 2; int lv2 = 3l; char lv3 = '\007'; + long expected; + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func(lv1,lv2,lv3) == 100 + expected); + BOOST_TEST(lv1 == 2+1*sizeof(lv1) && lv2 == 3+1*sizeof(lv2) && lv3 == 7+1*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(const_(unfused_func)(lv1,lv2,lv3) == 0 + expected); + BOOST_TEST(lv1 == 2+2*sizeof(lv1) && lv2 == 3+2*sizeof(lv2) && lv3 == 7+2*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_ref(lv1,lv2,lv3) == 100 + expected); + BOOST_TEST(lv1 == 2+3*sizeof(lv1) && lv2 == 3+3*sizeof(lv2) && lv3 == 7+3*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_c_ref(lv1,lv2,lv3) == 0 + expected); + BOOST_TEST(lv1 == 2+4*sizeof(lv1) && lv2 == 3+4*sizeof(lv2) && lv3 == 7+4*sizeof(lv3)); + + return boost::report_errors(); +} + diff --git a/test/functional/unfused.cpp b/test/functional/unfused.cpp new file mode 100644 index 00000000..0f69be9c --- /dev/null +++ b/test/functional/unfused.cpp @@ -0,0 +1,119 @@ +/*============================================================================= + Copyright (c) 2006-2007 Tobias Schwinger + + Use modification and distribution are subject to 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). +==============================================================================*/ + +#include +#include + +#include +#include + +#include + +#include + +#include +#include + +namespace fusion = boost::fusion; +namespace mpl = boost::mpl; + +using boost::noncopyable; + +template +struct test_func + : Base +{ + template + struct result; + + template + struct result< Self(Seq) > + : mpl::identity + { }; + + template + long operator()(Seq const & seq) const + { + long state = 0; + return fusion::fold(seq, state, fold_op()); + } + + template + long operator()(Seq const & seq) + { + long state = 100; + return fusion::fold(seq, state, fold_op()); + } + + private: + + struct fold_op + { + typedef long result_type; + + template + long operator()(T & elem, long value) const + { + elem += sizeof(T); + return value + elem; + } + }; +}; + +void result_type_tests() +{ + using boost::is_same; + + typedef fusion::unfused< test_func<> > t; + BOOST_TEST(( is_same< boost::result_of< t () >::type, long >::value )); + BOOST_TEST(( is_same< boost::result_of< t (int) >::type, long >::value )); +} + +int main() +{ + result_type_tests(); + + test_func f; + fusion::unfused< test_func<> > unfused_func; + fusion::unfused< test_func & > unfused_func_ref(f); + fusion::unfused< test_func<> const > unfused_func_c; + fusion::unfused< test_func<> > const unfused_func_c2; + fusion::unfused< test_func const & > unfused_func_c_ref(f); + + BOOST_TEST(unfused_func() == 100); + BOOST_TEST(unfused_func_ref() == 100); + BOOST_TEST(unfused_func_c() == 0); + BOOST_TEST(unfused_func_c2() == 0); + BOOST_TEST(unfused_func_c_ref() == 0); + + long lv1 = 2; int lv2 = 3l; char lv3 = '\007'; + long expected; + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func(lv1,lv2,lv3) == 100 + expected); + BOOST_TEST(lv1 == 2+1*sizeof(lv1) && lv2 == 3+1*sizeof(lv2) && lv3 == 7+1*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_ref(lv1,lv2,lv3) == 100 + expected); + BOOST_TEST(lv1 == 2+2*sizeof(lv1) && lv2 == 3+2*sizeof(lv2) && lv3 == 7+2*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_c(lv1,lv2,lv3) == 0 + expected); + BOOST_TEST(lv1 == 2+3*sizeof(lv1) && lv2 == 3+3*sizeof(lv2) && lv3 == 7+3*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_c2(lv1,lv2,lv3) == 0 + expected); + BOOST_TEST(lv1 == 2+4*sizeof(lv1) && lv2 == 3+4*sizeof(lv2) && lv3 == 7+4*sizeof(lv3)); + + expected = lv1+sizeof(lv1) + lv2+sizeof(lv2) + lv3+sizeof(lv3); + BOOST_TEST(unfused_func_c_ref(lv1,lv2,lv3) == 0 + expected); + BOOST_TEST(lv1 == 2+5*sizeof(lv1) && lv2 == 3+5*sizeof(lv2) && lv3 == 7+5*sizeof(lv3)); + + return boost::report_errors(); +} + diff --git a/test/sequence/as_list.cpp b/test/sequence/as_list.cpp index 52846d9d..cf282741 100644 --- a/test/sequence/as_list.cpp +++ b/test/sequence/as_list.cpp @@ -26,7 +26,7 @@ main() std::cout << tuple_delimiter(", "); { - vector0 empty; + vector0<> empty; std::cout << as_list(make_vector(1, 1.23, "harru")) << std::endl; std::cout << as_list(push_back(empty, 999)) << std::endl; diff --git a/test/sequence/as_map.cpp b/test/sequence/as_map.cpp index 32e3a420..6c18a3cc 100644 --- a/test/sequence/as_map.cpp +++ b/test/sequence/as_map.cpp @@ -28,7 +28,7 @@ main() std::cout << tuple_delimiter(", "); { - vector0 empty; + vector0<> empty; std::cout << as_map(make_list(make_pair('X'), make_pair("Men"))) << std::endl; std::cout << as_map(push_back(empty, make_pair(999))) << std::endl; } diff --git a/test/sequence/as_set.cpp b/test/sequence/as_set.cpp index 12a3641c..d13d0959 100644 --- a/test/sequence/as_set.cpp +++ b/test/sequence/as_set.cpp @@ -29,7 +29,7 @@ main() std::cout << tuple_delimiter(", "); { - vector0 empty; + vector0<> empty; std::cout << as_set(make_list(1, 1.23, "harru")) << std::endl; std::cout << as_set(push_back(empty, 999)) << std::endl; diff --git a/test/sequence/as_vector.cpp b/test/sequence/as_vector.cpp index 27905de5..2bcc2b32 100644 --- a/test/sequence/as_vector.cpp +++ b/test/sequence/as_vector.cpp @@ -27,7 +27,7 @@ main() std::cout << tuple_delimiter(", "); { - vector0 empty; + vector0<> empty; std::cout << as_vector(make_list(1, 1.23, "harru")) << std::endl; std::cout << as_vector(push_back(empty, 999)) << std::endl; diff --git a/test/sequence/boost_tuple.cpp b/test/sequence/boost_tuple.cpp index 07e39695..c3949cbf 100644 --- a/test/sequence/boost_tuple.cpp +++ b/test/sequence/boost_tuple.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -84,6 +85,16 @@ main() fusion::list l(tuples::make_tuple(123, "Hola!!!")); l = tuples::make_tuple(123, "Hola!!!"); } + + { + // test from Ticket #1601, submitted by Shunsuke Sogame + // expanded by Stjepan Rajko + boost::tuple t(3, 'a'); + + BOOST_TEST(0u == fusion::distance(fusion::begin(t), fusion::begin(t))); + BOOST_TEST(1u == fusion::distance(fusion::begin(t), fusion::next(fusion::begin(t)))); + BOOST_TEST(2u == fusion::distance(fusion::begin(t), fusion::end(t))); + } return boost::report_errors(); } diff --git a/test/sequence/vector_n.cpp b/test/sequence/vector_n.cpp index b051ca89..f041bac8 100644 --- a/test/sequence/vector_n.cpp +++ b/test/sequence/vector_n.cpp @@ -33,10 +33,10 @@ main() using namespace std; { - vector0 vec; + vector0<> vec; (void) vec; cout << "(): " << sizeof(vec) << endl; - cout << (boost::is_empty::value ? "is empty" : "is not empty") << endl; + cout << (boost::is_empty >::value ? "is empty" : "is not empty") << endl; } { @@ -207,7 +207,7 @@ main() { // testing copy and assign from a view - vector0 empty; + vector0<> empty; fusion::vector2 v(fusion::push_back(fusion::push_back(empty, 123), 456)); BOOST_TEST(at_c<0>(v) == 123); BOOST_TEST(at_c<1>(v) == 456); diff --git a/test/sequence/zip_view.cpp b/test/sequence/zip_view.cpp index 7f88f52a..8409711a 100644 --- a/test/sequence/zip_view.cpp +++ b/test/sequence/zip_view.cpp @@ -2,7 +2,7 @@ Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2006 Dan Marsden - Distributed under the Boost Software License, Version 1.0. (See accompanying + 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) ==============================================================================*/ #include @@ -58,8 +58,8 @@ int main() BOOST_STATIC_ASSERT((boost::fusion::result_of::distance::type, boost::fusion::result_of::end::type>::value == 2)); - BOOST_MPL_ASSERT((boost::is_same::type, vector >)); - BOOST_MPL_ASSERT((boost::is_same::type>::type, vector >)); + BOOST_MPL_ASSERT((boost::is_same::type, vector2 >)); + BOOST_MPL_ASSERT((boost::is_same::type>::type, vector2 >)); } { using namespace boost; diff --git a/test/sequence/zip_view2.cpp b/test/sequence/zip_view2.cpp index 8a07aa88..38075f07 100644 --- a/test/sequence/zip_view2.cpp +++ b/test/sequence/zip_view2.cpp @@ -2,7 +2,7 @@ Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2006 Dan Marsden - Distributed under the Boost Software License, Version 1.0. (See accompanying + 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) ==============================================================================*/ #include @@ -57,8 +57,8 @@ int main() BOOST_TEST(distance(begin(v), end(v)) == 2); BOOST_STATIC_ASSERT((boost::fusion::result_of::distance::type, boost::fusion::result_of::end::type>::value == 2)); - BOOST_MPL_ASSERT((boost::is_same::type, vector >)); - BOOST_MPL_ASSERT((boost::is_same::type>::type, vector >)); + BOOST_MPL_ASSERT((boost::is_same::type, vector3 >)); + BOOST_MPL_ASSERT((boost::is_same::type>::type, vector3 >)); } return boost::report_errors(); }