diff --git a/doc/algorithm.qbk b/doc/algorithm.qbk
index d60df5fc..17084162 100644
--- a/doc/algorithm.qbk
+++ b/doc/algorithm.qbk
@@ -10,21 +10,23 @@
[heading Lazy Evaluation]
-Unlike __mpl__, Fusion algorithms are lazy and non sequence-type
-preserving. What does that mean? It means that when you operate on a
-sequence through a Fusion algorithm that returns a sequence, the sequence
-returned may not be of the same class as the original. This is by design.
-Runtime efficiency is given a high priority. Like __mpl__, and unlike
-__stl__, fusion algorithms are functional in nature such that algorithms
-are non mutating (no side effects). However, due to the high cost of
-returning full sequences such as vectors and lists, /Views/ are returned
-from Fusion algorithms instead. For example, the __transform__ algorithm
-does not actually return a transformed version of the original sequence.
-__transform__ returns a __transform_view__. This view holds a reference to
-the original sequence plus the transform function. Iteration over the
-__transform_view__ will apply the transform function over the sequence
-elements on demand. This /lazy/ evaluation scheme allows us to chain as
-many algorithms as we want without incurring a high runtime penalty.
+Unlike __mpl__, Fusion algorithms are lazy[except for some special cases
+such as __for_each__ and __copy__] and non sequence-type preserving.
+What does that mean? It means that when you operate on a sequence
+through a Fusion algorithm that returns a sequence, the sequence
+returned may not be of the same class as the original. This is by
+design. Runtime efficiency is given a high priority. Like __mpl__, and
+unlike __stl__, fusion algorithms are functional in nature such that
+algorithms are non mutating (no side effects). However, due to the high
+cost of returning full sequences such as vectors and lists, /Views/ are
+returned from Fusion algorithms instead. For example, the __transform__
+algorithm does not actually return a transformed version of the original
+sequence. __transform__ returns a __transform_view__. This view holds a
+reference to the original sequence plus the transform function.
+Iteration over the __transform_view__ will apply the transform function
+over the sequence elements on demand. This /lazy/ evaluation scheme
+allows us to chain as many algorithms as we want without incurring a
+high runtime penalty.
[heading Sequence Extension]
@@ -46,6 +48,61 @@ sequence type.
#include
#include <boost/fusion/adapted.hpp> diff --git a/doc/html/fusion/adapted/adapt_adt.html b/doc/html/fusion/adapted/adapt_adt.html index 5ebe6505..0e9935af 100644 --- a/doc/html/fusion/adapted/adapt_adt.html +++ b/doc/html/fusion/adapted/adapt_adt.html @@ -32,7 +32,7 @@ Access Sequence.- + Synopsis
BOOST_FUSION_ADAPT_ADT( @@ -43,7 +43,7 @@ )- + Expression Semantics
@@ -88,14 +88,14 @@ should be the fully namespace qualified name of the class type to be adapted.- + Header
#include <boost/fusion/adapted/adt/adapt_adt.hpp> #include <boost/fusion/include/adapt_adt.hpp>- + Example
namespace demo @@ -141,7 +141,7 @@ std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;- + See also
diff --git a/doc/html/fusion/adapted/adapt_assoc.html b/doc/html/fusion/adapted/adapt_assoc.html index 87032848..4bebeaf0 100644 --- a/doc/html/fusion/adapted/adapt_assoc.html +++ b/doc/html/fusion/adapted/adapt_assoc.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_ASSOC_STRUCT
- + Description
@@ -37,7 +37,7 @@ Sequence.
- + Synopsis
BOOST_FUSION_ADAPT_ASSOC_STRUCT( @@ -48,7 +48,7 @@ )- + Semantics
@@ -66,14 +66,14 @@ should be the fully namespace qualified name of the struct to be adapted.
- + Header
#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp> #include <boost/fusion/include/adapt_assoc_struct.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/adapt_assoc_adt.html b/doc/html/fusion/adapted/adapt_assoc_adt.html index 584914b1..f3cfe028 100644 --- a/doc/html/fusion/adapted/adapt_assoc_adt.html +++ b/doc/html/fusion/adapted/adapt_assoc_adt.html @@ -34,7 +34,7 @@ Sequence.- + Synopsis
BOOST_FUSION_ADAPT_ASSOC_ADT( @@ -45,7 +45,7 @@ )- + Expression Semantics
@@ -92,14 +92,14 @@ should be the fully namespace qualified name of the class type to be adapted.- + Header
#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp> #include <boost/fusion/include/adapt_assoc_adt.hpp>- + Example
namespace demo @@ -151,7 +151,7 @@ std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;- + See also
diff --git a/doc/html/fusion/adapted/adapt_assoc_struct_named.html b/doc/html/fusion/adapted/adapt_assoc_struct_named.html index 7d1bd0bd..ad995ea2 100644 --- a/doc/html/fusion/adapted/adapt_assoc_struct_named.html +++ b/doc/html/fusion/adapted/adapt_assoc_struct_named.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED
- + Description
@@ -38,7 +38,7 @@ Sequence. The given struct is adapted using the given name.
- + Synopsis
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED( @@ -58,7 +58,7 @@ )- + Semantics
@@ -83,14 +83,14 @@ should be the fully namespace qualified name of the struct to be converted.
- + Header
#include <boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp> #include <boost/fusion/include/adapt_assoc_struct_named.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html b/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html index 12946fe0..241b2755 100644 --- a/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html +++ b/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html @@ -34,7 +34,7 @@ Sequence.- + Synopsis
BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( @@ -46,7 +46,7 @@ )- + Expression Semantics
@@ -98,14 +98,14 @@ be adapted.- + Header
#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp> #include <boost/fusion/include/adapt_assoc_adt.hpp>- + Example
namespace demo @@ -159,7 +159,7 @@ std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;- + See also
diff --git a/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html b/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html index 21085f3a..f239ea74 100644 --- a/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html +++ b/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT
- + Description
@@ -38,7 +38,7 @@ Sequence.
- + Synopsis
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT( @@ -50,7 +50,7 @@ )- + Semantics
@@ -72,14 +72,14 @@ should be the fully namespace qualified name of the struct to be adapted.
- + Header
#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp> #include <boost/fusion/include/adapt_assoc_struct.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/adapt_struct.html b/doc/html/fusion/adapted/adapt_struct.html index e33c51c0..7c651ae1 100644 --- a/doc/html/fusion/adapted/adapt_struct.html +++ b/doc/html/fusion/adapted/adapt_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_STRUCT- + Description
@@ -36,7 +36,7 @@ Access Sequence.
- + Synopsis
BOOST_FUSION_ADAPT_STRUCT( @@ -47,7 +47,7 @@ )- + Semantics
@@ -63,14 +63,14 @@ should be the fully namespace qualified name of the struct to be adapted.
- + Header
#include <boost/fusion/adapted/struct/adapt_struct.hpp> #include <boost/fusion/include/adapt_struct.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/adapt_struct_named.html b/doc/html/fusion/adapted/adapt_struct_named.html index 73879f59..8e0d1337 100644 --- a/doc/html/fusion/adapted/adapt_struct_named.html +++ b/doc/html/fusion/adapted/adapt_struct_named.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_STRUCT_NAMED- + Description
@@ -37,7 +37,7 @@ Access Sequence. The given struct is adapted using the given name.
- + Synopsis
BOOST_FUSION_ADAPT_STRUCT_NAMED( @@ -57,7 +57,7 @@ )- + Semantics
@@ -81,14 +81,14 @@ should be the fully namespace qualified name of the struct to be converted.
- + Header
#include <boost/fusion/adapted/struct/adapt_struct_named.hpp> #include <boost/fusion/include/adapt_struct_named.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/adapt_tpl_adt.html b/doc/html/fusion/adapted/adapt_tpl_adt.html index 71c21f88..148345c9 100644 --- a/doc/html/fusion/adapted/adapt_tpl_adt.html +++ b/doc/html/fusion/adapted/adapt_tpl_adt.html @@ -33,7 +33,7 @@ Access Sequence.- + Synopsis
BOOST_FUSION_ADAPT_ADT( @@ -45,7 +45,7 @@ )- + Expression Semantics
@@ -95,14 +95,14 @@ be adapted.- + Header
#include <boost/fusion/adapted/adt/adapt_adt.hpp> #include <boost/fusion/include/adapt_adt.hpp>- + Example
namespace demo @@ -150,7 +150,7 @@ std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;- + See also
diff --git a/doc/html/fusion/adapted/adapt_tpl_struct.html b/doc/html/fusion/adapted/adapt_tpl_struct.html index 39b52eca..7c405dea 100644 --- a/doc/html/fusion/adapted/adapt_tpl_struct.html +++ b/doc/html/fusion/adapted/adapt_tpl_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_ADAPT_TPL_STRUCT
- + Description
@@ -37,7 +37,7 @@ Sequence.
- + Synopsis
BOOST_FUSION_ADAPT_TPL_STRUCT( @@ -49,7 +49,7 @@ )- + Semantics
@@ -69,14 +69,14 @@ should be the fully namespace qualified name of the struct to be adapted.
- + Header
#include <boost/fusion/adapted/struct/adapt_struct.hpp> #include <boost/fusion/include/adapt_struct.hpp>- + Example
namespace demo diff --git a/doc/html/fusion/adapted/array.html b/doc/html/fusion/adapted/array.html index 1734da54..1f7dda24 100644 --- a/doc/html/fusion/adapted/array.html +++ b/doc/html/fusion/adapted/array.html @@ -32,20 +32,20 @@ Access Sequence.- + Header
#include <boost/fusion/adapted/array.hpp> #include <boost/fusion/include/array.hpp>- + Model of
- + Example
int arr[3] = {1,2,3}; diff --git a/doc/html/fusion/adapted/boost__array.html b/doc/html/fusion/adapted/boost__array.html index 621b83a5..af687ccc 100644 --- a/doc/html/fusion/adapted/boost__array.html +++ b/doc/html/fusion/adapted/boost__array.html @@ -33,20 +33,20 @@ Access Sequence.- + Header
#include <boost/fusion/adapted/boost_array.hpp> #include <boost/fusion/include/boost_array.hpp>- + Model of
- + Example
boost::array<int,3> arr = {{1,2,3}}; @@ -58,7 +58,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 e2bb1048..2967b1af 100644 --- a/doc/html/fusion/adapted/boost__tuple.html +++ b/doc/html/fusion/adapted/boost__tuple.html @@ -33,19 +33,19 @@ Sequence.
- + Header
#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"); @@ -53,7 +53,7 @@ std::cout << *boost::fusion::next(boost::fusion::begin(example_tuple)) << '\n';- + See also
diff --git a/doc/html/fusion/adapted/define_assoc_struct.html b/doc/html/fusion/adapted/define_assoc_struct.html index 612d873f..7d714725 100644 --- a/doc/html/fusion/adapted/define_assoc_struct.html +++ b/doc/html/fusion/adapted/define_assoc_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_DEFINE_ASSOC_STRUCT
- + Description
@@ -38,7 +38,7 @@ Sequence.
- + Synopsis
BOOST_FUSION_DEFINE_ASSOC_STRUCT( @@ -68,7 +68,7 @@- + Expression Semantics
@@ -182,14 +182,14 @@- + Header
#include <boost/fusion/adapted/struct/define_assoc_struct.hpp> #include <boost/fusion/include/define_assoc_struct.hpp>- + Example
namespace keys diff --git a/doc/html/fusion/adapted/define_assoc_tpl_struct.html b/doc/html/fusion/adapted/define_assoc_tpl_struct.html index c5156785..da535aa0 100644 --- a/doc/html/fusion/adapted/define_assoc_tpl_struct.html +++ b/doc/html/fusion/adapted/define_assoc_tpl_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT- + Description
@@ -38,7 +38,7 @@ Sequence.
- + Synopsis
BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT( @@ -73,7 +73,7 @@- + Expression Semantics
@@ -187,14 +187,14 @@- + Header
#include <boost/fusion/adapted/struct/define_assoc_struct.hpp> #include <boost/fusion/include/define_assoc_struct.hpp>- + Example
namespace keys diff --git a/doc/html/fusion/adapted/define_struct.html b/doc/html/fusion/adapted/define_struct.html index 325229e6..4fe809e3 100644 --- a/doc/html/fusion/adapted/define_struct.html +++ b/doc/html/fusion/adapted/define_struct.html @@ -33,7 +33,7 @@ Access Sequence.- + Synopsis
BOOST_FUSION_DEFINE_STRUCT( @@ -63,7 +63,7 @@- + Expression Semantics
@@ -174,14 +174,14 @@- + Header
#include <boost/fusion/adapted/struct/define_struct.hpp> #include <boost/fusion/include/define_struct.hpp>- + Example
// demo::employee is a Fusion sequence diff --git a/doc/html/fusion/adapted/define_tpl_struct.html b/doc/html/fusion/adapted/define_tpl_struct.html index d0f00a3a..da346147 100644 --- a/doc/html/fusion/adapted/define_tpl_struct.html +++ b/doc/html/fusion/adapted/define_tpl_struct.html @@ -27,7 +27,7 @@ BOOST_FUSION_DEFINE_TPL_STRUCT
- + Description
@@ -37,7 +37,7 @@ Access Sequence.
- + Synopsis
BOOST_FUSION_DEFINE_TPL_STRUCT( @@ -72,7 +72,7 @@- + Expression Semantics
@@ -183,14 +183,14 @@- + Header
#include <boost/fusion/adapted/struct/define_struct.hpp> #include <boost/fusion/include/define_struct.hpp>- + Example
// Any instantiated demo::employee is a Fusion sequence diff --git a/doc/html/fusion/adapted/mpl_sequence.html b/doc/html/fusion/adapted/mpl_sequence.html index 6bfe4104..ec8884a1 100644 --- a/doc/html/fusion/adapted/mpl_sequence.html +++ b/doc/html/fusion/adapted/mpl_sequence.html @@ -32,14 +32,14 @@ sequences fully conforming fusion sequences.
- + Header
#include <boost/fusion/adapted/mpl.hpp> #include <boost/fusion/include/mpl.hpp>- + Model of
@@ -60,7 +60,7 @@
- + Example
mpl::vector_c<int, 123, 456> vec_c; @@ -73,7 +73,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 2036d626..fe600b87 100644 --- a/doc/html/fusion/adapted/std__pair.html +++ b/doc/html/fusion/adapted/std__pair.html @@ -33,20 +33,20 @@ Access Sequence.
- + Header
#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!!!"); @@ -55,7 +55,7 @@ std::cout << p << std::endl;- + See also
diff --git a/doc/html/fusion/algorithm.html b/doc/html/fusion/algorithm.html index 1514211b..53660317 100644 --- a/doc/html/fusion/algorithm.html +++ b/doc/html/fusion/algorithm.html @@ -7,7 +7,7 @@ - +
@@ -20,13 +20,15 @@
- + Lazy Evaluation
@@ -67,7 +69,7 @@ as we want without incurring a high runtime penalty.
- + Sequence Extension
@@ -87,7 +89,7 @@ functions to convert back to the original sequence type.
- + Header
#include <boost/fusion/algorithm.hpp> @@ -105,7 +107,7 @@