diff --git a/doc/Jamfile b/doc/Jamfile
index c47c6ccb..dc8fefe7 100644
--- a/doc/Jamfile
+++ b/doc/Jamfile
@@ -1,3 +1,10 @@
+#==============================================================================
+# Copyright (c) 2003-2007 Joel de Guzman
+#
+# Use, modification and distribution is 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)
+#==============================================================================
project boost/libs/fusion/doc ;
import boostbook : boostbook ;
using quickbook ;
@@ -8,6 +15,7 @@ boostbook quickbook
:
boost.root=../../../..
boost.libraries=../../../libraries.htm
+ html.stylesheet=../../../../doc/html/boostbook.css
chunk.section.depth=4
chunk.first.sections=1
toc.section.depth=3
diff --git a/doc/acknowledgements.qbk b/doc/acknowledgements.qbk
index f0b628d4..fd66c3c5 100644
--- a/doc/acknowledgements.qbk
+++ b/doc/acknowledgements.qbk
@@ -1,15 +1,22 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Acknowledgements]
-Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey
-Gurtovoy, Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan
-Marsden, Eric Niebler, Joao Abecasis and Andy Little. These people are
+Special thanks to David Abrahams, Douglas Gregor, Hartmut Kaiser, Aleksey
+Gurtovoy, Peder Holt, Daniel Wallin, Jaakko Jarvi, Jeremiah Willcock, Dan
+Marsden, Eric Niebler, Joao Abecasis and Andy Little. These people are
instrumental in the design and development of Fusion.
-Special thanks to Ronald Garcia, the review manager and to all the people in the
-boost community who participated in the review: Andreas Pokorny, Andreas Huber,
-Jeff Flinn, David Abrahams, Pedro Lamarao, Larry Evans, Ryan Gallagher, Andy
-Little, Gennadiy Rozental, Tobias Schwinger, Joao Abecasis, Eric Niebler, Oleg
-Abrosimov, Gary Powell, Eric Friedman, Darren Cook, Martin Bonner and Douglas
+Special thanks to Ronald Garcia, the review manager and to all the people in the
+boost community who participated in the review: Andreas Pokorny, Andreas Huber,
+Jeff Flinn, David Abrahams, Pedro Lamarao, Larry Evans, Ryan Gallagher, Andy
+Little, Gennadiy Rozental, Tobias Schwinger, Joao Abecasis, Eric Niebler, Oleg
+Abrosimov, Gary Powell, Eric Friedman, Darren Cook, Martin Bonner and Douglas
Gregor.
[endsect]
diff --git a/doc/adapted.qbk b/doc/adapted.qbk
index a43801a3..3645fcc9 100644
--- a/doc/adapted.qbk
+++ b/doc/adapted.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Adapted]
Fusion provides a couple of adapters for other sequences such as
diff --git a/doc/algorithm.qbk b/doc/algorithm.qbk
index 25e2021d..cfaf92b7 100644
--- a/doc/algorithm.qbk
+++ b/doc/algorithm.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Algorithm]
[heading Lazy Evaluation]
diff --git a/doc/changelog.qbk b/doc/changelog.qbk
index 23d17406..c7da9f07 100644
--- a/doc/changelog.qbk
+++ b/doc/changelog.qbk
@@ -1,9 +1,16 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Change log]
This section summarizes significant changes to the Fusion library.
* Sep 27, 2006: Added `boost::tuple` support.
* Nov 17, 2006: Added `boost::variant` support.
-* Feb 15, 2007: Added functional module.
+* Feb 15, 2007: Added functional module.
[endsect]
diff --git a/doc/container.qbk b/doc/container.qbk
index 32db47eb..62baca68 100644
--- a/doc/container.qbk
+++ b/doc/container.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Container]
Fusion provides a few predefined sequences out of the box. These
diff --git a/doc/extension.qbk b/doc/extension.qbk
index 36e8f3de..c10dc273 100644
--- a/doc/extension.qbk
+++ b/doc/extension.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Extension]
[section:ext_full The Full Extension Mechanism]
diff --git a/doc/functional.qbk b/doc/functional.qbk
index 805cbb79..6b83c554 100644
--- a/doc/functional.qbk
+++ b/doc/functional.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[section Functional]
Components to call functions and function objects and to make Fusion code
@@ -11,7 +18,7 @@ What is a function call?
f (a,b,c)
-It is a name and a tuple written next to each other, left-to-right.
+It is a name and a tuple written next to each other, left-to-right.
Although the C++ syntax does not allow to replace [^(a,b,c)] with some Fusion
__sequence__, introducing yet another function provides a solution:
@@ -23,27 +30,27 @@ to achieve the same effect:
f tuple <=> ``f'`` (tuple)
-Now, [^f'] is an unary function that takes the arguments to `f` as a tuple;
+Now, [^f'] is an unary function that takes the arguments to `f` as a tuple;
[^f'] is the /fused/ form of `f`.
-Reading the above equivalence right-to-left to get the inverse transformation,
+Reading the above equivalence right-to-left to get the inverse transformation,
`f` is the /unfused/ form of [^f'].
[heading Calling functions and function objects]
Having generic C++ code call back arbitrary functions provided by the client
-used to be a heavily repetitive task, as different functions can differ in
+used to be a heavily repetitive task, as different functions can differ in
arity, invocation syntax and other properties that might be part of the type.
Transporting arguments as Fusion sequences and factoring out the invocation
-makes Fusion algorithms applicable to function arguments and also reduces
+makes Fusion algorithms applicable to function arguments and also reduces
the problem to one invocation syntax and a fixed arity (instead of an arbitrary
number of arbitrary arguments times several syntactic variants times additional
properties).
Transforming an unfused function into its fused counterpart allows n-ary
calls from an algorithm that invokes an unary __poly_func_obj__ with
-__sequence__ arguments.
+__sequence__ arguments.
-The library provides several function templates to invoke different kinds of
+The library provides several function templates to invoke different kinds of
functions and adapters to transform them into fused form, respectively.
Every variant has a corresponding generator function template that returns
an adapter instance for the given argument.
@@ -52,13 +59,13 @@ an adapter instance for the given argument.
Transforming a fused function into its unfused counterpart allows to create
function objects to accept arbitrary calls. In other words, an unary function
-object can be implemented instead of (maybe heavily overloaded) function
+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
+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
+Every generic variant has a corresponding generator function template that
returns an adapter instance for the given argument.
[/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ]
@@ -70,7 +77,7 @@ returns an adapter instance for the given argument.
[heading Description]
-A pointer to a function, a pointer to member function, a pointer to member
+A pointer to a function, a pointer to member function, a pointer to member
data, or a class type whose objects can appear immediately to the left of a
function call operator.
@@ -90,7 +97,7 @@ function call operator.
bind(std::less(), _1, 5)
lambda::_1 += lambda::_2;
fusion::__make_fused_function_object__(std::less())
-
+
[endsect]
@@ -99,8 +106,8 @@ function call operator.
[heading Description]
-A non-member-pointer __callable_obj__ type: A pointer to a function or a class
-type whose objects can appear immediately to the left of a function call operator.
+A non-member-pointer __callable_obj__ type: A pointer to a function or a class
+type whose objects can appear immediately to the left of a function call operator.
[heading Refinement of]
* __callable_obj__
@@ -132,7 +139,7 @@ type whose objects can appear immediately to the left of a function call operato
bind(std::less(), _1, 5)
lambda::_1 += lambda::_2;
fusion::__make_fused_function_object__(std::less())
-
+
[endsect]
@@ -140,15 +147,15 @@ type whose objects can appear immediately to the left of a function call operato
[heading Description]
-__callable_obj__ types that work with __boost_result_of__ to determine the
+__callable_obj__ types that work with __boost_result_of__ to determine the
result of a call.
[heading Refinement of]
* __callable_obj__
-[blurb note Once C++ supports the [^decltype] keyword, all models of
-__callable_obj__ will also be models of __def_callable_obj__, because
-function objects won't need client-side support for `result_of`.
+[blurb note Once C++ supports the [^decltype] keyword, all models of
+__callable_obj__ will also be models of __def_callable_obj__, because
+function objects won't need client-side support for `result_of`.
]
[variablelist Notation
@@ -186,13 +193,13 @@ function objects won't need client-side support for `result_of`.
[section:poly Polymorphic Function Object]
-[heading Description]
+[heading Description]
A non-member-pointer __def_callable_obj__ type.
[heading Refinement of]
* __reg_callable_obj__
-* __def_callable_obj__
+* __def_callable_obj__
[variablelist Notation
[[`F`][A possibly const-qualified Polymorphic Function Object type]]
@@ -245,24 +252,24 @@ The first template parameter can be specialized explicitly to avoid copying
and/or to control the const qualification of a function object.
If the target function is a pointer to a class members, the corresponding
-object can be specified as a reference, pointer, or smart pointer.
-In case of the latter, a freestanding [^get_pointer] function must be
-defined (Boost provides this function for [^std::auto_ptr] and
+object can be specified as a reference, pointer, or smart pointer.
+In case of the latter, a freestanding [^get_pointer] function must be
+defined (Boost provides this function for [^std::auto_ptr] and
__boost_shared_ptr_call__).
[heading Synopsis]
template<
- typename Function,
+ typename Function,
class Sequence
>
typename __result_of_invoke__::type
invoke(Function f, Sequence & s);
template<
- typename Function,
+ typename Function,
class Sequence
>
- typename __result_of_invoke__::type
+ typename __result_of_invoke__::type
invoke(Function f, Sequence const & s);
[heading Parameters]
@@ -279,7 +286,7 @@ __boost_shared_ptr_call__).
[*Return type]: Return type of `f` when invoked with the elements in `s` as its
arguments.
-[*Semantics]: Invokes `f` with the elements in `s` as arguments and returns
+[*Semantics]: Invokes `f` with the elements in `s` as arguments and returns
the result of the call expression.
/functional/invocation/invoke.hpp>
@@ -308,7 +315,7 @@ and/or to control the const qualification of a function object.
For pointers to class members corresponding object can be specified as
a reference, pointer, or smart pointer. In case of the latter, a freestanding
-[^get_pointer] function must be defined (Boost provides this function for
+[^get_pointer] function must be defined (Boost provides this function for
[^std::auto_ptr] and __boost_shared_ptr_call__).
The target function must not be a pointer to a member object (dereferencing
@@ -317,14 +324,14 @@ implemented).
[heading Synopsis]
template<
- typename Function,
+ typename Function,
class Sequence
>
typename __result_of_invoke_procedure__::type
invoke_procedure(Function f, Sequence & s);
template<
- typename Function,
+ typename Function,
class Sequence
>
typename __result_of_invoke_procedure__::type
@@ -372,14 +379,14 @@ and/or to control the const qualification of a function object.
[heading Synopsis]
template<
- typename Function,
+ typename Function,
class Sequence
>
typename __result_of_invoke_function_object__::type
invoke_function_object(Function f, Sequence & s);
template<
- typename Function,
+ typename Function,
class Sequence
>
typename __result_of_invoke_function_object__::type
@@ -411,7 +418,7 @@ result of the call expression.
struct result;
template
- struct result< Self(T,T) >
+ struct result< Self(T,T) >
{ typedef typename remove_reference::type type; };
template
@@ -448,9 +455,9 @@ Returns the result type of __invoke__.
namespace result_of
{
template<
- typename Function,
+ typename Function,
class Sequence
- >
+ >
struct invoke
{
typedef __unspecified__ type;
@@ -472,9 +479,9 @@ Returns the result type of __invoke_procedure__.
namespace result_of
{
template<
- typename Function,
+ typename Function,
class Sequence
- >
+ >
struct invoke_procedure
{
typedef __unspecified__ type;
@@ -496,9 +503,9 @@ Returns the result type of __invoke_function_object__.
namespace result_of
{
template<
- class Function,
+ class Function,
class Sequence
- >
+ >
struct invoke_function_object
{
typedef __unspecified__ type;
@@ -527,11 +534,11 @@ Function object templates to transform a particular target function.
An unary __poly_func_obj__ adapter template for __def_callable_obj__ target
functions. It takes a __forward_sequence__ that contains the arguments for the
-target function.
+target function.
-The type of the target function is allowed to be const qualified or a
-reference. Const qualification is preserved and propagated appropriately
-(in other words, only const versions of [^operator()] can be used for a
+The type of the target function is allowed to be const qualified or a
+reference. Const qualification is preserved and propagated appropriately
+(in other words, only const versions of [^operator()] can be used for a
target function object that is const or, if the target function object
is held by value, the adapter is const - these semantics have nothing to
do with the const qualification of a member function, which is referring
@@ -539,9 +546,9 @@ to the type of object pointed to by [^this] which is specified with the
first element in the sequence passed to the adapter).
If the target function is a pointer to a class members, the corresponding
-object can be specified as a reference, pointer, or smart pointer.
-In case of the latter, a freestanding [^get_pointer] function must be
-defined (Boost provides this function for [^std::auto_ptr] and
+object can be specified as a reference, pointer, or smart pointer.
+In case of the latter, a freestanding [^get_pointer] function must be
+defined (Boost provides this function for [^std::auto_ptr] and
__boost_shared_ptr_call__).
/functional/adapter/fused.hpp>
@@ -559,13 +566,13 @@ __boost_shared_ptr_call__).
[heading Model of]
-* __poly_func_obj__
+* __poly_func_obj__
* __def_callable_obj__
[variablelist Notation
[[`R`] [A possibly const qualified __def_callable_obj__ type or reference type thereof]]
- [[`r`] [An object convertible to `R`]]
- [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
+ [[`r`] [An object convertible to `R`]]
+ [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
[[`f`] [An instance of `fused`]]
]
@@ -596,13 +603,13 @@ __boost_shared_ptr_call__).
[heading Description]
An unary __poly_func_obj__ adapter template for __callable_obj__ target
-functions. It takes a __forward_sequence__ that contains the arguments for
+functions. It takes a __forward_sequence__ that contains the arguments for
the target function.
The result is discared and the adapter's return type is `void`.
-The type of the target function is allowed to be const qualified or a
-reference. Const qualification is preserved and propagated appropriately
+The type of the target function is allowed to be const qualified or a
+reference. Const qualification is preserved and propagated appropriately
(in other words, only const versions of [^operator()] can be used for a
target function object that is const or, if the target function object
is held by value, the adapter is const - these semantics have nothing to
@@ -611,9 +618,9 @@ to the type of object pointed to by [^this] which is specified with the
first element in the sequence passed to the adapter).
If the target function is a pointer to a members function, the corresponding
-object can be specified as a reference, pointer, or smart pointer.
-In case of the latter, a freestanding [^get_pointer] function must be
-defined (Boost provides this function for [^std::auto_ptr] and
+object can be specified as a reference, pointer, or smart pointer.
+In case of the latter, a freestanding [^get_pointer] function must be
+defined (Boost provides this function for [^std::auto_ptr] and
__boost_shared_ptr_call__).
The target function must not be a pointer to a member object (dereferencing
@@ -635,13 +642,13 @@ is not implemented).
[heading Model of]
-* __poly_func_obj__
-* __def_callable_obj__
+* __poly_func_obj__
+* __def_callable_obj__
[variablelist Notation
[[`R`] [A possibly const qualified __callable_obj__ type or reference type thereof]]
- [[`r`] [An object convertible to `R`]]
- [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
+ [[`r`] [An object convertible to `R`]]
+ [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
[[`f`] [An instance of `fused`]]
]
@@ -658,9 +665,9 @@ is not implemented).
template
void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
{
- __for_each__(__zip_view__(s),
+ __for_each__(__zip_view__(s),
fused_procedure(f));
- }
+ }
void try_it()
{
@@ -684,12 +691,12 @@ is not implemented).
[heading Description]
An unary __poly_func_obj__ adapter template for a __poly_func_obj__ target
-function. It takes a __forward_sequence__ that contains the arguments for the
+function. It takes a __forward_sequence__ that contains the arguments for the
target function.
-The type of the target function is allowed to be const qualified or a
-reference. Const qualification is preserved and propagated appropriately
-(in other words, only const versions of [^operator()] can be used for an
+The type of the target function is allowed to be const qualified or a
+reference. Const qualification is preserved and propagated appropriately
+(in other words, only const versions of [^operator()] can be used for an
target function object that is const or, if the target function object
is held by value, the adapter is const).
@@ -708,13 +715,13 @@ is held by value, the adapter is const).
[heading Model of]
-* __poly_func_obj__
-* __def_callable_obj__
+* __poly_func_obj__
+* __def_callable_obj__
[variablelist Notation
[[`R`] [A possibly const qualified __poly_func_obj__ type or reference type thereof]]
- [[`r`] [An object convertible to `R`]]
- [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
+ [[`r`] [An object convertible to `R`]]
+ [[`s`] [A __sequence__ of arguments that are accepted by `r`]]
[[`f`] [An instance of `fused`]]
]
@@ -733,9 +740,9 @@ is held by value, the adapter is const).
fused_function_object >::type
n_ary_transform(SeqOfSeqs const & s, Func const & f)
{
- return __transform__(zip_view(s),
+ return __transform__(zip_view(s),
fused_function_object(f));
- }
+ }
struct sub
{
@@ -743,7 +750,7 @@ is held by value, the adapter is const).
struct result;
template
- struct result< Self(T,T) >
+ struct result< Self(T,T) >
{ typedef typename remove_reference::type type; };
template
@@ -776,20 +783,20 @@ is held by value, the adapter is const).
[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
+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.
+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
+[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
+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>
@@ -797,7 +804,7 @@ object is held by value, the adapter is const).
[heading Synopsis]
template
class unfused_generic;
-
+
[heading Template parameters]
[table
@@ -808,14 +815,14 @@ object is held by value, the adapter is const).
[heading Model of]
* __poly_func_obj__
-* __def_callable_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`]]
+ [[`f`] [An object convertible to `F`]]
[[`UG`] [The type `unfused_generic`]]
[[`ug`] [An instance of `UG`, initialized with `f`]]
- [[`a0`...`aN`] [Arguments to `ug`]]
+ [[`a0`...`aN`] [Arguments to `ug`]]
]
[heading Expression Semantics]
@@ -856,11 +863,11 @@ object is held by value, the adapter is const).
};
template
- unfused_generic< fused_bound_1st >
+ unfused_generic< fused_bound_1st >
bind_1st(Function f, T const & x)
{
return unfused_generic< fused_bound_1st >(
- fused_bound_1st(f,x) );
+ fused_bound_1st(f,x) );
}
int test_func(int a, int b, int c)
@@ -889,14 +896,14 @@ object is held by value, the adapter is const).
[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
+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. Only __lvalue__ arguments are accepted.
-The type of the target function is allowed to be const qualified or a
-reference. Const qualification is preserved and propagated appropriately
-(in other words, only const versions of [^operator()] can be used if
-the target function object is const - or, in case the target function
+The type of the target function is allowed to be const qualified or a
+reference. Const qualification is preserved and propagated appropriately
+(in other words, only const versions of [^operator()] can be used if
+the target function object is const - or, in case the target function
object is held by value, the adapter is const).
/functional/adapter/unfused_lvalue_args.hpp>
@@ -904,7 +911,7 @@ object is held by value, the adapter is const).
[heading Synopsis]
template
class unfused_lvalue_args;
-
+
[heading Template parameters]
[table
@@ -919,10 +926,10 @@ 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`]]
+ [[`f`] [An object convertible to `F`]]
[[`UL`] [The type `unfused_lvalue_args`]]
[[`ul`] [An instance of `UL`, initialized with `f`]]
- [[`a0`...`aN`] [Arguments to `ul`]]
+ [[`a0`...`aN`] [Arguments to `ul`]]
]
[heading Expression Semantics]
@@ -937,9 +944,9 @@ object is held by value, the adapter is const).
[heading Example]
struct fused_incrementer
{
- template
- struct result
- {
+ template
+ struct result
+ {
typedef void type;
};
@@ -970,13 +977,13 @@ object is held by value, the adapter is const).
[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
+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 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).
@@ -985,7 +992,7 @@ is held by value, the adapter is const).
[heading Synopsis]
template
class unfused_rvalue_args;
-
+
[heading Template parameters]
[table
@@ -1000,10 +1007,10 @@ 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`]]
+ [[`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`]]
+ [[`a0`...`aN`] [Arguments to `ur`]]
]
[heading Expression Semantics]
@@ -1018,9 +1025,9 @@ is held by value, the adapter is const).
[heading Example]
struct sequence_printer
{
- template
- struct result
- {
+ template
+ struct result
+ {
typedef void type;
};
@@ -1051,24 +1058,24 @@ is held by value, the adapter is const).
[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
+target function. When called, its arguments are bundled to a
__random_access_sequence__ that is passed to the target function object.
The call operators of esulting function objects are strictly typed
(in other words, non-templatized) with the types from a __sequence__.
-The type of the target function is allowed to be const qualified or a
-reference. Const qualification is preserved and propagated appropriately
-(in other words, only const versions of [^operator()] can be used if
+The 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).
[blurb __note__ For Microsoft Visual C++ 7.1 (Visual Studio 2003) the detection
of the Function Object's const qualification easily causes an internal error.
-Therefore the adapter is always treated as if it was const. ]
+Therefore the adapter is always treated as if it was const. ]
-[blurb __tip__ If the type sequence passed to this template contains
-non-reference elements, the element is copied only once - the call operator's
+[blurb __tip__ If the type sequence passed to this template contains
+non-reference elements, the element is copied only once - the call operator's
signature is optimized automatically to avoid by-value parameters.]
/functional/adapter/unfused_typed.hpp>
@@ -1076,7 +1083,7 @@ signature is optimized automatically to avoid by-value parameters.]
[heading Synopsis]
template
class unfused_typed;
-
+
[heading Template parameters]
[table
@@ -1093,10 +1100,10 @@ signature is optimized automatically to avoid by-value parameters.]
[variablelist Notation
[[`F`] [A possibly const qualified, unary __poly_func_obj__ type or reference type thereof]]
[[`f`] [An object convertible to `F`]]
- [[`S`] [A __sequence__ of parameter types]]
+ [[`S`] [A __sequence__ of parameter types]]
[[`UT`] [The type `unfused_typed`]]
[[`ut`] [An instance of `UT`, initialized with `f`]]
- [[`a0`...`aN`] [Arguments to `ut`, convertible to the types in `S`]]
+ [[`a0`...`aN`] [Arguments to `ut`, convertible to the types in `S`]]
]
[heading Expression Semantics]
@@ -1106,7 +1113,7 @@ signature is optimized automatically to avoid by-value parameters.]
[[`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
+ if fewer arguments are given and the overload hasn't been disabled) initialized with
`a0`...`aN`.]]
]
@@ -1151,7 +1158,7 @@ signature is optimized automatically to avoid by-value parameters.]
{
typedef typename remove_reference::type seq;
- typedef unfused_typed< fused_parallel_adder,
+ typedef unfused_typed< fused_parallel_adder,
typename mpl::transform >::type > type;
};
@@ -1168,7 +1175,7 @@ signature is optimized automatically to avoid by-value parameters.]
{
int a = 2; char b = 'X';
// the second call is strictly typed with the types deduced from the
- // first call
+ // first call
parallel_add(a,b)(3,2);
parallel_add(a,b)(3);
parallel_add(a,b)();
@@ -1244,8 +1251,8 @@ __element_conversion__ is applied to the target function.
[section:mk_fused_proc make_fused_procedure]
[heading Description]
-Creates a __fused_procedure__ adapter for a given __def_callable_obj__.
-The usual __element_conversion__ applied to the target function.
+Creates a __fused_procedure__ adapter for a given __def_callable_obj__.
+The usual __element_conversion__ applied to the target function.
[heading Synopsis]
template
@@ -1287,8 +1294,8 @@ The usual __element_conversion__ applied to the target function.
[section:mk_fused_fobj make_fused_function_object]
[heading Description]
-Creates a __fused_function_object__ adapter for a given __def_callable_obj__.
-The usual __element_conversion__ is applied to the target function.
+Creates a __fused_function_object__ adapter for a given __def_callable_obj__.
+The usual __element_conversion__ is applied to the target function.
[heading Synopsis]
template
@@ -1321,7 +1328,7 @@ The usual __element_conversion__ is applied to the target function.
struct result;
template
- struct result< Self(T,T) >
+ struct result< Self(T,T) >
{ typedef typename remove_reference::type type; };
template
@@ -1349,8 +1356,8 @@ The usual __element_conversion__ is applied to the target function.
[section:mk_unfused_genrc make_unfused_generic]
[heading Description]
-Creates a __unfused_generic__ adapter for a given, unary __poly_func_obj__.
-The usual __element_conversion__ is applied to the target function.
+Creates a __unfused_generic__ adapter for a given, unary __poly_func_obj__.
+The usual __element_conversion__ is applied to the target function.
[heading Synopsis]
template
@@ -1381,21 +1388,21 @@ The usual __element_conversion__ is applied to the target function.
{
typedef void result_type;
- template
+ 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"
+ 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"
+ << n << " bottles of " << what << " on the wall.\n"
<< std::endl;
}
};
@@ -1418,8 +1425,8 @@ The usual __element_conversion__ is applied to the target function.
[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.
+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
@@ -1448,9 +1455,9 @@ The usual __element_conversion__ is applied to the target function.
[heading Example]
struct fused_incrementer
{
- template
- struct result
- {
+ template
+ struct result
+ {
typedef void type;
};
@@ -1478,8 +1485,8 @@ The usual __element_conversion__ is applied to the target function.
[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.
+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
@@ -1508,9 +1515,9 @@ The usual __element_conversion__ is applied to the target function.
[heading Example]
struct sequence_printer
{
- template
- struct result
- {
+ template
+ struct result
+ {
typedef void type;
};
diff --git a/doc/fusion.qbk b/doc/fusion.qbk
index 8425149b..69dd235e 100644
--- a/doc/fusion.qbk
+++ b/doc/fusion.qbk
@@ -1,3 +1,10 @@
+[/==============================================================================
+ Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
+
+ Use, modification and distribution is 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)
+===============================================================================/]
[library Fusion
[quickbook 1.3]
[version 2.0]
@@ -34,7 +41,7 @@
[def __boost_any__ [@http://boost.org/doc/html/any.html Boost.Any]]
[def __new_iterator_concepts__ [@http://boost.org/libs/iterator/doc/new-iter-concepts.html New Iterator Concepts]]
[def __boost_array_library__ [@http://www.boost.org/doc/html/array.html Boost.Array Library]]
-[def __boost_variant_library__ [@http://www.boost.org/doc/html/variant.html Boost.Variant Library]]
+[def __boost_variant_library__ [@http://www.boost.org/doc/html/variant.html Boost.Variant Library]]
[def __boost_tuple_library__ [@http://www.boost.org/libs/tuple/doc/tuple_users_guide.html Boost.Tuple Library]]
[def __boost_ref__ [@http://www.boost.org/doc/html/ref.html Boost.Ref]]
[def __boost_ref_call__ [@http://www.boost.org/doc/html/ref.html `ref`]]
diff --git a/doc/html/boostbook.css b/doc/html/boostbook.css
deleted file mode 100755
index d84d5384..00000000
--- a/doc/html/boostbook.css
+++ /dev/null
@@ -1,511 +0,0 @@
-/*=============================================================================
- Copyright (c) 2004 Joel de Guzman
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is 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)
-=============================================================================*/
-
-/*=============================================================================
- Body defaults
-=============================================================================*/
-
- body
- {
- margin: 1em;
- font-family: sans-serif;
- }
-
-/*=============================================================================
- Paragraphs
-=============================================================================*/
-
- p
- {
- text-align: left;
- font-size: 10pt;
- line-height: 1.15;
- }
-
-/*=============================================================================
- Program listings
-=============================================================================*/
-
- /* Code on paragraphs */
- p tt.computeroutput
- {
- font-size: 9pt;
- }
-
- pre.synopsis
- {
- font-size: 90%;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- .programlisting,
- .screen
- {
- font-size: 9pt;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- /* Program listings in tables don't get borders */
- td .programlisting,
- td .screen
- {
- margin: 0pc 0pc 0pc 0pc;
- padding: 0pc 0pc 0pc 0pc;
- }
-
-/*=============================================================================
- Headings
-=============================================================================*/
-
- h1, h2, h3, h4, h5, h6
- {
- text-align: left;
- margin: 1em 0em 0.5em 0em;
- font-weight: bold;
- }
-
- h1 { font: 140% }
- h2 { font: bold 140% }
- h3 { font: bold 130% }
- h4 { font: bold 120% }
- h5 { font: italic 110% }
- h6 { font: italic 100% }
-
- /* Top page titles */
- title,
- h1.title,
- h2.title
- h3.title,
- h4.title,
- h5.title,
- h6.title,
- .refentrytitle
- {
- font-weight: bold;
- margin-bottom: 1pc;
- }
-
- h1.title { font-size: 140% }
- h2.title { font-size: 140% }
- h3.title { font-size: 130% }
- h4.title { font-size: 120% }
- h5.title { font-size: 110% }
- h6.title { font-size: 100% }
-
- .section h1
- {
- margin: 0em 0em 0.5em 0em;
- font-size: 140%;
- }
-
- .section h2 { font-size: 140% }
- .section h3 { font-size: 130% }
- .section h4 { font-size: 120% }
- .section h5 { font-size: 110% }
- .section h6 { font-size: 100% }
-
- /* Code on titles */
- h1 tt.computeroutput { font-size: 140% }
- h2 tt.computeroutput { font-size: 140% }
- h3 tt.computeroutput { font-size: 130% }
- h4 tt.computeroutput { font-size: 120% }
- h5 tt.computeroutput { font-size: 110% }
- h6 tt.computeroutput { font-size: 100% }
-
-/*=============================================================================
- Author
-=============================================================================*/
-
- h3.author
- {
- font-size: 100%
- }
-
-/*=============================================================================
- Lists
-=============================================================================*/
-
- li
- {
- font-size: 10pt;
- line-height: 1.3;
- }
-
- /* Unordered lists */
- ul
- {
- text-align: left;
- }
-
- /* Ordered lists */
- ol
- {
- text-align: left;
- }
-
-/*=============================================================================
- Links
-=============================================================================*/
-
- a
- {
- text-decoration: none; /* no underline */
- }
-
- a:hover
- {
- text-decoration: underline;
- }
-
-/*=============================================================================
- Spirit style navigation
-=============================================================================*/
-
- .spirit-nav
- {
- text-align: right;
- }
-
- .spirit-nav a
- {
- color: white;
- padding-left: 0.5em;
- }
-
- .spirit-nav img
- {
- border-width: 0px;
- }
-
-/*=============================================================================
- Table of contents
-=============================================================================*/
-
- .toc
- {
- margin: 1pc 4% 0pc 4%;
- padding: 0.1pc 1pc 0.1pc 1pc;
- font-size: 80%;
- line-height: 1.15;
- }
-
- .boost-toc
- {
- float: right;
- padding: 0.5pc;
- }
-
-/*=============================================================================
- Tables
-=============================================================================*/
-
- .table-title,
- div.table p.title
- {
- margin-left: 4%;
- padding-right: 0.5em;
- padding-left: 0.5em;
- }
-
- .informaltable table,
- .table table
- {
- width: 92%;
- margin-left: 4%;
- margin-right: 4%;
- }
-
- div.informaltable table,
- div.table table
- {
- padding: 4px;
- }
-
- /* Table Cells */
- div.informaltable table tr td,
- div.table table tr td
- {
- padding: 0.5em;
- text-align: left;
- font-size: 9pt;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- padding: 0.5em 0.5em 0.5em 0.5em;
- border: 1pt solid white;
- font-size: 80%;
- }
-
-/*=============================================================================
- Blurbs
-=============================================================================*/
-
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- p.blurb
- {
- font-size: 9pt; /* A little bit smaller than the main text */
- line-height: 1.2;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- p.blurb img
- {
- padding: 1pt;
- }
-
-/*=============================================================================
- Variable Lists
-=============================================================================*/
-
- /* Make the terms in definition lists bold */
- div.variablelist dl dt,
- span.term
- {
- font-weight: bold;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td
- {
- text-align: left;
- vertical-align: top;
- padding: 0em 2em 0em 0em;
- font-size: 10pt;
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
- div.variablelist dl dt
- {
- margin-bottom: 0.2em;
- }
-
- div.variablelist dl dd
- {
- margin: 0em 0em 0.5em 2em;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td p,
- div.variablelist dl dd p
- {
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
-/*=============================================================================
- Misc
-=============================================================================*/
-
- /* Title of books and articles in bibliographies */
- span.title
- {
- font-style: italic;
- }
-
- span.underline
- {
- text-decoration: underline;
- }
-
- span.strikethrough
- {
- text-decoration: line-through;
- }
-
- /* Copyright, Legal Notice */
- div div.legalnotice p
- {
- text-align: left
- }
-
-/*=============================================================================
- Colors
-=============================================================================*/
-
- @media screen
- {
- /* Links */
- a
- {
- color: #005a9c;
- }
-
- a:visited
- {
- color: #9c5a9c;
- }
-
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
- h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
- h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
- {
- text-decoration: none; /* no underline */
- color: #000000;
- }
-
- /* Syntax Highlighting */
- .keyword { color: #0000AA; }
- .identifier { color: #000000; }
- .special { color: #707070; }
- .preprocessor { color: #402080; }
- .char { color: teal; }
- .comment { color: #800000; }
- .string { color: teal; }
- .number { color: teal; }
- .white_bkd { background-color: #FFFFFF; }
- .dk_grey_bkd { background-color: #999999; }
-
- /* Copyright, Legal Notice */
- .copyright
- {
- color: #666666;
- font-size: small;
- }
-
- div div.legalnotice p
- {
- color: #666666;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid #DCDCDC;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid #DCDCDC;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Blurbs */
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- p.blurb
- {
- border: 1px solid #DCDCDC;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid #DCDCDC;
- }
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid #DCDCDC;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- background-color: #F0F0F0;
- border: 1px solid #DCDCDC;
- }
-
- /* Misc */
- span.highlight
- {
- color: #00A000;
- }
- }
-
- @media print
- {
- /* Links */
- a
- {
- color: black;
- }
-
- a:visited
- {
- color: black;
- }
-
- .spirit-nav
- {
- display: none;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid gray;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid gray;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid gray;
- }
-
- .informaltable table,
- .table table
- {
- border: 1px solid gray;
- border-collapse: collapse;
- }
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid gray;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- border: 1px solid gray;
- }
-
- /* Misc */
- span.highlight
- {
- font-weight: bold;
- }
- }
diff --git a/doc/html/fusion/acknowledgements.html b/doc/html/fusion/acknowledgements.html
index b889a16a..39960553 100644
--- a/doc/html/fusion/acknowledgements.html
+++ b/doc/html/fusion/acknowledgements.html
@@ -2,7 +2,7 @@
Acknowledgements
-
+
@@ -42,8 +42,11 @@
diff --git a/doc/html/fusion/adapted.html b/doc/html/fusion/adapted.html
index c8c459c3..def0b264 100644
--- a/doc/html/fusion/adapted.html
+++ b/doc/html/fusion/adapted.html
@@ -2,7 +2,7 @@
Adapted
-
+
@@ -39,11 +39,11 @@
non-intrusive Extension mechanism.
If you wish to use these sequences with fusion, simply include the necessary
files and they will be regarded as first-class, fully conforming fusion sequences
- [13]
+ [13]
.
[13]
Fusion sequences may also be adapted as fully conforming MPL
sequences (see Intrinsics).
That way, we can have 2-way adaptation to and from MPL
@@ -62,8 +62,11 @@
diff --git a/doc/html/fusion/container.html b/doc/html/fusion/container.html
index e3abd0fc..f833f5a6 100644
--- a/doc/html/fusion/container.html
+++ b/doc/html/fusion/container.html
@@ -2,7 +2,7 @@
Container
-
+
@@ -49,7 +49,7 @@
These containers are more or less counterparts of those in STL.
diff --git a/doc/html/fusion/container/generation.html b/doc/html/fusion/container/generation.html
index e5cc2e3d..6fa9fe91 100644
--- a/doc/html/fusion/container/generation.html
+++ b/doc/html/fusion/container/generation.html
@@ -2,7 +2,7 @@
Generation
-
+
@@ -33,7 +33,7 @@
These are the functions that you can use to generate various forms of Container from elemental values.
The variadic function accepts 0
to FUSION_MAX_VECTOR_SIZE
- [9]
+ [9]
elements, where FUSION_MAX_VECTOR_SIZE
is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant
FUSION_MAX_VECTOR_SIZE
@@ -57,7 +57,7 @@
#defineFUSION_MAX_VECTOR_SIZE20
The variadic function accepts 0
to FUSION_MAX_VECTOR_SIZE
- [8]
+ [8]
elements, where FUSION_MAX_VECTOR_SIZE
is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant
FUSION_MAX_VECTOR_SIZE
@@ -55,7 +55,7 @@
#defineFUSION_MAX_VECTOR_SIZE20
diff --git a/doc/html/fusion/container/generation/functions/tiers.html b/doc/html/fusion/container/generation/functions/tiers.html
index ffa92797..664c8605 100644
--- a/doc/html/fusion/container/generation/functions/tiers.html
+++ b/doc/html/fusion/container/generation/functions/tiers.html
@@ -2,7 +2,7 @@
Tiers
-
+
@@ -49,7 +49,7 @@
a vector
of type vector<int&,char&,double&>. The same result could be achieved
with the call make_vector(ref(i), ref(c), ref(a))
- [10]
+ [10]
.
@@ -67,7 +67,7 @@
when calling functions which return sequences.
The variadic function accepts 0
to FUSION_MAX_VECTOR_SIZE
- [12]
+ [12]
elements, where FUSION_MAX_VECTOR_SIZE
is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant
FUSION_MAX_VECTOR_SIZE
@@ -55,7 +55,7 @@
#defineFUSION_MAX_VECTOR_SIZE20
The variadic function accepts 0
to FUSION_MAX_VECTOR_SIZE
- [11]
+ [11]
elements, where FUSION_MAX_VECTOR_SIZE
is a user definable predefined maximum that defaults to 10. You may define the preprocessor constant
FUSION_MAX_VECTOR_SIZE
@@ -53,7 +53,7 @@
#defineFUSION_MAX_VECTOR_SIZE20
@@ -294,7 +294,7 @@
{typedeftypenameremove_reference<Seq>::typeseq;
- typedefunfused_typed<fused_parallel_adder<seq>,
+ typedefunfused_typed<fused_parallel_adder<seq>,typenamempl::transform<seq,remove_reference<_>>::type>type;};
@@ -311,7 +311,7 @@
{inta=2;charb='X';// the second call is strictly typed with the types deduced from the
-// first call
+// first call
parallel_add(a,b)(3,2);parallel_add(a,b)(3);parallel_add(a,b)();
@@ -319,7 +319,7 @@
}
@@ -130,21 +130,21 @@
{typedefvoidresult_type;
- template<classSeq>
+ template<classSeq>voidoperator()(Seq&s)const{typenameresult_of::at_c<Seq,0>::typen=at_c<0>(s);typenameresult_of::at_c<Seq,1>::typewhat=at_c<1>(s);
- std::cout
- <<n<<" bottles of "<<what<<" on the wall.\n"
+ 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"
+ <<n<<" bottles of "<<what<<" on the wall.\n"<<std::endl;}};
@@ -158,7 +158,7 @@
}
[14]
Note that the type of a string literal is an array of const characters,
not constchar*. To get make_list to create a list with an element of a non-const
array type one must use the ref
@@ -247,8 +247,11 @@
- The entire library is found in the "boost/fusion" directory. Modules
- are organized in directories. Each module has its own header file placed in
- the same directory with the actual module-directory. For example, there exists
- "boost/fusion/support.hpp" in the same directory as "boost/fusion/support".
- Everything, except those found inside "detail" directories, is public.
+ The entire library is found in the "boost/fusion"
+ directory. Modules are organized in directories. Each module has its own header
+ file placed in the same directory with the actual module-directory. For example,
+ there exists "boost/fusion/support.hpp"
+ in the same directory as "boost/fusion/support". Everything, except
+ those found inside "detail" directories, is public.
- There is also a "boost/fusioninclude" directory
- that contains all the headers to all the components and modules. If you are
- unsure where to find a specific component or module, or don't want to fuss
- with hierarchy and nesting, use this.
+ There is also a "boost/fusion/include/"
+ directory that contains all the headers to all the components and modules.
+ If you are unsure where to find a specific component or module, or don't want
+ to fuss with hierarchy and nesting, use this.
The library is header-only. There is no need to build object files to link
against.
[1]
There are finer grained header files available if you wish to have more
control over which components to include (see section Orgainization
for details).
[2]
Unless otherwise noted, components are in namespace boost::fusion.
For the sake of simplicity, code in this quick start implies using directives for the fusion components
we will be using.
@@ -252,8 +252,11 @@
diff --git a/doc/html/fusion/sequence.html b/doc/html/fusion/sequence.html
index cc898476..8cc0c904 100644
--- a/doc/html/fusion/sequence.html
+++ b/doc/html/fusion/sequence.html
@@ -2,7 +2,7 @@
Sequence
-
+
@@ -59,7 +59,7 @@
type that can be used to iterate through the Sequence's elements.
diff --git a/doc/html/fusion/sequence/intrinsic.html b/doc/html/fusion/sequence/intrinsic.html
index 00c4f2da..1a1b6eb4 100644
--- a/doc/html/fusion/sequence/intrinsic.html
+++ b/doc/html/fusion/sequence/intrinsic.html
@@ -2,7 +2,7 @@
Intrinsic
-
+
@@ -37,11 +37,11 @@
Intrinsic functions, unlike Algorithms,
are not generic across the full Sequence
repertoire. They need to be implemented for each Fusion Sequence
- [4]
+ [4]
.
[5] result_of::at reflects the actual return
type of the function at. Sequence(s)
typically return references to its elements via the at function. If you want
@@ -151,8 +151,11 @@
[6] result_of::at_c reflects the actual
return type of the function at_c. Sequence(s)
typically return references to its elements via the at_c function. If you want
@@ -150,8 +150,11 @@
[7] result_of::at_key reflects the actual
return type of the function at_key. _sequence_s
typically return references to its elements via the at_key function. If you
@@ -152,8 +152,11 @@
diff --git a/doc/html/fusion/sequence/operator/comparison.html b/doc/html/fusion/sequence/operator/comparison.html
index 630081a7..9a5fcb59 100644
--- a/doc/html/fusion/sequence/operator/comparison.html
+++ b/doc/html/fusion/sequence/operator/comparison.html
@@ -2,7 +2,7 @@
Comparison
-
+
@@ -48,7 +48,7 @@
only until the result is clear.
diff --git a/doc/html/fusion/view.html b/doc/html/fusion/view.html
index 8dc1e871..36c24ff6 100644
--- a/doc/html/fusion/view.html
+++ b/doc/html/fusion/view.html
@@ -2,7 +2,7 @@
View
-
+
@@ -44,7 +44,7 @@
to copy and be passed around by value.
diff --git a/doc/html/fusion/view/single_view.html b/doc/html/fusion/view/single_view.html
index 1502251e..ea4df846 100644
--- a/doc/html/fusion/view/single_view.html
+++ b/doc/html/fusion/view/single_view.html
@@ -2,7 +2,7 @@
single_view
-
+
@@ -30,7 +30,7 @@
a value as a single element sequence.