diff --git a/changelist.txt b/changelist.txt index 608b3c92..1e862f43 100644 --- a/changelist.txt +++ b/changelist.txt @@ -15,4 +15,6 @@ Interface Changes BOOST_FUSION_DEFINE_TPL_STRUCT, BOOST_FUSION_DEFINE_ASSOC_STRUCT and BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT - June 18, 2010: Added reverse_fold, iter_fold and reverse_iter_fold. Fixes - Boost Trac Ticket #1623. \ No newline at end of file + Boost Trac Ticket #1623. +- October 7, 2010: Added BOOST_FUSION_ADAPT_ADT, BOOST_FUSION_ADAPT_ASSOC_ADT, + BOOST_FUSION_ADAPT_TPL_ADT and BOOST_FUSION_ADAPT_ASSOC_TPL_ADT \ No newline at end of file diff --git a/doc/adapted.qbk b/doc/adapted.qbk index 7b4324f9..262671a3 100644 --- a/doc/adapted.qbk +++ b/doc/adapted.qbk @@ -548,9 +548,441 @@ namespace qualified name of the struct to be converted. [endsect] -[section:define_struct BOOST_FUSION_DEFINE_STRUCT] +[section:adapt_adt BOOST_FUSION_ADAPT_ADT] -[heading Description] +BOOST_FUSION_ADAPT_ADT is a macro than can be used to generate all the +necessary boilerplate to adapt an arbitrary class type as a model of +__random_access_sequence__. + +[heading Synopsis] + + BOOST_FUSION_ADAPT_ADT( + type_name, + (attribute_type0, attribute_const_type0, get_expr0, set_expr0) + (attribute_type1, attribute_const_type1, get_expr1, set_expr1) + ... + ) + +[heading Expression Semantics] + +The above macro generates the necessary code to adapt `type_name` +as a model of __random_access_sequence__. +The sequence of +[^(attribute_type['N], attribute_const_type['N], get_expr['N], set_expr['N])] +quadruples declares the types, const types, get-expressions and set-expressions +of the elements that are part of the adapted fusion sequence. +[^get_expr['N]] is the expression that is invoked to get the ['N]th element +of an instance of `type_name`. This expression may access a variable named +`obj` of type `type_name&` or `type_name const&` which represents the underlying +instance of `type_name`. +[^attribute_type['N]] and [^attribute_const_type['N]] may specify the types +that [^get_expr['N]] denotes to. +[^set_expr['N]] is the expression that is invoked to set the ['N]th element +of an instance of `type_name`. This expression may access variables named +`obj` of type `type_name&`, which represent the corresponding instance of +`type_name`, and `val` of an arbitrary const-qualified reference template type +parameter `Val`, which represents the right operand of the assignment +expression. + +The actual return type of fusion's intrinsic sequence access (meta-)functions +when in invoked with (an instance of) `type_name` is a proxy type. +This type is implicitly convertible to the attribute type via [^get_expr['N]] and +forwards assignment to the underlying element via [^set_expr['N]]. +The value type (that is the type returned by __result_of_value_of__, +__result_of_value_at__ and __result_of_value_at_c__) of the ['N]th element +is [^attribute_type['N]] with const-qualifier and reference removed. + +The macro should be used at global scope, and `type_name` should be the fully +namespace qualified name of the struct to be converted. + +[heading Header] + + #include + #include + +[heading Example] + namespace demo + { + struct employee + { + private: + std::string name; + int age; + + public: + void set_name(std::string const& n) + { + name=n; + } + + void set_age(int a) + { + age=a; + } + + std::string const& get_name()const + { + return name; + } + + int get_age()const + { + return age; + } + }; + } + + BOOST_FUSION_ADAPT_ADT( + demo::employee, + (std::string const&, std::string const&, obj.get_name(), obj.set_name(val)) + (int, int, obj.get_age(), obj.set_age(val))) + + demo::employee e; + front(e)="Edward Norton"; + back(e)=41; + //Prints 'Edward Norton is 41 years old' + std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl; + +[heading See also] + +__adt_attribute_proxy__ + +[endsect] + +[section:adapt_tpl_adt BOOST_FUSION_ADAPT_TPL_ADT] + +BOOST_FUSION_ADAPT_TPL_ADT is a macro than can be used to generate all the +necessary boilerplate to adapt an arbitrary template class type as a model of +__random_access_sequence__. + +[heading Synopsis] + + BOOST_FUSION_ADAPT_ADT( + (template_param0)(template_param1)..., + (type_name) (specialization_param0)(specialization_param1)..., + (attribute_type0, attribute_const_type0, get_expr0, set_expr0) + (attribute_type1, attribute_const_type1, get_expr1, set_expr1) + ... + ) + +[heading Expression Semantics] + +The above macro generates the necessary code to adapt `type_name` +or an arbitrary specialization of `type_name` +as a model of __random_access_sequence__. +The sequence `(template_param0)(template_param1)...` declares the names of +the template type parameters used. +The sequence `(specialization_param0)(specialization_param1)...` +declares the template parameters of the actual specialization of `type_name` +that is adapted as a fusion sequence. +The sequence of +[^(attribute_type['N], attribute_const_type['N], get_expr['N], set_expr['N])] +quadruples declares the types, const types, get-expressions and set-expressions +of the elements that are part of the adapted fusion sequence. +[^get_expr['N]] is the expression that is invoked to get the ['N]th element +of an instance of `type_name`. This expression may access a variable named +`obj` of type `type_name&` or `type_name const&` which represents the underlying +instance of `type_name`. +[^attribute_type['N]] and [^attribute_const_type['N]] may specify the types +that [^get_expr['N]] denotes to. +[^set_expr['N]] is the expression that is invoked to set the ['N]th element +of an instance of `type_name`. This expression may access variables named +`obj` of type `type_name&`, which represent the corresponding instance of +`type_name`, and `val` of an arbitrary const-qualified reference template type +parameter `Val`, which represents the right operand of the assignment +expression. + +The actual return type of fusion's intrinsic sequence access (meta-)functions +when in invoked with (an instance of) `type_name` is a proxy type. +This type is implicitly convertible to the attribute type via [^get_expr['N]] and +forwards assignment to the underlying element via [^set_expr['N]]. +The value type (that is the type returned by __result_of_value_of__, +__result_of_value_at__ and __result_of_value_at_c__) of the ['N]th element +is [^attribute_type['N]] with const-qualifier and reference removed. + +The macro should be used at global scope, and `type_name` should be the fully +namespace qualified name of the struct to be converted. + +[heading Header] + + #include + #include + +[heading Example] + namespace demo + { + template + struct employee + { + private: + Name name; + Age age; + + public: + void set_name(Name const& n) + { + name=n; + } + + void set_age(Age const& a) + { + age=a; + } + + Name const& get_name()const + { + return name; + } + + Age const& get_age()const + { + return age; + } + }; + } + + BOOST_FUSION_ADAPT_TPL_ADT( + (Name)(Age), + (demo::employee) (Name)(Age), + (Name const&, Name const&, obj.get_name(), obj.set_name(val)) + (Age const&, Age const&, obj.get_age(), obj.set_age(val))) + + demo::employee e; + boost::fusion::front(e)="Edward Norton"; + boost::fusion::back(e)=41; + //Prints 'Edward Norton is 41 years old' + std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl; + +[heading See also] + +__adt_attribute_proxy__ + +[endsect] + +[section:adapt_assoc_adt BOOST_FUSION_ADAPT_ASSOC_ADT] + +BOOST_FUSION_ADAPT_ASSOC_ADT is a macro than can be used to generate all the +necessary boilerplate to adapt an arbitrary class type as a model of +__random_access_sequence__ and __associative_sequence__. + +[heading Synopsis] + + BOOST_FUSION_ADAPT_ASSOC_ADT( + type_name, + (attribute_type0, attribute_const_type0, get_expr0, set_expr0, key_type0) + (attribute_type1, attribute_const_type1, get_expr1, set_expr1, key_type1) + ... + ) + +[heading Expression Semantics] + +The above macro generates the necessary code to adapt `type_name` +as a model of __random_access_sequence__ and __associative_sequence__. +The sequence of +[^(attribute_type['N], attribute_const_type['N], get_expr['N], set_expr['N], key_type['N])] +5-tuples declares the types, const types, get-expressions, set-expressions and key types +of the elements that are part of the adapted fusion sequence. +[^get_expr['N]] is the expression that is invoked to get the ['N]th element +of an instance of `type_name`. This expression may access a variable named +`obj` of type `type_name&` or `type_name const&` which represents the underlying +instance of `type_name`. +[^attribute_type['N]] and [^attribute_const_type['N]] may specify the types +that [^get_expr['N]] denotes to. +[^set_expr['N]] is the expression that is invoked to set the ['N]th element +of an instance of `type_name`. This expression may access variables named +`obj` of type `type_name&`, which represent the corresponding instance of +`type_name`, and `val` of an arbitrary const-qualified reference template type +parameter `Val`, which represents the right operand of the assignment +expression. + +The actual return type of fusion's intrinsic sequence access (meta-)functions +when in invoked with (an instance of) `type_name` is a proxy type. +This type is implicitly convertible to the attribute type via [^get_expr['N]] and +forwards assignment to the underlying element via [^set_expr['N]]. +The value type (that is the type returned by __result_of_value_of__, +__result_of_value_at__ and __result_of_value_at_c__) of the ['N]th element +is [^attribute_type['N]] with const-qualifier and reference removed. + +The macro should be used at global scope, and `type_name` should be the fully +namespace qualified name of the struct to be converted. + +[heading Header] + + #include + #include + +[heading Example] + namespace demo + { + struct employee + { + private: + std::string name; + int age; + + public: + void set_name(std::string const& n) + { + name=n; + } + + void set_age(int a) + { + age=a; + } + + std::string const& get_name()const + { + return name; + } + + int get_age()const + { + return age; + } + }; + } + + namespace keys + { + struct name; + struct age; + } + + BOOST_FUSION_ADAPT_ASSOC_ADT( + demo::employee, + (std::string const&, std::string const&, obj.get_name(), obj.set_name(val), keys::name) + (int, int, obj.get_age(), obj.set_age(val), keys::age)) + + demo::employee e; + at_key(e)="Edward Norton"; + at_key(e)=41; + //Prints 'Edward Norton is 41 years old' + std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl; + +[heading See also] + +__adt_attribute_proxy__ + +[endsect] + +[section:adapt_assoc_tpl_adt BOOST_FUSION_ADAPT_ASSOC_TPL_ADT] + +BOOST_FUSION_ADAPT_ASSOC_TPL_ADT is a macro than can be used to generate all the +necessary boilerplate to adapt an arbitrary template class type as a model of +__random_access_sequence__ and __associative_sequence__. + +[heading Synopsis] + + BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( + (template_param0)(template_param1)..., + (type_name) (specialization_param0)(specialization_param1)..., + (attribute_type0, attribute_const_type0, get_expr0, set_expr0, key_type0) + (attribute_type1, attribute_const_type1, get_expr1, set_expr1, key_type1) + ... + ) + +[heading Expression Semantics] + +The above macro generates the necessary code to adapt `type_name` +or an arbitrary specialization of `type_name` +as a model of __random_access_sequence__ and __associative_sequence__. +The sequence `(template_param0)(template_param1)...` declares the names of +the template type parameters used. +The sequence `(specialization_param0)(specialization_param1)...` +declares the template parameters of the actual specialization of `type_name` +that is adapted as a fusion sequence. +The sequence of +[^(attribute_type['N], attribute_const_type['N], get_expr['N], set_expr['N], key_type['N])] +5-tuples declares the types, const types, get-expressions, set-expressions and key types +of the elements that are part of the adapted fusion sequence. +[^get_expr['N]] is the expression that is invoked to get the ['N]th element +of an instance of `type_name`. This expression may access a variable named +`obj` of type `type_name&` or `type_name const&` which represents the underlying +instance of `type_name`. +[^attribute_type['N]] and [^attribute_const_type['N]] may specify the types +that [^get_expr['N]] denotes to. +[^set_expr['N]] is the expression that is invoked to set the ['N]th element +of an instance of `type_name`. This expression may access variables named +`obj` of type `type_name&`, which represent the corresponding instance of +`type_name`, and `val` of an arbitrary const-qualified reference template type +parameter `Val`, which represents the right operand of the assignment +expression. + +The actual return type of fusion's intrinsic sequence access (meta-)functions +when in invoked with (an instance of) `type_name` is a proxy type. +This type is implicitly convertible to the attribute type via [^get_expr['N]] and +forwards assignment to the underlying element via [^set_expr['N]]. +The value type (that is the type returned by __result_of_value_of__, +__result_of_value_at__ and __result_of_value_at_c__) of the ['N]th element +is [^attribute_type['N]] with const-qualifier and reference removed. + +The macro should be used at global scope, and `type_name` should be the fully +namespace qualified name of the struct to be converted. + +[heading Header] + + #include + #include + +[heading Example] + namespace demo + { + template + struct employee + { + private: + Name name; + Age age; + + public: + void set_name(Name const& n) + { + name=n; + } + + void set_age(Age const& a) + { + age=a; + } + + Name const& get_name()const + { + return name; + } + + Age const& get_age()const + { + return age; + } + }; + } + + namespace keys + { + struct name; + struct age; + } + + BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( + (Name)(Age), + (demo::employee) (Name)(Age), + (Name const&, Name const&, obj.get_name(), obj.set_name(val), keys::name) + (Age const&, Age const&, obj.get_age(), obj.set_age(val), keys::age)) + + demo::employee e; + at_key(e)="Edward Norton"; + at_key(e)=41; + //Prints 'Edward Norton is 41 years old' + std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl; + +[heading See also] + +__adt_attribute_proxy__ + +[endsect] + +[section:define_struct BOOST_FUSION_DEFINE_STRUCT] BOOST_FUSION_DEFINE_STRUCT is a macro that can be used to generate all the necessary boilerplate to define and adapt an arbitrary struct as a model of diff --git a/doc/algorithm.qbk b/doc/algorithm.qbk index 46f1557a..d60df5fc 100644 --- a/doc/algorithm.qbk +++ b/doc/algorithm.qbk @@ -1,5 +1,6 @@ [/============================================================================== Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger + Copyright (C) 2010 Christopher Schmidt Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -91,7 +92,7 @@ the first call) and [arg_desc] of `seq`. [[Parameter][Requirement][Description]] [[`seq`][A model of seq_concept_macro][Operation's argument]] [[`initial_state`][Any type][Initial state]] - [[`f`][`f(s,arg_id_macro)` with return type `__boost_result_of_call__::type` must be a valid expression for current state `s` of type `S`, and for each invoke_desc_macro][Operation's argument]] + [[`f`][`f(s,arg_id_macro)` with return type `__boost_result_of_call__::type` for current state `s` of type `S`, and for each invoke_desc_macro][Operation's argument]] ] [heading Expression Semantics] diff --git a/doc/changelog.qbk b/doc/changelog.qbk index ca301a2a..67a65d0e 100644 --- a/doc/changelog.qbk +++ b/doc/changelog.qbk @@ -1,5 +1,6 @@ [/============================================================================== Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger + Copyright (C) 2010 Christopher Schmidt Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -34,6 +35,8 @@ This section summarizes significant changes to the Fusion library. __define_assoc_struct__ and __define_assoc_tpl_struct__ (Christopher Schmidt) * June 18, 2010: Added __reverse_fold__, __iter_fold__ and __reverse_iter_fold__ (Christopher Schmidt) - +* October 7, 2010: Added __adapt_adt__, __adapt_tpl_adt__, + __adapt_assoc_adt__ and __adapt_assoc_tpl_adt__ (Joel de Guzman, + Hartmut Kaiser and Christopher Schmidt) [endsect] diff --git a/doc/fusion.qbk b/doc/fusion.qbk index 9118c130..50892d7d 100644 --- a/doc/fusion.qbk +++ b/doc/fusion.qbk @@ -1,5 +1,6 @@ [/============================================================================== Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger + Copyright (C) 2010 Christopher Schmidt Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -131,16 +132,20 @@ [def __std_pair__ [link fusion.adapted.std__pair `std::pair`]] [def __boost_array__ [link fusion.adapted.boost__array `boost::array`]] [def __mpl_sequence__ [link fusion.adapted.mpl_sequence mpl sequence]] -[def __adapt_tpl_struct__ [link fusion.adapted.adapt_tpl_struct BOOST_FUSION_ADAPT_TPL_STRUCT]] -[def __adapt_struct_named__ [link fusion.adapted.adapt_struct_named BOOST_FUSION_ADAPT_STRUCT_NAMED]] -[def __adapt_struct_named_ns__ [link fusion.adapted.adapt_struct_named BOOST_FUSION_ADAPT_STRUCT_NAMED_NS]] -[def __adapt_assoc_tpl_struct__ [link fusion.adapted.adapt_assoc_tpl_struct BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT]] -[def __adapt_assoc_struct_named__ [link fusion.adapted.adapt_assoc_struct_named BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED]] -[def __adapt_assoc_struct_named_ns__ [link fusion.adapted.adapt_assoc_struct_named BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS]] -[def __define_struct__ [link fusion.adapted.define_struct BOOST_FUSION_DEFINE_STRUCT]] -[def __define_tpl_struct__ [link fusion.adapted.define_tpl_struct BOOST_FUSION_DEFINE_TPL_STRUCT]] -[def __define_assoc_struct__ [link fusion.adapted.define_assoc_struct BOOST_FUSION_DEFINE_ASSOC_STRUCT]] -[def __define_assoc_tpl_struct__ [link fusion.adapted.define_assoc_tpl_struct BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT]] +[def __adapt_tpl_struct__ [link fusion.adapted.adapt_tpl_struct `BOOST_FUSION_ADAPT_TPL_STRUCT`]] +[def __adapt_struct_named__ [link fusion.adapted.adapt_struct_named `BOOST_FUSION_ADAPT_STRUCT_NAMED`]] +[def __adapt_struct_named_ns__ [link fusion.adapted.adapt_struct_named `BOOST_FUSION_ADAPT_STRUCT_NAMED_NS`]] +[def __adapt_assoc_tpl_struct__ [link fusion.adapted.adapt_assoc_tpl_struct `BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT`]] +[def __adapt_assoc_struct_named__ [link fusion.adapted.adapt_assoc_struct_named `BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED`]] +[def __adapt_assoc_struct_named_ns__ [link fusion.adapted.adapt_assoc_struct_named `BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS`]] +[def __adapt_adt__ [link fusion.adapted.adapt_adt `BOOST_FUSION_ADAPT_ADT`]] +[def __adapt_tpl_adt__ [link fusion.adapted.adapt_tpl_adt `BOOST_FUSION_ADAPT_TPL_ADT`]] +[def __adapt_assoc_adt__ [link fusion.adapted.adapt_assoc_adt `BOOST_FUSION_ADAPT_ASSOC_ADT`]] +[def __adapt_assoc_tpl_adt__ [link fusion.adapted.adapt_assoc_tpl_adt `BOOST_FUSION_ADAPT_ASSOC_TPL_ADT`]] +[def __define_struct__ [link fusion.adapted.define_struct `BOOST_FUSION_DEFINE_STRUCT`]] +[def __define_tpl_struct__ [link fusion.adapted.define_tpl_struct `BOOST_FUSION_DEFINE_TPL_STRUCT`]] +[def __define_assoc_struct__ [link fusion.adapted.define_assoc_struct `BOOST_FUSION_DEFINE_ASSOC_STRUCT`]] +[def __define_assoc_tpl_struct__ [link fusion.adapted.define_assoc_tpl_struct `BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT`]] [def __intrinsic__ [link fusion.sequence.intrinsic Intrinsic]] [def __intrinsics__ [link fusion.sequence.intrinsic Intrinsics]] @@ -317,6 +322,8 @@ [def __sequence_facade__ [link fusion.extension.sequence_facade `sequence_facade`]] [def __iterator_facade__ [link fusion.extension.iterator_facade `iterator_facade`]] +[def __adt_attribute_proxy__ [link fusion.notes.adt_attribute_proxy `adt_attribute_proxy`]] + [include preface.qbk] [include introduction.qbk] [include quick_start.qbk] diff --git a/doc/html/fusion/adapted.html b/doc/html/fusion/adapted.html index c050010f..14543404 100644 --- a/doc/html/fusion/adapted.html +++ b/doc/html/fusion/adapted.html @@ -38,6 +38,10 @@
BOOST_FUSION_ADAPT_ASSOC_STRUCT
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED
+
BOOST_FUSION_ADAPT_ADT
+
BOOST_FUSION_ADAPT_TPL_ADT
+
BOOST_FUSION_ADAPT_ASSOC_ADT
+
BOOST_FUSION_ADAPT_ASSOC_TPL_ADT
BOOST_FUSION_DEFINE_STRUCT
BOOST_FUSION_DEFINE_TPL_STRUCT
BOOST_FUSION_DEFINE_ASSOC_STRUCT
@@ -56,7 +60,7 @@ various data structures, non-intrusively, as full fledged Fusion sequences.

- + Header

#include <boost/fusion/adapted.hpp>
diff --git a/doc/html/fusion/adapted/adapt_adt.html b/doc/html/fusion/adapted/adapt_adt.html
new file mode 100644
index 00000000..d4b6d12b
--- /dev/null
+++ b/doc/html/fusion/adapted/adapt_adt.html
@@ -0,0 +1,165 @@
+
+
+
+BOOST_FUSION_ADAPT_ADT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+ +

+ BOOST_FUSION_ADAPT_ADT is a macro than can be used to generate all the necessary + boilerplate to adapt an arbitrary class type as a model of Random + Access Sequence. +

+
+ + Synopsis +
+
BOOST_FUSION_ADAPT_ADT(
+    type_name,
+    (attribute_type0, attribute_const_type0, get_expr0, set_expr0)
+    (attribute_type1, attribute_const_type1, get_expr1, set_expr1)
+    ...
+    )
+
+
+ + Expression + Semantics +
+

+ The above macro generates the necessary code to adapt type_name + as a model of Random + Access Sequence. The sequence of (attribute_typeN, + attribute_const_typeN, get_exprN, + set_exprN) quadruples declares the types, + const types, get-expressions and set-expressions of the elements that are + part of the adapted fusion sequence. get_exprN + is the expression that is invoked to get the Nth element + of an instance of type_name. + This expression may access a variable named obj + of type type_name& + or type_name const& which represents the underlying instance + of type_name. attribute_typeN + and attribute_const_typeN may specify + the types that get_exprN denotes + to. set_exprN is the expression that + is invoked to set the Nth element of an instance of + type_name. This expression + may access variables named obj + of type type_name&, + which represent the corresponding instance of type_name, + and val of an arbitrary const-qualified + reference template type parameter Val, + which represents the right operand of the assignment expression. +

+

+ The actual return type of fusion's intrinsic sequence access (meta-)functions + when in invoked with (an instance of) type_name + is a proxy type. This type is implicitly convertible to the attribute type + via get_exprN and forwards assignment + to the underlying element via set_exprN. + The value type (that is the type returned by result_of::value_of, result_of::value_at and result_of::value_at_c) of the Nth + element is attribute_typeN with const-qualifier + and reference removed. +

+

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

+
+ + Header +
+
#include <boost/fusion/adapted/adt/adapt_adt.hpp>
+#include <boost/fusion/include/adapt_adt.hpp>
+
+
+ + Example +
+
namespace demo
+{
+    struct employee
+    {
+    private:
+        std::string name;
+        int age;
+            
+    public:
+        void set_name(std::string const& n)
+        {
+            name=n;
+        }
+            
+        void set_age(int a)
+        {
+            age=a;
+        }
+            
+        std::string const& get_name()const
+        {
+            return name;
+        }
+            
+        int get_age()const
+        {
+            return age;
+        }
+    };
+}
+
+BOOST_FUSION_ADAPT_ADT(
+    demo::employee,
+    (std::string const&, std::string const&, obj.get_name(), obj.set_name(val))
+    (int, int, obj.get_age(), obj.set_age(val)))
+
+demo::employee e;
+front(e)="Edward Norton";
+back(e)=41;
+//Prints 'Edward Norton is 41 years old'
+std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;
+
+
+ + See also +
+

+ adt_attribute_proxy +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/fusion/adapted/adapt_assoc.html b/doc/html/fusion/adapted/adapt_assoc.html index 015f20d0..9fc434be 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
new file mode 100644
index 00000000..4ab345db
--- /dev/null
+++ b/doc/html/fusion/adapted/adapt_assoc_adt.html
@@ -0,0 +1,175 @@
+
+
+
+BOOST_FUSION_ADAPT_ASSOC_ADT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+ +

+ BOOST_FUSION_ADAPT_ASSOC_ADT is a macro than can be used to generate all + the necessary boilerplate to adapt an arbitrary class type as a model of + Random Access + Sequence and Associative + Sequence. +

+
+ + Synopsis +
+
BOOST_FUSION_ADAPT_ASSOC_ADT(
+    type_name,
+    (attribute_type0, attribute_const_type0, get_expr0, set_expr0, key_type0)
+    (attribute_type1, attribute_const_type1, get_expr1, set_expr1, key_type1)
+    ...
+    )
+
+
+ + Expression + Semantics +
+

+ The above macro generates the necessary code to adapt type_name + as a model of Random + Access Sequence and Associative + Sequence. The sequence of (attribute_typeN, + attribute_const_typeN, get_exprN, + set_exprN, key_typeN) + 5-tuples declares the types, const types, get-expressions, set-expressions + and key types of the elements that are part of the adapted fusion sequence. + get_exprN is the expression that + is invoked to get the Nth element of an instance of + type_name. This expression + may access a variable named obj + of type type_name& + or type_name const& which represents the underlying instance + of type_name. attribute_typeN + and attribute_const_typeN may specify + the types that get_exprN denotes + to. set_exprN is the expression that + is invoked to set the Nth element of an instance of + type_name. This expression + may access variables named obj + of type type_name&, + which represent the corresponding instance of type_name, + and val of an arbitrary const-qualified + reference template type parameter Val, + which represents the right operand of the assignment expression. +

+

+ The actual return type of fusion's intrinsic sequence access (meta-)functions + when in invoked with (an instance of) type_name + is a proxy type. This type is implicitly convertible to the attribute type + via get_exprN and forwards assignment + to the underlying element via set_exprN. + The value type (that is the type returned by result_of::value_of, result_of::value_at and result_of::value_at_c) of the Nth + element is attribute_typeN with const-qualifier + and reference removed. +

+

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

+
+ + Header +
+
#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
+#include <boost/fusion/include/adapt_assoc_adt.hpp>
+
+
+ + Example +
+
namespace demo
+{
+    struct employee
+    {
+    private:
+        std::string name;
+        int age;
+            
+    public:
+        void set_name(std::string const& n)
+        {
+            name=n;
+        }
+            
+        void set_age(int a)
+        {
+            age=a;
+        }
+            
+        std::string const& get_name()const
+        {
+            return name;
+        }
+            
+        int get_age()const
+        {
+            return age;
+        }
+    };
+}
+
+namespace keys
+{
+    struct name;
+    struct age;
+}
+
+BOOST_FUSION_ADAPT_ASSOC_ADT(
+    demo::employee,
+    (std::string const&, std::string const&, obj.get_name(), obj.set_name(val), keys::name)
+    (int, int, obj.get_age(), obj.set_age(val), keys::age))
+
+demo::employee e;
+at_key<keys::name>(e)="Edward Norton";
+at_key<keys::age>(e)=41;
+//Prints 'Edward Norton is 41 years old'
+std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;
+
+
+ + See also +
+

+ adt_attribute_proxy +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/fusion/adapted/adapt_assoc_struct_named.html b/doc/html/fusion/adapted/adapt_assoc_struct_named.html index 823db0a6..9cfe3f69 100644 --- a/doc/html/fusion/adapted/adapt_assoc_struct_named.html +++ b/doc/html/fusion/adapted/adapt_assoc_struct_named.html @@ -7,7 +7,7 @@ - + @@ -20,14 +20,14 @@

-PrevUpHomeNext +PrevUpHomeNext
- + 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
@@ -127,7 +127,7 @@
 
 
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html b/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html new file mode 100644 index 00000000..01861d7f --- /dev/null +++ b/doc/html/fusion/adapted/adapt_assoc_tpl_adt.html @@ -0,0 +1,182 @@ + + + +BOOST_FUSION_ADAPT_ASSOC_TPL_ADT + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+ +

+ BOOST_FUSION_ADAPT_ASSOC_TPL_ADT is a macro than can be used to generate + all the necessary boilerplate to adapt an arbitrary template class type as + a model of Random + Access Sequence and Associative + Sequence. +

+
+ + Synopsis +
+
BOOST_FUSION_ADAPT_ASSOC_TPL_ADT(
+    (template_param0)(template_param1)...,
+    (type_name) (specialization_param0)(specialization_param1)...,
+    (attribute_type0, attribute_const_type0, get_expr0, set_expr0, key_type0)
+    (attribute_type1, attribute_const_type1, get_expr1, set_expr1, key_type1)
+    ...
+    )
+
+
+ + Expression + Semantics +
+

+ The above macro generates the necessary code to adapt type_name + or an arbitrary specialization of type_name + as a model of Random + Access Sequence and Associative + Sequence. The sequence (template_param0)(template_param1)... + declares the names of the template type parameters used. The sequence (specialization_param0)(specialization_param1)... declares the template parameters of the + actual specialization of type_name + that is adapted as a fusion sequence. The sequence of (attribute_typeN, + attribute_const_typeN, get_exprN, + set_exprN, key_typeN) + 5-tuples declares the types, const types, get-expressions, set-expressions + and key types of the elements that are part of the adapted fusion sequence. + get_exprN is the expression that + is invoked to get the Nth element of an instance of + type_name. This expression + may access a variable named obj + of type type_name& + or type_name const& which represents the underlying instance + of type_name. attribute_typeN + and attribute_const_typeN may specify + the types that get_exprN denotes + to. set_exprN is the expression that + is invoked to set the Nth element of an instance of + type_name. This expression + may access variables named obj + of type type_name&, + which represent the corresponding instance of type_name, + and val of an arbitrary const-qualified + reference template type parameter Val, + which represents the right operand of the assignment expression. +

+

+ The actual return type of fusion's intrinsic sequence access (meta-)functions + when in invoked with (an instance of) type_name + is a proxy type. This type is implicitly convertible to the attribute type + via get_exprN and forwards assignment + to the underlying element via set_exprN. + The value type (that is the type returned by result_of::value_of, result_of::value_at and result_of::value_at_c) of the Nth + element is attribute_typeN with const-qualifier + and reference removed. +

+

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

+
+ + Header +
+
#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
+#include <boost/fusion/include/adapt_assoc_adt.hpp>
+
+
+ + Example +
+
namespace demo
+{
+    template<typename Name, typename Age>
+    struct employee
+    {
+    private:
+        Name name;
+        Age age;
+            
+    public:
+        void set_name(Name const& n)
+        {
+            name=n;
+        }
+            
+        void set_age(Age const& a)
+        {
+            age=a;
+        }
+            
+        Name const& get_name()const
+        {
+            return name;
+        }
+            
+        Age const& get_age()const
+        {
+            return age;
+        }
+    };
+}
+
+namespace keys
+{
+    struct name;
+    struct age;
+}
+
+BOOST_FUSION_ADAPT_ASSOC_TPL_ADT(
+    (Name)(Age),
+    (demo::employee) (Name)(Age),
+    (Name const&, Name const&, obj.get_name(), obj.set_name(val), keys::name)
+    (Age const&, Age const&, obj.get_age(), obj.set_age(val), keys::age))
+
+demo::employee<std::string, int> e;
+at_key<keys::name>(e)="Edward Norton";
+at_key<keys::age>(e)=41;
+//Prints 'Edward Norton is 41 years old'
+std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;
+
+
+ + See also +
+

+ adt_attribute_proxy +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html b/doc/html/fusion/adapted/adapt_assoc_tpl_struct.html index 0bae9d42..a79fecf8 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 ce17ac76..1a70b9cf 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 1aff279a..dbd7657f 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
new file mode 100644
index 00000000..302f45c1
--- /dev/null
+++ b/doc/html/fusion/adapted/adapt_tpl_adt.html
@@ -0,0 +1,173 @@
+
+
+
+BOOST_FUSION_ADAPT_TPL_ADT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+ +

+ BOOST_FUSION_ADAPT_TPL_ADT is a macro than can be used to generate all the + necessary boilerplate to adapt an arbitrary template class type as a model + of Random + Access Sequence. +

+
+ + Synopsis +
+
BOOST_FUSION_ADAPT_ADT(
+    (template_param0)(template_param1)...,
+    (type_name) (specialization_param0)(specialization_param1)...,
+    (attribute_type0, attribute_const_type0, get_expr0, set_expr0)
+    (attribute_type1, attribute_const_type1, get_expr1, set_expr1)
+    ...
+    )
+
+
+ + Expression + Semantics +
+

+ The above macro generates the necessary code to adapt type_name + or an arbitrary specialization of type_name + as a model of Random + Access Sequence. The sequence (template_param0)(template_param1)... + declares the names of the template type parameters used. The sequence (specialization_param0)(specialization_param1)... declares the template parameters of the + actual specialization of type_name + that is adapted as a fusion sequence. The sequence of (attribute_typeN, + attribute_const_typeN, get_exprN, + set_exprN) quadruples declares the types, + const types, get-expressions and set-expressions of the elements that are + part of the adapted fusion sequence. get_exprN + is the expression that is invoked to get the Nth element + of an instance of type_name. + This expression may access a variable named obj + of type type_name& + or type_name const& which represents the underlying instance + of type_name. attribute_typeN + and attribute_const_typeN may specify + the types that get_exprN denotes + to. set_exprN is the expression that + is invoked to set the Nth element of an instance of + type_name. This expression + may access variables named obj + of type type_name&, + which represent the corresponding instance of type_name, + and val of an arbitrary const-qualified + reference template type parameter Val, + which represents the right operand of the assignment expression. +

+

+ The actual return type of fusion's intrinsic sequence access (meta-)functions + when in invoked with (an instance of) type_name + is a proxy type. This type is implicitly convertible to the attribute type + via get_exprN and forwards assignment + to the underlying element via set_exprN. + The value type (that is the type returned by result_of::value_of, result_of::value_at and result_of::value_at_c) of the Nth + element is attribute_typeN with const-qualifier + and reference removed. +

+

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

+
+ + Header +
+
#include <boost/fusion/adapted/adt/adapt_adt.hpp>
+#include <boost/fusion/include/adapt_adt.hpp>
+
+
+ + Example +
+
  namespace demo
+  { 
+template<typename Name, typename Age>
+      struct employee
+      {
+      private:
+          Name name;
+          Age age;
+              
+      public:
+          void set_name(Name const& n)
+          {
+              name=n;
+          }
+              
+          void set_age(Age const& a)
+          {
+              age=a;
+          }
+              
+          Name const& get_name()const
+          {
+              return name;
+          }
+              
+          Age const& get_age()const
+          {
+              return age;
+          }
+      };
+  }
+  
+  BOOST_FUSION_ADAPT_TPL_ADT(
+      (Name)(Age),
+      (demo::employee) (Name)(Age),
+      (Name const&, Name const&, obj.get_name(), obj.set_name(val))
+      (Age const&, Age const&, obj.get_age(), obj.set_age(val)))
+
+  demo::employee<std::string, int> e;
+  boost::fusion::front(e)="Edward Norton";
+  boost::fusion::back(e)=41;
+  //Prints 'Edward Norton is 41 years old'
+  std::cout << e.get_name() << " is " << e.get_age() << " years old" << std::endl;
+
+
+ + See also +
+

+ adt_attribute_proxy +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/fusion/adapted/adapt_tpl_struct.html b/doc/html/fusion/adapted/adapt_tpl_struct.html index 4cab36b1..ce8087c4 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 4dce6c87..f4ad0d69 100644
--- a/doc/html/fusion/adapted/array.html
+++ b/doc/html/fusion/adapted/array.html
@@ -32,14 +32,14 @@
         Access Sequence.
       

- + Header
#include <boost/fusion/adapted/array.hpp>
 #include <boost/fusion/include/array.hpp>
 
- + Model of
  • @@ -47,7 +47,7 @@ Access Sequence
- + 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 d975945f..d3c4492b 100644
--- a/doc/html/fusion/adapted/boost__array.html
+++ b/doc/html/fusion/adapted/boost__array.html
@@ -33,14 +33,14 @@
         Access Sequence.
       

- + Header
#include <boost/fusion/adapted/boost_array.hpp>
 #include <boost/fusion/include/boost_array.hpp>
 
- + Model of
  • @@ -48,7 +48,7 @@ Access Sequence
- + Example
boost::array<int,3> arr = {{1,2,3}};
@@ -60,7 +60,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 eeabbe7d..a37d1e73 100644 --- a/doc/html/fusion/adapted/boost__tuple.html +++ b/doc/html/fusion/adapted/boost__tuple.html @@ -33,21 +33,21 @@ 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");
@@ -55,7 +55,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 b1f2a613..4b791513 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 71b62c85..b6578a99 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 0e703808..871ade51 100644
--- a/doc/html/fusion/adapted/define_struct.html
+++ b/doc/html/fusion/adapted/define_struct.html
@@ -6,7 +6,7 @@
 
 
 
-
+
 
 
 
@@ -20,16 +20,12 @@
 
 
-PrevUpHomeNext +PrevUpHomeNext
-
- - Description -

BOOST_FUSION_DEFINE_STRUCT is a macro that can be used to generate all the necessary boilerplate to define and adapt an arbitrary struct as a model @@ -37,7 +33,7 @@ Access Sequence.

- + Synopsis
BOOST_FUSION_DEFINE_STRUCT(
@@ -67,7 +63,7 @@
 
 
- + Expression Semantics
@@ -178,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
@@ -206,7 +202,7 @@
 
 
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/adapted/define_tpl_struct.html b/doc/html/fusion/adapted/define_tpl_struct.html index e367c5fb..751ca2e4 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 07ee19f5..62921a20 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 e0a23725..2b99776f 100644 --- a/doc/html/fusion/adapted/std__pair.html +++ b/doc/html/fusion/adapted/std__pair.html @@ -33,14 +33,14 @@ Access Sequence.

- + Header
#include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/include/std_pair.hpp>
 
- + Model of
  • @@ -48,7 +48,7 @@ Access Sequence
- + Example
std::pair<int, std::string> p(123, "Hola!!!");
@@ -57,7 +57,7 @@
 std::cout << p << std::endl;
 
- + See also

diff --git a/doc/html/fusion/algorithm.html b/doc/html/fusion/algorithm.html index 4a775c50..7a5e2315 100644 --- a/doc/html/fusion/algorithm.html +++ b/doc/html/fusion/algorithm.html @@ -44,7 +44,7 @@

- + Lazy Evaluation

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

- + Sequence Extension

@@ -87,7 +87,7 @@ functions to convert back to the original sequence type.

- + Header

#include <boost/fusion/algorithm.hpp>
diff --git a/doc/html/fusion/algorithm/iteration.html b/doc/html/fusion/algorithm/iteration.html
index a5a1dc0d..dd9d8cb7 100644
--- a/doc/html/fusion/algorithm/iteration.html
+++ b/doc/html/fusion/algorithm/iteration.html
@@ -35,7 +35,7 @@
         a sequence repeatedly applying an operation to its elements.
       

- + Header
#include <boost/fusion/algorithm/iteration.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/functions/accumulate.html b/doc/html/fusion/algorithm/iteration/functions/accumulate.html
index dbe77838..01d9a678 100644
--- a/doc/html/fusion/algorithm/iteration/functions/accumulate.html
+++ b/doc/html/fusion/algorithm/iteration/functions/accumulate.html
@@ -27,7 +27,7 @@
 accumulate
 
 
- + Description

@@ -41,7 +41,7 @@ the first call) and each element of seq.

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

Table 1.41. Parameters

+

Table 1.41. Parameters

@@ -129,9 +129,7 @@

- f(s,e) with return type boost::result_of<F(S,E)>::type must be a valid expression - for current state s - of type S, + f(s,e) with return type boost::result_of<F(S,E)>::type for current state s of type S, and for each element e of type E in seq @@ -147,7 +145,7 @@


- + Expression Semantics
@@ -162,21 +160,21 @@ are the consecutive 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/include/accumulate.hpp>
 
- + Example
struct make_string
diff --git a/doc/html/fusion/algorithm/iteration/functions/fold.html b/doc/html/fusion/algorithm/iteration/functions/fold.html
index 609ad429..b08e4067 100644
--- a/doc/html/fusion/algorithm/iteration/functions/fold.html
+++ b/doc/html/fusion/algorithm/iteration/functions/fold.html
@@ -27,7 +27,7 @@
 fold
 
 
- + Description

@@ -41,7 +41,7 @@ the first call) and each element of seq.

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

Table 1.37. Parameters

+

Table 1.37. Parameters

@@ -129,9 +129,7 @@

- f(s,e) with return type boost::result_of<F(S,E)>::type must be a valid expression - for current state s - of type S, + f(s,e) with return type boost::result_of<F(S,E)>::type for current state s of type S, and for each element e of type E in seq @@ -147,7 +145,7 @@


- + Expression Semantics
@@ -162,21 +160,21 @@ are the consecutive 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/include/fold.hpp>
 
- + Example
struct make_string
diff --git a/doc/html/fusion/algorithm/iteration/functions/for_each.html b/doc/html/fusion/algorithm/iteration/functions/for_each.html
index ecbaf016..7f590a80 100644
--- a/doc/html/fusion/algorithm/iteration/functions/for_each.html
+++ b/doc/html/fusion/algorithm/iteration/functions/for_each.html
@@ -27,14 +27,14 @@
 for_each
 
 
- + Description

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

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

Table 1.42. Parameters

+

Table 1.42. Parameters

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

- + Expression Semantics
@@ -126,21 +126,21 @@ 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/include/for_each.hpp>
 
- + Example
struct increment
diff --git a/doc/html/fusion/algorithm/iteration/functions/iter_fold.html b/doc/html/fusion/algorithm/iteration/functions/iter_fold.html
index 1a67c109..f1bba8e6 100644
--- a/doc/html/fusion/algorithm/iteration/functions/iter_fold.html
+++ b/doc/html/fusion/algorithm/iteration/functions/iter_fold.html
@@ -27,7 +27,7 @@
 iter_fold
 
 
- + Description

@@ -41,7 +41,7 @@ the first call) and iterators on each element of seq.

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

Table 1.39. Parameters

+

Table 1.39. Parameters

@@ -129,9 +129,7 @@

- f(s,it) with return type boost::result_of<F(S,It)>::type must be a valid expression - for current state s - of type S, + f(s,it) with return type boost::result_of<F(S,It)>::type for current state s of type S, and for each iterator it of type It on an element of seq @@ -147,7 +145,7 @@


- + Expression Semantics
@@ -162,21 +160,21 @@ are consecutive iterators on the elements of seq.

- + Complexity

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

- + Header
#include <boost/fusion/algorithm/iteration/iter_fold.hpp>
 #include <boost/fusion/include/iter_fold.hpp>
 
- + Example
struct make_string
diff --git a/doc/html/fusion/algorithm/iteration/functions/reverse_fold.html b/doc/html/fusion/algorithm/iteration/functions/reverse_fold.html
index db26bf39..0f0b2beb 100644
--- a/doc/html/fusion/algorithm/iteration/functions/reverse_fold.html
+++ b/doc/html/fusion/algorithm/iteration/functions/reverse_fold.html
@@ -27,7 +27,7 @@
 reverse_fold
 
 
- + Description

@@ -41,7 +41,7 @@ the first call) and each element of seq.

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

Table 1.38. Parameters

+

Table 1.38. Parameters

@@ -129,9 +129,7 @@

- f(s,e) with return type boost::result_of<F(S,E)>::type must be a valid expression - for current state s - of type S, + f(s,e) with return type boost::result_of<F(S,E)>::type for current state s of type S, and for each element e of type E in seq @@ -147,7 +145,7 @@


- + Expression Semantics
@@ -162,21 +160,21 @@ are the consecutive elements of seq.

- + Complexity

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

- + Header
#include <boost/fusion/algorithm/iteration/reverse_fold.hpp>
 #include <boost/fusion/include/reverse_fold.hpp>
 
- + Example
struct make_string
diff --git a/doc/html/fusion/algorithm/iteration/functions/reverse_iter_fold.html b/doc/html/fusion/algorithm/iteration/functions/reverse_iter_fold.html
index ee756e0b..fa6f58ed 100644
--- a/doc/html/fusion/algorithm/iteration/functions/reverse_iter_fold.html
+++ b/doc/html/fusion/algorithm/iteration/functions/reverse_iter_fold.html
@@ -27,7 +27,7 @@
 reverse_iter_fold
 
 
- + Description

@@ -41,7 +41,7 @@ if it is the first call) and iterators on each element of seq.

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

Table 1.40. Parameters

+

Table 1.40. Parameters

@@ -129,9 +129,7 @@

- f(s,it) with return type boost::result_of<F(S,It)>::type must be a valid expression - for current state s - of type S, + f(s,it) with return type boost::result_of<F(S,It)>::type for current state s of type S, and for each iterator it of type It on an element of seq @@ -147,7 +145,7 @@


- + Expression Semantics
@@ -162,21 +160,21 @@ are consecutive iterators on the elements of seq.

- + Complexity

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

- + Header
#include <boost/fusion/algorithm/iteration/reverse_iter_fold.hpp>
 #include <boost/fusion/include/reverse_iter_fold.hpp>
 
- + Example
struct make_string
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html
index 98e34c06..e96309b5 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html
@@ -27,14 +27,14 @@
 accumulate
 
 
- + Description

Returns the result type of accumulate.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.47. Parameters

+

Table 1.47. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,14 +149,14 @@ 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>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
index a6bc5d6d..303ab9de 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/fold.html
@@ -27,14 +27,14 @@
 fold
 
 
- + Description

Returns the result type of fold.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.43. Parameters

+

Table 1.43. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,14 +149,14 @@ 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>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
index daa9cf7e..c40198f1 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
@@ -31,11 +31,11 @@
             return type of for_each is always void.
           

- + Description
- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.48. Parameters

+

Table 1.48. Parameters

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

- + Expression Semantics
@@ -129,14 +129,14 @@ return type is always void.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/iteration/for_each.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/iter_fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/iter_fold.html
index bf76c067..9f8d6dd3 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/iter_fold.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/iter_fold.html
@@ -27,14 +27,14 @@
 iter_fold
 
 
- + Description

Returns the result type of iter_fold.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.45. Parameters

+

Table 1.45. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,14 +149,14 @@ 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/iter_fold.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/reverse_fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/reverse_fold.html
index c2df3e49..7f09918a 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/reverse_fold.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/reverse_fold.html
@@ -27,14 +27,14 @@
 reverse_fold
 
 
- + Description

Returns the result type of reverse_fold.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.44. Parameters

+

Table 1.44. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,14 +149,14 @@ 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/reverse_fold.hpp>
diff --git a/doc/html/fusion/algorithm/iteration/metafunctions/reverse_iter_fold.html b/doc/html/fusion/algorithm/iteration/metafunctions/reverse_iter_fold.html
index 321100e6..13379b7c 100644
--- a/doc/html/fusion/algorithm/iteration/metafunctions/reverse_iter_fold.html
+++ b/doc/html/fusion/algorithm/iteration/metafunctions/reverse_iter_fold.html
@@ -27,14 +27,14 @@
 reverse_iter_fold
 
 
- + Description

Returns the result type of reverse_iter_fold.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.46. Parameters

+

Table 1.46. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,14 +149,14 @@ 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/reverse_iter_fold.hpp>
diff --git a/doc/html/fusion/algorithm/query.html b/doc/html/fusion/algorithm/query.html
index 198110d9..c2432194 100644
--- a/doc/html/fusion/algorithm/query.html
+++ b/doc/html/fusion/algorithm/query.html
@@ -34,7 +34,7 @@
         The query algorithms provide support for searching and analyzing sequences.
       

- + Header
#include <boost/fusion/algorithm/query.hpp>
diff --git a/doc/html/fusion/algorithm/query/functions/all.html b/doc/html/fusion/algorithm/query/functions/all.html
index a50edb9e..c2e09a5d 100644
--- a/doc/html/fusion/algorithm/query/functions/all.html
+++ b/doc/html/fusion/algorithm/query/functions/all.html
@@ -27,7 +27,7 @@
 all
 
 
- + Description

@@ -38,7 +38,7 @@ element of seq.

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

Table 1.50. Parameters

+

Table 1.50. Parameters

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

- + Expression Semantics
@@ -132,21 +132,21 @@ 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/include/all.hpp>
 
- + Example
struct odd
diff --git a/doc/html/fusion/algorithm/query/functions/any.html b/doc/html/fusion/algorithm/query/functions/any.html
index 039896ae..56baf69d 100644
--- a/doc/html/fusion/algorithm/query/functions/any.html
+++ b/doc/html/fusion/algorithm/query/functions/any.html
@@ -27,7 +27,7 @@
 any
 
 
- + Description

@@ -38,7 +38,7 @@ least one element of seq.

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

Table 1.49. Parameters

+

Table 1.49. Parameters

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

- + Expression semantics
@@ -132,21 +132,21 @@ 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/include/any.hpp>
 
- + Example
struct odd
diff --git a/doc/html/fusion/algorithm/query/functions/count.html b/doc/html/fusion/algorithm/query/functions/count.html
index f1b8aac7..09d9eff4 100644
--- a/doc/html/fusion/algorithm/query/functions/count.html
+++ b/doc/html/fusion/algorithm/query/functions/count.html
@@ -27,14 +27,14 @@
 count
 
 
- + Description

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

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

Table 1.54. Parameters

+

Table 1.54. Parameters

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

- + Expression Semantics
@@ -128,21 +128,21 @@ t in seq.

- + Complexity

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

- + Header
#include <boost/fusion/algorithm/query/count.hpp>
 #include <boost/fusion/include/count.hpp>
 
- + Example
const vector<double,int,int> vec(1.0,2,3);
diff --git a/doc/html/fusion/algorithm/query/functions/count_if.html b/doc/html/fusion/algorithm/query/functions/count_if.html
index 027d35f2..966c269c 100644
--- a/doc/html/fusion/algorithm/query/functions/count_if.html
+++ b/doc/html/fusion/algorithm/query/functions/count_if.html
@@ -27,7 +27,7 @@
 count_if
 
 
- + Description

@@ -35,7 +35,7 @@ a given unary function object evaluates to true.

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

Table 1.55. Parameters

+

Table 1.55. Parameters

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

- + Expression Semantics
@@ -127,21 +127,21 @@ 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/include/count_if.hpp>
 
- + Example
const vector<int,int,int> vec(1,2,3);
diff --git a/doc/html/fusion/algorithm/query/functions/find.html b/doc/html/fusion/algorithm/query/functions/find.html
index ce13fc23..79be3f13 100644
--- a/doc/html/fusion/algorithm/query/functions/find.html
+++ b/doc/html/fusion/algorithm/query/functions/find.html
@@ -27,14 +27,14 @@
 find
 
 
- + Description

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

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

Table 1.52. Parameters

+

Table 1.52. Parameters

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

- + Expression Semantics
@@ -131,21 +131,21 @@ 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/include/find.hpp>
 
- + Example
const vector<char,int> vec('a','0');
diff --git a/doc/html/fusion/algorithm/query/functions/find_if.html b/doc/html/fusion/algorithm/query/functions/find_if.html
index c076fd83..4234bf7b 100644
--- a/doc/html/fusion/algorithm/query/functions/find_if.html
+++ b/doc/html/fusion/algorithm/query/functions/find_if.html
@@ -32,11 +32,11 @@
             Lambda Expression evaluates to boost::mpl::true_.
           

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

Table 1.53. Parameters

+

Table 1.53. Parameters

@@ -117,7 +117,7 @@

- + Expression Semantics
@@ -135,7 +135,7 @@ if there is no such element.

- + Complexity

@@ -150,7 +150,7 @@

- + Example
const vector<double,int> vec(1.0,2);
diff --git a/doc/html/fusion/algorithm/query/functions/none.html b/doc/html/fusion/algorithm/query/functions/none.html
index 0f69a952..2caaaf03 100644
--- a/doc/html/fusion/algorithm/query/functions/none.html
+++ b/doc/html/fusion/algorithm/query/functions/none.html
@@ -27,7 +27,7 @@
 none
 
 
- + Description

@@ -38,7 +38,7 @@ element of seq.

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

Table 1.51. Parameters

+

Table 1.51. Parameters

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

- + Expression Semantics
@@ -132,21 +132,21 @@ 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/include/none.hpp>
 
- + Example
struct odd
diff --git a/doc/html/fusion/algorithm/query/metafunctions/all.html b/doc/html/fusion/algorithm/query/metafunctions/all.html
index 813359d4..07fe190c 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/all.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/all.html
@@ -27,14 +27,14 @@
 all
 
 
- + Description

A metafunction returning the result type of all.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.57. Parameters

+

Table 1.57. Parameters

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

- + Expression Semantics
@@ -130,14 +130,14 @@ The return type is always bool.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/query/all.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/any.html b/doc/html/fusion/algorithm/query/metafunctions/any.html
index 227892fd..a0d52d79 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/any.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/any.html
@@ -27,14 +27,14 @@
 any
 
 
- + Description

A metafunction returning the result type of any.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.56. Parameters

+

Table 1.56. Parameters

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

- + Expression Semantics
@@ -130,14 +130,14 @@ The return type is always bool.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/query/any.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/count.html b/doc/html/fusion/algorithm/query/metafunctions/count.html
index 8efe122e..b29bf813 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/count.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/count.html
@@ -27,7 +27,7 @@
 count
 
 
- + Description

@@ -35,7 +35,7 @@ given the sequence and search types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.61. Parameters

+

Table 1.61. Parameters

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

- + Expression Semantics
@@ -127,14 +127,14 @@ int.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/query/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 9ab45a72..2b7a3178 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/count_if.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/count_if.html
@@ -27,7 +27,7 @@
 count_if
 
 
- + Description

@@ -35,7 +35,7 @@ given the sequence and predicate types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.62. Parameters

+

Table 1.62. Parameters

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

- + Expression Semantics
@@ -127,14 +127,14 @@ always int.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/query/count_if.hpp>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/find.html b/doc/html/fusion/algorithm/query/metafunctions/find.html
index 7f90edc3..ff5abb27 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/find.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/find.html
@@ -27,7 +27,7 @@
 find
 
 
- + Description

@@ -35,7 +35,7 @@ search types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.59. Parameters

+

Table 1.59. Parameters

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

- + Expression Semantics
@@ -129,14 +129,14 @@ if there is no such element.

- + Complexity

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

- + Header
#include <boost/fusion/algorithm/query/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 d7abb9ed..8423e3f6 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/find_if.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/find_if.html
@@ -27,7 +27,7 @@
 find_if
 
 
- + Description

@@ -35,7 +35,7 @@ predicate types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.60. Parameters

+

Table 1.60. Parameters

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

- + Expression Semantics
@@ -130,14 +130,14 @@ 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>
diff --git a/doc/html/fusion/algorithm/query/metafunctions/none.html b/doc/html/fusion/algorithm/query/metafunctions/none.html
index dda1ce0f..6662ae16 100644
--- a/doc/html/fusion/algorithm/query/metafunctions/none.html
+++ b/doc/html/fusion/algorithm/query/metafunctions/none.html
@@ -27,14 +27,14 @@
 none
 
 
- + Description

A metafunction returning the result type of none.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.58. Parameters

+

Table 1.58. Parameters

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

- + Expression Semantics
@@ -130,14 +130,14 @@ The return type is always bool.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/query/none.hpp>
diff --git a/doc/html/fusion/algorithm/transformation.html b/doc/html/fusion/algorithm/transformation.html
index 9325d8d9..0b0c6c1e 100644
--- a/doc/html/fusion/algorithm/transformation.html
+++ b/doc/html/fusion/algorithm/transformation.html
@@ -47,7 +47,7 @@
         

- + Header
#include <boost/fusion/algorithm/transformation.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/functions/clear.html b/doc/html/fusion/algorithm/transformation/functions/clear.html
index b76f040d..28d92803 100644
--- a/doc/html/fusion/algorithm/transformation/functions/clear.html
+++ b/doc/html/fusion/algorithm/transformation/functions/clear.html
@@ -27,14 +27,14 @@
 clear
 
 
- + Description

clear returns an empty sequence.

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

Table 1.72. Parameters

+

Table 1.72. Parameters

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

- + Expression Semantics
@@ -103,21 +103,21 @@ with no elements.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/clear.hpp>
 #include <boost/fusion/include/clear.hpp>
 
- + Example
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 a312371c..31609b7c 100644
--- a/doc/html/fusion/algorithm/transformation/functions/erase.html
+++ b/doc/html/fusion/algorithm/transformation/functions/erase.html
@@ -27,7 +27,7 @@
 erase
 
 
- + Description

@@ -35,7 +35,7 @@ those at a specified iterator, or between two iterators.

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

Table 1.73. Parameters

+

Table 1.73. Parameters

@@ -138,7 +138,7 @@

- + Expression Semantics
@@ -187,21 +187,21 @@ in their original order, except those in the range [first,last).

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/erase.hpp>
 #include <boost/fusion/include/erase.hpp>
 
- + Example
const vector<int, double, char> vec(1, 2.0, 'c');
diff --git a/doc/html/fusion/algorithm/transformation/functions/erase_key.html b/doc/html/fusion/algorithm/transformation/functions/erase_key.html
index 909a2e9e..022be51c 100644
--- a/doc/html/fusion/algorithm/transformation/functions/erase_key.html
+++ b/doc/html/fusion/algorithm/transformation/functions/erase_key.html
@@ -27,7 +27,7 @@
 erase_key
 
 
- + Description

@@ -39,7 +39,7 @@ key.

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

Table 1.74. Parameters

+

Table 1.74. Parameters

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

- + Expression Semantics
@@ -131,21 +131,21 @@ except those with key Key.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/erase_key.hpp>
 #include <boost/fusion/include/erase_key.hpp>
 
- + Example
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 211f135d..5936a449 100644
--- a/doc/html/fusion/algorithm/transformation/functions/filter.html
+++ b/doc/html/fusion/algorithm/transformation/functions/filter.html
@@ -27,7 +27,7 @@
 filter
 
 
- + Description

@@ -35,7 +35,7 @@ the elements of a specified type.

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

Table 1.63. Parameters

+

Table 1.63. Parameters

@@ -109,7 +109,7 @@

- + Expression Semantics
@@ -137,21 +137,21 @@ to filter_if<boost::same_type<_, T> >(seq).

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/filter.hpp>
 #include <boost/fusion/include/filter.hpp>
 
- + Example
const vector<int,int,long,long> vec(1,2,3,4);
diff --git a/doc/html/fusion/algorithm/transformation/functions/filter_if.html b/doc/html/fusion/algorithm/transformation/functions/filter_if.html
index 8723610f..9cda3fca 100644
--- a/doc/html/fusion/algorithm/transformation/functions/filter_if.html
+++ b/doc/html/fusion/algorithm/transformation/functions/filter_if.html
@@ -27,7 +27,7 @@
 filter_if
 
 
- + Description

@@ -36,7 +36,7 @@ Lambda Expression evaluates to boost::mpl::true_.

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

Table 1.64. Parameters

+

Table 1.64. Parameters

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

- + Expression Semantics
@@ -140,21 +140,21 @@ is the same as in the original sequence.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/filter_if.hpp>
 #include <boost/fusion/include/filter_if.hpp>
 
- + Example
const vector<int,int,double,double> vec(1,2,3.0,4.0);
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert.html b/doc/html/fusion/algorithm/transformation/functions/insert.html
index 43116335..4b7298aa 100644
--- a/doc/html/fusion/algorithm/transformation/functions/insert.html
+++ b/doc/html/fusion/algorithm/transformation/functions/insert.html
@@ -27,7 +27,7 @@
 insert
 
 
- + Description

@@ -35,7 +35,7 @@ element inserted the position described by a given iterator.

- + Synposis
template<
@@ -47,7 +47,7 @@
     Sequence const& seq, Pos const& pos, T const& t);
 
-

Table 1.75. Parameters

+

Table 1.75. Parameters

@@ -129,7 +129,7 @@

- + Expression Semantics
@@ -150,21 +150,21 @@ pos.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/insert.hpp>
 #include <boost/fusion/include/insert.hpp>
 
- + Example
const vector<int,int> vec(1,2);
diff --git a/doc/html/fusion/algorithm/transformation/functions/insert_range.html b/doc/html/fusion/algorithm/transformation/functions/insert_range.html
index 28920878..eaead16b 100644
--- a/doc/html/fusion/algorithm/transformation/functions/insert_range.html
+++ b/doc/html/fusion/algorithm/transformation/functions/insert_range.html
@@ -27,7 +27,7 @@
 insert_range
 
 
- + Description

@@ -35,7 +35,7 @@ iterator.

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

Table 1.76. Parameters

+

Table 1.76. Parameters

@@ -130,7 +130,7 @@

- + Expression Semantics
@@ -159,21 +159,21 @@ All elements retaining their ordering from the orignal sequences.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
 #include <boost/fusion/include/insert_range.hpp>
 
- + Example
const vector<int,int> vec(1,2);
diff --git a/doc/html/fusion/algorithm/transformation/functions/join.html b/doc/html/fusion/algorithm/transformation/functions/join.html
index 074c3c66..c705da30 100644
--- a/doc/html/fusion/algorithm/transformation/functions/join.html
+++ b/doc/html/fusion/algorithm/transformation/functions/join.html
@@ -27,7 +27,7 @@
 join
 
 
- + Description

@@ -35,7 +35,7 @@ first followed by the elements of the second.

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

Table 1.77. Parameters

+

Table 1.77. Parameters

@@ -109,7 +109,7 @@

- + Expression Semantics
@@ -138,21 +138,21 @@ The order of the elements is preserved.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/join.hpp>
 #include <boost/fusion/include/join.hpp>
 
- + Example
vector<int,char> v1(1, 'a');
diff --git a/doc/html/fusion/algorithm/transformation/functions/pop_back.html b/doc/html/fusion/algorithm/transformation/functions/pop_back.html
index bf9a9f8f..f0843f01 100644
--- a/doc/html/fusion/algorithm/transformation/functions/pop_back.html
+++ b/doc/html/fusion/algorithm/transformation/functions/pop_back.html
@@ -27,14 +27,14 @@
 pop_back
 
 
- + Description

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

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

Table 1.79. Parameters

+

Table 1.79. Parameters

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

- + Expression Semantics
@@ -116,21 +116,21 @@ same order as they were in seq.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/pop_back.hpp>
 #include <boost/fusion/include/pop_back.hpp>
 
- + Example
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 1cbc7971..b5713205 100644
--- a/doc/html/fusion/algorithm/transformation/functions/pop_front.html
+++ b/doc/html/fusion/algorithm/transformation/functions/pop_front.html
@@ -27,14 +27,14 @@
 pop_front
 
 
- + Description

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

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

Table 1.80. Parameters

+

Table 1.80. Parameters

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

- + Expression Semantics
@@ -116,21 +116,21 @@ same order as they were in seq.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/pop_front.hpp>
 #include <boost/fusion/include/pop_front.hpp>
 
- + Example
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 98b9f363..bcf3d69b 100644
--- a/doc/html/fusion/algorithm/transformation/functions/push_back.html
+++ b/doc/html/fusion/algorithm/transformation/functions/push_back.html
@@ -27,14 +27,14 @@
 push_back
 
 
- + Description

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

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

Table 1.81. Parameters

+

Table 1.81. Parameters

@@ -109,7 +109,7 @@

- + Expression Semantics
@@ -129,21 +129,21 @@ to the end. The elements are in the same order as they were in seq.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/push_back.hpp>
 #include <boost/fusion/include/push_back.hpp>
 
- + Example
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 0c6f5cb9..06456dc9 100644
--- a/doc/html/fusion/algorithm/transformation/functions/push_front.html
+++ b/doc/html/fusion/algorithm/transformation/functions/push_front.html
@@ -27,14 +27,14 @@
 push_front
 
 
- + Description

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

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

Table 1.82. Parameters

+

Table 1.82. Parameters

@@ -109,7 +109,7 @@

- + Expression Semantics
@@ -130,21 +130,21 @@ seq.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#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));
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove.html b/doc/html/fusion/algorithm/transformation/functions/remove.html
index b255106c..b01c6966 100644
--- a/doc/html/fusion/algorithm/transformation/functions/remove.html
+++ b/doc/html/fusion/algorithm/transformation/functions/remove.html
@@ -27,7 +27,7 @@
 remove
 
 
- + Description

@@ -35,7 +35,7 @@ except those of a given type.

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

Table 1.69. Parameters

+

Table 1.69. Parameters

@@ -109,7 +109,7 @@

- + Expression Semantics
@@ -137,21 +137,21 @@ Equivalent to remove_if<boost::is_same<_,T> >(seq).

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/remove.hpp>
 #include <boost/fusion/include/remove.hpp>
 
- + Example
const vector<int,double> vec(1,2.0);
diff --git a/doc/html/fusion/algorithm/transformation/functions/remove_if.html b/doc/html/fusion/algorithm/transformation/functions/remove_if.html
index 9f50dcc0..f261c604 100644
--- a/doc/html/fusion/algorithm/transformation/functions/remove_if.html
+++ b/doc/html/fusion/algorithm/transformation/functions/remove_if.html
@@ -27,7 +27,7 @@
 remove_if
 
 
- + Description

@@ -35,7 +35,7 @@ those where a given unary function object evaluates to true.

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

Table 1.70. Parameters

+

Table 1.70. Parameters

@@ -110,7 +110,7 @@

- + Expression Semantics
@@ -139,21 +139,21 @@ >(seq).

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/remove_if.hpp>
 #include <boost/fusion/include/remove_if.hpp>
 
- + Example
const vector<int,double> vec(1,2.0);
diff --git a/doc/html/fusion/algorithm/transformation/functions/replace.html b/doc/html/fusion/algorithm/transformation/functions/replace.html
index 91e80e04..80d5ab5a 100644
--- a/doc/html/fusion/algorithm/transformation/functions/replace.html
+++ b/doc/html/fusion/algorithm/transformation/functions/replace.html
@@ -27,7 +27,7 @@
 replace
 
 
- + Description

@@ -35,7 +35,7 @@ a new value.

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

Table 1.67. Parameters

+

Table 1.67. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -149,21 +149,21 @@ to elements with the same type and equal to old_value.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/replace.hpp>
 #include <boost/fusion/include/replace.hpp>
 
- + Example
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 46f87bc1..fad4f7e0 100644
--- a/doc/html/fusion/algorithm/transformation/functions/replace_if.html
+++ b/doc/html/fusion/algorithm/transformation/functions/replace_if.html
@@ -27,7 +27,7 @@
 replace_if
 
 
- + Description

@@ -36,7 +36,7 @@ replaced with a new value.

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

Table 1.68. Parameters

+

Table 1.68. Parameters

@@ -131,7 +131,7 @@

- + Expression Semantics
@@ -149,21 +149,21 @@ evaluates to true.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/replace_if.hpp>
 #include <boost/fusion/include/replace_if.hpp>
 
- + Example
struct odd
diff --git a/doc/html/fusion/algorithm/transformation/functions/reverse.html b/doc/html/fusion/algorithm/transformation/functions/reverse.html
index c351f200..8cf2b45e 100644
--- a/doc/html/fusion/algorithm/transformation/functions/reverse.html
+++ b/doc/html/fusion/algorithm/transformation/functions/reverse.html
@@ -27,14 +27,14 @@
 reverse
 
 
- + Description

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

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

Table 1.71. Parameters

+

Table 1.71. Parameters

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

- + Expression Semantics
@@ -120,21 +120,21 @@ in reverse order.

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#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));
diff --git a/doc/html/fusion/algorithm/transformation/functions/transform.html b/doc/html/fusion/algorithm/transformation/functions/transform.html
index 05284e65..26e86e66 100644
--- a/doc/html/fusion/algorithm/transformation/functions/transform.html
+++ b/doc/html/fusion/algorithm/transformation/functions/transform.html
@@ -27,7 +27,7 @@
 transform
 
 
- + Description

@@ -38,7 +38,7 @@ of seq.

- + Unary version synopsis
@@ -50,7 +50,7 @@ Sequence const& seq, F f);
-

Table 1.65. Parameters

+

Table 1.65. Parameters

@@ -118,7 +118,7 @@

- + Expression Semantics
@@ -134,7 +134,7 @@ within seq.

- + Binary version synopsis
@@ -147,7 +147,7 @@ Sequence1 const& seq1, Sequence2 const& seq2, F f);
-

Table 1.66. Parameters

+

Table 1.66. Parameters

@@ -244,21 +244,21 @@ 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/include/transform.hpp>
 
- + Example
struct triple
diff --git a/doc/html/fusion/algorithm/transformation/functions/zip.html b/doc/html/fusion/algorithm/transformation/functions/zip.html
index 222af4df..9ed4e66e 100644
--- a/doc/html/fusion/algorithm/transformation/functions/zip.html
+++ b/doc/html/fusion/algorithm/transformation/functions/zip.html
@@ -27,7 +27,7 @@
 zip
 
 
- + Description

@@ -35,7 +35,7 @@ of the members of the component sequences.

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

Table 1.78. Parameters

+

Table 1.78. Parameters

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

- + Expression Semantics
@@ -114,21 +114,21 @@ 'c'))

- + Complexity

Constant. Returns a view which is lazily evaluated.

- + Header
#include <boost/fusion/algorithm/transformation/zip.hpp>
 #include <boost/fusion/include/zip.hpp>
 
- + Example
vector<int,char> v1(1, 'a');
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html
index 9c907913..8a2431ac 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/clear.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/clear.html
@@ -27,7 +27,7 @@
 clear
 
 
- + Description

@@ -35,7 +35,7 @@ type.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.92. Parameters

+

Table 1.92. Parameters

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

- + Expression Semantics
@@ -105,14 +105,14 @@ Semantics: Returns an empty sequence.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/clear.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
index 9f738251..d35a3918 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase.html
@@ -31,11 +31,11 @@
             and range delimiting iterator types.
           

- + Description
- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.93. Parameters

+

Table 1.93. Parameters

@@ -131,7 +131,7 @@

- + Expression Semantics
@@ -168,14 +168,14 @@ and It2 removed.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 cdb90419..c4fcec5e 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html
@@ -27,7 +27,7 @@
 erase_key
 
 
- + Description

@@ -35,7 +35,7 @@ and key types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.94. Parameters

+

Table 1.94. Parameters

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

- + Expression Semantics
@@ -130,14 +130,14 @@ except those with key Key.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/erase_key.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
index bc305030..d2776de3 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter.html
@@ -27,7 +27,7 @@
 filter
 
 
- + Description

@@ -35,7 +35,7 @@ and type to retain.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.83. Parameter

+

Table 1.83. Parameter

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

- + Expression Semantics
@@ -141,14 +141,14 @@ boost::is_same<mpl::_, T> >::type.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 73876b57..495f3c15 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html
@@ -27,7 +27,7 @@
 filter_if
 
 
- + Description

@@ -36,7 +36,7 @@ Lambda Expression predicate type.

- + Synopsis
template<
@@ -49,7 +49,7 @@
 };
 
-

Table 1.84. Parameter

+

Table 1.84. Parameter

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

- + Expression Semantics
@@ -142,14 +142,14 @@ to boost::mpl::true_.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/filter_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
index 5ab9c731..dd20378d 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert.html
@@ -27,7 +27,7 @@
 insert
 
 
- + Description

@@ -35,7 +35,7 @@ position iterator and insertion types.

- + Synopsis
template<
@@ -49,7 +49,7 @@
 };
 
-

Table 1.95. Parameters

+

Table 1.95. Parameters

@@ -131,7 +131,7 @@

- + Expression Semantics
@@ -151,14 +151,14 @@ in Sequence.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 41ee3357..540d8fc2 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html
@@ -27,7 +27,7 @@
 insert_range
 
 
- + Description

@@ -35,7 +35,7 @@ sequence, position iterator and insertion range types.

- + Synopsis
template<
@@ -49,7 +49,7 @@
 };
 
-

Table 1.96. Parameters

+

Table 1.96. Parameters

@@ -132,7 +132,7 @@

- + Expression Semantics
@@ -160,14 +160,14 @@ into Sequence.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/join.html b/doc/html/fusion/algorithm/transformation/metafunctions/join.html
index 6ac41ff8..7ff86016 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/join.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/join.html
@@ -27,14 +27,14 @@
 join
 
 
- + Description

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

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
- + Expression Semantics
@@ -76,14 +76,14 @@ The order of the elements in the 2 sequences is preserved.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 2b7f04d8..539e6e78 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html
@@ -27,7 +27,7 @@
 pop_back
 
 
- + Description

@@ -35,7 +35,7 @@ type.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.97. Parameters

+

Table 1.97. Parameters

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

- + Expression Semantics
@@ -119,14 +119,14 @@ except the last element.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 6fcc81e7..67cd7586 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html
@@ -27,7 +27,7 @@
 pop_front
 
 
- + Description

@@ -35,7 +35,7 @@ type.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.98. Parameters

+

Table 1.98. Parameters

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

- + Expression Semantics
@@ -119,14 +119,14 @@ except the first element.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/pop_front.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html
index 0a44319b..e78951cd 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html
@@ -27,7 +27,7 @@
 push_back
 
 
- + Description

@@ -35,7 +35,7 @@ the input sequence and element to push.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.99. Parameters

+

Table 1.99. Parameters

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

- + Expression Semantics
@@ -132,14 +132,14 @@ added to the end.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/push_back.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html
index c70ea208..a133f805 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html
@@ -27,7 +27,7 @@
 push_front
 
 
- + Description

@@ -35,7 +35,7 @@ of the input sequence and element to push.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.100. Parameters

+

Table 1.100. Parameters

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

- + Expression Semantics
@@ -132,14 +132,14 @@ added to the beginning.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/push_front.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html
index 9b418db3..cc776038 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/remove.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove.html
@@ -27,7 +27,7 @@
 remove
 
 
- + Description

@@ -35,7 +35,7 @@ removal types.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.89. Parameters

+

Table 1.89. Parameters

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

- + Expression Semantics
@@ -141,14 +141,14 @@ boost::is_same<mpl::_, T> >::type.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 8040ad2d..13d28659 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html
@@ -27,7 +27,7 @@
 remove_if
 
 
- + Description

@@ -36,7 +36,7 @@ Lambda Expression predicate types.

- + Synopsis
template<
@@ -49,7 +49,7 @@
 };
 
-

Table 1.90. Parameters

+

Table 1.90. Parameters

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

- + Expression Semantics
@@ -142,14 +142,14 @@ to boost::mpl::false_.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/remove_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
index 5c735409..9a88cdcd 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace.html
@@ -27,7 +27,7 @@
 replace
 
 
- + Description

@@ -35,7 +35,7 @@ the input sequence and element to replace.

- + Synopsis
template<
@@ -48,7 +48,7 @@
 };
 
-

Table 1.87. Parameters

+

Table 1.87. Parameters

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

- + Expression Semantics
@@ -127,14 +127,14 @@ replace.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/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 e0765419..b485df20 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html
@@ -27,7 +27,7 @@
 replace_if
 
 
- + Description

@@ -36,7 +36,7 @@ Function Object predicate and replacement object.

- + Synopsis
template<
@@ -49,7 +49,7 @@
 };
 
-

Table 1.88. Parameters

+

Table 1.88. Parameters

@@ -131,7 +131,7 @@

- + Expression Semantics
@@ -146,14 +146,14 @@ replace_if.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/replace_if.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
index 29388eb5..b336e79c 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html
@@ -27,7 +27,7 @@
 reverse
 
 
- + Description

@@ -35,7 +35,7 @@ type.

- + Synopsis
template<
@@ -47,7 +47,7 @@
 };
 
-

Table 1.91. Parameters

+

Table 1.91. Parameters

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

- + Expression Semantics
@@ -123,14 +123,14 @@ elements in the reverse order to Sequence.

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/reverse.hpp>
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
index 6a9bfddb..e31147aa 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/transform.html
@@ -27,7 +27,7 @@
 transform
 
 
- + Description

@@ -38,7 +38,7 @@ of seq.

- + Unary version synopsis
@@ -50,7 +50,7 @@ Sequence const& seq, F f);
-

Table 1.85. Parameters

+

Table 1.85. Parameters

@@ -118,7 +118,7 @@

- + Expression Semantics
@@ -145,7 +145,7 @@ within seq.

- + Binary version synopsis
@@ -158,7 +158,7 @@ Sequence1 const& seq1, Sequence2 const& seq2, F f);
-

Table 1.86. Parameters

+

Table 1.86. Parameters

@@ -255,21 +255,21 @@ 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/include/transform.hpp>
 
- + Example
struct triple
diff --git a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
index 7a3d342c..33396d10 100644
--- a/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
+++ b/doc/html/fusion/algorithm/transformation/metafunctions/zip.html
@@ -27,7 +27,7 @@
 zip
 
 
- + Description

@@ -35,7 +35,7 @@ of the members of the component sequences.

- + Synopsis
template<
@@ -50,7 +50,7 @@
 };
 
- + Expression Semantics
@@ -72,14 +72,14 @@ 'c'))

- + Complexity

Constant.

- + Header
#include <boost/fusion/algorithm/transformation/zip.hpp>
diff --git a/doc/html/fusion/change_log.html b/doc/html/fusion/change_log.html
index 0e36666b..3e8710f0 100644
--- a/doc/html/fusion/change_log.html
+++ b/doc/html/fusion/change_log.html
@@ -65,29 +65,34 @@
           Schmidt)
         
 
  • - March 1, 2010: Added BOOST_FUSION_ADAPT_STRUCT_NAMED - and BOOST_FUSION_ADAPT_STRUCT_NAMED_NS + March 1, 2010: Added BOOST_FUSION_ADAPT_STRUCT_NAMED + and BOOST_FUSION_ADAPT_STRUCT_NAMED_NS (Hartmut Kaiser)
  • April 4, 2010: Added array - support, BOOST_FUSION_ADAPT_TPL_STRUCT, - BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT, - BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED - and BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS + support, BOOST_FUSION_ADAPT_TPL_STRUCT, + BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT, + BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED + and BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS (Christopher Schmidt)
  • - April 5, 2010: Added BOOST_FUSION_DEFINE_STRUCT, - BOOST_FUSION_DEFINE_TPL_STRUCT, - BOOST_FUSION_DEFINE_ASSOC_STRUCT - and BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT + April 5, 2010: Added BOOST_FUSION_DEFINE_STRUCT, BOOST_FUSION_DEFINE_TPL_STRUCT, + BOOST_FUSION_DEFINE_ASSOC_STRUCT + and BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT (Christopher Schmidt)
  • June 18, 2010: Added reverse_fold, iter_fold and reverse_iter_fold (Christopher Schmidt)
  • +
  • + October 7, 2010: Added BOOST_FUSION_ADAPT_ADT, BOOST_FUSION_ADAPT_TPL_ADT, + BOOST_FUSION_ADAPT_ASSOC_ADT + and BOOST_FUSION_ADAPT_ASSOC_TPL_ADT + (Joel de Guzman, Hartmut Kaiser and Christopher Schmidt) +
  • diff --git a/doc/html/fusion/container.html b/doc/html/fusion/container.html index 48a70067..306705f6 100644 --- a/doc/html/fusion/container.html +++ b/doc/html/fusion/container.html @@ -49,7 +49,7 @@ These containers are more or less counterparts of those in STL.

    - + Header

    #include <boost/fusion/container.hpp>
    diff --git a/doc/html/fusion/container/cons.html b/doc/html/fusion/container/cons.html
    index f77add57..e15b2a90 100644
    --- a/doc/html/fusion/container/cons.html
    +++ b/doc/html/fusion/container/cons.html
    @@ -27,7 +27,7 @@
     cons
     
     
    - + Description

    @@ -42,21 +42,21 @@ Inlined Functions).

    - + Header
    #include <boost/fusion/container/list/cons.hpp>
     #include <boost/fusion/include/cons.hpp>
     
    - + Synopsis
    template <typename Car, typename Cdr = nil>
     struct cons;
     
    - + Template parameters
    @@ -117,7 +117,7 @@
    - + Model of
    • @@ -159,7 +159,7 @@
    - + Expression Semantics

    @@ -292,7 +292,7 @@

    - + Example
    cons<int, cons<float> > l(12, cons<float>(5.5f));
    diff --git a/doc/html/fusion/container/conversion.html b/doc/html/fusion/container/conversion.html
    index 2ae18d78..d4015f8c 100644
    --- a/doc/html/fusion/container/conversion.html
    +++ b/doc/html/fusion/container/conversion.html
    @@ -35,7 +35,7 @@
             types using one of these conversion functions.
           

    - + Header
    #include <boost/fusion/include/convert.hpp>
    diff --git a/doc/html/fusion/container/conversion/functions/as_list.html b/doc/html/fusion/container/conversion/functions/as_list.html
    index 0f4517c9..325075a6 100644
    --- a/doc/html/fusion/container/conversion/functions/as_list.html
    +++ b/doc/html/fusion/container/conversion/functions/as_list.html
    @@ -27,14 +27,14 @@
     as_list
     
     
    - + Description

    Convert a fusion sequence to a list.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     as_list(Sequence const& seq);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -105,14 +105,14 @@ seq, to a list.

    - + Header
    #include <boost/fusion/container/list/convert.hpp>
     #include <boost/fusion/include/as_list.hpp>
     
    - + Example
    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 25f16e52..64f5edd5 100644
    --- a/doc/html/fusion/container/conversion/functions/as_map.html
    +++ b/doc/html/fusion/container/conversion/functions/as_map.html
    @@ -27,14 +27,14 @@
     as_map
     
     
    - + Description

    Convert a fusion sequence to a map.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     as_map(Sequence const& seq);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -110,14 +110,14 @@ There may be no duplicate fusion::pair key types.

    - + Header
    #include <boost/fusion/container/map/convert.hpp>
     #include <boost/fusion/include/as_map.hpp>
     
    - + Example
    as_map(make_vector(
    diff --git a/doc/html/fusion/container/conversion/functions/as_set.html b/doc/html/fusion/container/conversion/functions/as_set.html
    index 61b7d5dd..8f1c60ed 100644
    --- a/doc/html/fusion/container/conversion/functions/as_set.html
    +++ b/doc/html/fusion/container/conversion/functions/as_set.html
    @@ -27,14 +27,14 @@
     as_set
     
     
    - + Description

    Convert a fusion sequence to a set.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     as_set(Sequence const& seq);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -109,14 +109,14 @@ key types.

    - + Header
    #include <boost/fusion/container/set/convert.hpp>
     #include <boost/fusion/include/as_set.hpp>
     
    - + Example
    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 4872b954..c050c1f8 100644
    --- a/doc/html/fusion/container/conversion/functions/as_vector.html
    +++ b/doc/html/fusion/container/conversion/functions/as_vector.html
    @@ -27,14 +27,14 @@
     as_vector
     
     
    - + Description

    Convert a fusion sequence to a vector.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     as_vector(Sequence const& seq);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -105,14 +105,14 @@ seq, to a vector.

    - + Header
    #include <boost/fusion/container/vector/convert.hpp>
     #include <boost/fusion/include/as_vector.hpp>
     
    - + Example
    as_vector(make_list('x', 123, "hello"))
    diff --git a/doc/html/fusion/container/conversion/metafunctions/as_list.html b/doc/html/fusion/container/conversion/metafunctions/as_list.html
    index 24464a0c..f5da378e 100644
    --- a/doc/html/fusion/container/conversion/metafunctions/as_list.html
    +++ b/doc/html/fusion/container/conversion/metafunctions/as_list.html
    @@ -27,21 +27,21 @@
     as_list
     
     
    - + Description

    Returns the result type of as_list.

    - + Synopsis
    template <typename Sequence>
     struct as_list;
     
    - + Parameters
    @@ -86,7 +86,7 @@
    - + Expression Semantics
    @@ -101,14 +101,14 @@ Sequence, to a list.

    - + Header
    #include <boost/fusion/container/list/convert.hpp>
     #include <boost/fusion/include/as_list.hpp>
     
    - + Example
    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 33cb0d39..febc61a3 100644
    --- a/doc/html/fusion/container/conversion/metafunctions/as_map.html
    +++ b/doc/html/fusion/container/conversion/metafunctions/as_map.html
    @@ -27,21 +27,21 @@
     as_map
     
     
    - + Description

    Returns the result type of as_map.

    - + Synopsis
    template <typename Sequence>
     struct as_map;
     
    - + Parameters
    @@ -86,7 +86,7 @@
    - + Expression Semantics
    @@ -106,14 +106,14 @@ There may be no duplicate fusion::pair key types.

    - + Header
    #include <boost/fusion/container/map/convert.hpp>
     #include <boost/fusion/include/as_map.hpp>
     
    - + Example
    result_of::as_map<vector<
    diff --git a/doc/html/fusion/container/conversion/metafunctions/as_set.html b/doc/html/fusion/container/conversion/metafunctions/as_set.html
    index 0be22bb4..d523531b 100644
    --- a/doc/html/fusion/container/conversion/metafunctions/as_set.html
    +++ b/doc/html/fusion/container/conversion/metafunctions/as_set.html
    @@ -27,21 +27,21 @@
     as_set
     
     
    - + Description

    Returns the result type of as_set.

    - + Synopsis
    template <typename Sequence>
     struct as_set;
     
    - + Parameters
    @@ -86,7 +86,7 @@
    - + Expression Semantics
    @@ -105,14 +105,14 @@ key types.

    - + Header
    #include <boost/fusion/container/set/convert.hpp>
     #include <boost/fusion/include/as_set.hpp>
     
    - + Example
    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 00b609c7..0458b21c 100644
    --- a/doc/html/fusion/container/conversion/metafunctions/as_vector.html
    +++ b/doc/html/fusion/container/conversion/metafunctions/as_vector.html
    @@ -27,21 +27,21 @@
     as_vector
     
     
    - + Description

    Returns the result type of as_vector.

    - + Synopsis
    template <typename Sequence>
     struct as_vector;
     
    - + Parameters
    @@ -86,7 +86,7 @@
    - + Expression Semantics
    @@ -101,14 +101,14 @@ Sequence, to a vector.

    - + Header
    #include <boost/fusion/container/vector/convert.hpp>
     #include <boost/fusion/include/as_vector.hpp>
     
    - + Example
    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 e96dba39..164d3f2f 100644
    --- a/doc/html/fusion/container/generation.html
    +++ b/doc/html/fusion/container/generation.html
    @@ -34,7 +34,7 @@
             These are the functions that you can use to generate various forms of Container from elemental values.
           

    - + Header
    #include <boost/fusion/container/generation.hpp>
    diff --git a/doc/html/fusion/container/generation/functions/list_tie.html b/doc/html/fusion/container/generation/functions/list_tie.html
    index 2d3614e3..87b070dc 100644
    --- a/doc/html/fusion/container/generation/functions/list_tie.html
    +++ b/doc/html/fusion/container/generation/functions/list_tie.html
    @@ -27,14 +27,14 @@
     list_tie
     
     
    - + Description

    Constructs a tie using a list sequence.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -52,7 +52,7 @@
     
    #define FUSION_MAX_LIST_SIZE 20
     
    - + Parameters
    @@ -99,7 +99,7 @@
    - + Expression Semantics
    @@ -113,14 +113,14 @@ Semantics: Create a list of references from x0, x1,... xN.

    - + Header
    #include <boost/fusion/container/generation/list_tie.hpp>
     #include <boost/fusion/include/list_tie.hpp>
     
    - + Example
    int i = 123;
    diff --git a/doc/html/fusion/container/generation/functions/make_cons.html b/doc/html/fusion/container/generation/functions/make_cons.html
    index ca646976..2d00fa9c 100644
    --- a/doc/html/fusion/container/generation/functions/make_cons.html
    +++ b/doc/html/fusion/container/generation/functions/make_cons.html
    @@ -27,7 +27,7 @@
     make_cons
     
     
    - + Description

    @@ -36,7 +36,7 @@ and optional cdr (tail).

    - + Synopsis
    template <typename Car>
    @@ -48,7 +48,7 @@
     make_cons(Car const& car, Cdr const& cdr);
     
    - + Parameters
    @@ -112,7 +112,7 @@
    - + Expression Semantics
    @@ -127,20 +127,20 @@ (tail).

    - + Header
    #include <boost/fusion/container/generation/make_cons.hpp>
     #include <boost/fusion/include/make_cons.hpp>
     
    - + Example
    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 232a62cf..f0f7f3ee 100644 --- a/doc/html/fusion/container/generation/functions/make_list.html +++ b/doc/html/fusion/container/generation/functions/make_list.html @@ -27,7 +27,7 @@ make_list
    - + Description

    @@ -35,7 +35,7 @@ from one or more values.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -53,7 +53,7 @@
     
    #define FUSION_MAX_LIST_SIZE 20
     
    - + Parameters
    @@ -100,7 +100,7 @@
    - + Expression Semantics
    @@ -113,20 +113,20 @@ Semantics: Create a list from x0, x1,... xN.

    - + Header
    #include <boost/fusion/container/generation/make_list.hpp>
     #include <boost/fusion/include/make_list.hpp>
     
    - + Example
    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 7f0a9af8..49ef963a 100644 --- a/doc/html/fusion/container/generation/functions/make_map.html +++ b/doc/html/fusion/container/generation/functions/make_map.html @@ -27,7 +27,7 @@ make_map
    - + Description

    @@ -35,7 +35,7 @@ from one or more key/data pairs.

    - + Synopsis
    template <
    @@ -55,7 +55,7 @@
     
    #define FUSION_MAX_MAP_SIZE 20
     
    - + Parameters
    @@ -123,7 +123,7 @@
    - + Expression Semantics
    @@ -143,20 +143,20 @@ key types.

    - + Header
    #include <boost/fusion/container/generation/make_map.hpp>
     #include <boost/fusion/include/make_map.hpp>
     
    - + Example
    make_map<int, double>('X', "Men")
     
    - + See also
    diff --git a/doc/html/fusion/container/generation/functions/make_set.html b/doc/html/fusion/container/generation/functions/make_set.html index 42752f89..249634bc 100644 --- a/doc/html/fusion/container/generation/functions/make_set.html +++ b/doc/html/fusion/container/generation/functions/make_set.html @@ -27,7 +27,7 @@ make_set
    - + Description

    @@ -35,7 +35,7 @@ from one or more values.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -53,7 +53,7 @@
     
    #define FUSION_MAX_SET_SIZE 20
     
    - + Parameters
    @@ -100,7 +100,7 @@
    - + Expression Semantics
    @@ -117,20 +117,20 @@ key types.

    - + Header
    #include <boost/fusion/container/generation/make_set.hpp>
     #include <boost/fusion/include/make_set.hpp>
     
    - + Example
    make_set(123, "hello", 12.5)
     
    - + See also
    diff --git a/doc/html/fusion/container/generation/functions/make_vector.html b/doc/html/fusion/container/generation/functions/make_vector.html index 8635ec4c..bdd98ba9 100644 --- a/doc/html/fusion/container/generation/functions/make_vector.html +++ b/doc/html/fusion/container/generation/functions/make_vector.html @@ -27,7 +27,7 @@ make_vector
    - + Description

    @@ -35,7 +35,7 @@ from one or more values.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -53,7 +53,7 @@
     
    #define FUSION_MAX_VECTOR_SIZE 20
     
    - + Parameters
    @@ -100,7 +100,7 @@
    - + Expression Semantics
    @@ -113,20 +113,20 @@ Semantics: Create a vector from x0, x1,... xN.

    - + Header
    #include <boost/fusion/container/generation/make_vector.hpp>
     #include <boost/fusion/include/make_vector.hpp>
     
    - + Example
    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 89404baf..8809e712 100644 --- a/doc/html/fusion/container/generation/functions/map_tie.html +++ b/doc/html/fusion/container/generation/functions/map_tie.html @@ -27,14 +27,14 @@ map_tie
    - + Description

    Constructs a tie using a map sequence.

    - + Synopsis
    template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
    @@ -52,7 +52,7 @@
     
    #define FUSION_MAX_MAP_SIZE 20
     
    - + Parameters
    @@ -121,7 +121,7 @@
    - + Expression Semantics
    @@ -136,14 +136,14 @@ 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/include/map_tie.hpp>
     
    - + Example
    struct int_key;
    diff --git a/doc/html/fusion/container/generation/functions/tiers.html b/doc/html/fusion/container/generation/functions/tiers.html
    index 5ddcce7a..ee4db823 100644
    --- a/doc/html/fusion/container/generation/functions/tiers.html
    +++ b/doc/html/fusion/container/generation/functions/tiers.html
    @@ -54,7 +54,7 @@
                 The vector_tie function creates
                 a vector
                 of type vector<int&, char&, double&>. The same result could be achieved
    -            with the call make_vector(ref(i), ref(c), ref(a)) [9].
    +            with the call make_vector(ref(i), ref(c), ref(a)) [9].
               

    A tie can be used to 'unpack' another tuple into @@ -70,7 +70,7 @@ when calling functions which return sequences.

    - + Ignore

    @@ -84,7 +84,7 @@



    -

    [9] +

    [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 28c96efd..6863c5d5 100644 --- a/doc/html/fusion/container/generation/functions/vector_tie.html +++ b/doc/html/fusion/container/generation/functions/vector_tie.html @@ -27,14 +27,14 @@ vector_tie
    - + Description

    Constructs a tie using a vector sequence.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -52,7 +52,7 @@
     
    #define FUSION_MAX_VECTOR_SIZE 20
     
    - + Parameters
    @@ -99,7 +99,7 @@
    - + Expression Semantics
    @@ -113,14 +113,14 @@ Semantics: Create a vector of references from x0, x1,... xN.

    - + Header
    #include <boost/fusion/container/generation/vector_tie.hpp>
     #include <boost/fusion/include/vector_tie.hpp>
     
    - + Example
    int i = 123;
    diff --git a/doc/html/fusion/container/generation/metafunctions/list_tie.html b/doc/html/fusion/container/generation/metafunctions/list_tie.html
    index 63475712..dddc38f2 100644
    --- a/doc/html/fusion/container/generation/metafunctions/list_tie.html
    +++ b/doc/html/fusion/container/generation/metafunctions/list_tie.html
    @@ -27,14 +27,14 @@
     list_tie
     
     
    - + Description

    Returns the result type of list_tie.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_LIST_SIZE 20
     
    - + Parameters
    @@ -98,7 +98,7 @@
    - + Expression Semantics
    @@ -112,14 +112,14 @@ Semantics: Create a list of references from T0, T1,... TN.

    - + Header
    #include <boost/fusion/container/generation/list_tie.hpp>
     #include <boost/fusion/include/list_tie.hpp>
     
    - + Example
    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 ccef7021..065b4191 100644
    --- a/doc/html/fusion/container/generation/metafunctions/make_cons.html
    +++ b/doc/html/fusion/container/generation/metafunctions/make_cons.html
    @@ -27,21 +27,21 @@
     make_cons
     
     
    - + Description

    Returns the result type of make_cons.

    - + Synopsis
    template <typename Car, typename Cdr = nil>
     struct make_cons;
     
    - + Parameters
    @@ -105,7 +105,7 @@
    - + Expression Semantics
    @@ -122,14 +122,14 @@ (tail).

    - + Header
    #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
    diff --git a/doc/html/fusion/container/generation/metafunctions/make_list.html b/doc/html/fusion/container/generation/metafunctions/make_list.html
    index 286baef3..78e16787 100644
    --- a/doc/html/fusion/container/generation/metafunctions/make_list.html
    +++ b/doc/html/fusion/container/generation/metafunctions/make_list.html
    @@ -27,14 +27,14 @@
     make_list
     
     
    - + Description

    Returns the result type of make_list.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_LIST_SIZE 20
     
    - + Parameters
    @@ -98,7 +98,7 @@
    - + Expression Semantics
    @@ -113,14 +113,14 @@ Semantics: Create a list from T0, T1,... TN.

    - + Header
    #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
    diff --git a/doc/html/fusion/container/generation/metafunctions/make_map.html b/doc/html/fusion/container/generation/metafunctions/make_map.html
    index 4244b6e8..5d26f44e 100644
    --- a/doc/html/fusion/container/generation/metafunctions/make_map.html
    +++ b/doc/html/fusion/container/generation/metafunctions/make_map.html
    @@ -27,14 +27,14 @@
     make_map
     
     
    - + Description

    Returns the result type of make_map.

    - + Synopsis
    template <
    @@ -53,7 +53,7 @@
     
    #define FUSION_MAX_MAP_SIZE 20
     
    - + Parameters
    @@ -121,7 +121,7 @@
    - + Expression Semantics
    @@ -140,20 +140,20 @@ key types.

    - + Header
    #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
     
    - + See also
    diff --git a/doc/html/fusion/container/generation/metafunctions/make_set.html b/doc/html/fusion/container/generation/metafunctions/make_set.html index ca217d8e..11cb5daf 100644 --- a/doc/html/fusion/container/generation/metafunctions/make_set.html +++ b/doc/html/fusion/container/generation/metafunctions/make_set.html @@ -27,14 +27,14 @@ make_set
    - + Description

    Returns the result type of make_set.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_SET_SIZE 20
     
    - + Parameters
    @@ -98,7 +98,7 @@
    - + Expression Semantics
    @@ -117,14 +117,14 @@ key types.

    - + Header
    #include <boost/fusion/container/generation/make_set.hpp>
     #include <boost/fusion/include/make_set.hpp>
     
    - + Example
    result_of::make_set<int, char, double>::type
    diff --git a/doc/html/fusion/container/generation/metafunctions/make_vector.html b/doc/html/fusion/container/generation/metafunctions/make_vector.html
    index 01eaa210..0cd53f42 100644
    --- a/doc/html/fusion/container/generation/metafunctions/make_vector.html
    +++ b/doc/html/fusion/container/generation/metafunctions/make_vector.html
    @@ -27,14 +27,14 @@
     make_vector
     
     
    - + Description

    Returns the result type of make_vector.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_VECTOR_SIZE 20
     
    - + Parameters
    @@ -98,7 +98,7 @@
    - + Expression Semantics
    @@ -113,14 +113,14 @@ Semantics: Create a vector from T0, T1,... TN.

    - + Header
    #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
    diff --git a/doc/html/fusion/container/generation/metafunctions/map_tie.html b/doc/html/fusion/container/generation/metafunctions/map_tie.html
    index 3bb4078d..f79ee442 100644
    --- a/doc/html/fusion/container/generation/metafunctions/map_tie.html
    +++ b/doc/html/fusion/container/generation/metafunctions/map_tie.html
    @@ -27,14 +27,14 @@
     map_tie
     
     
    - + Description

    Returns the result type of map_tie.

    - + Synopsis
    template <typename K0, typename K1,... typename KN, typename D0, typename D1,... typename DN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_MAP_SIZE 20
     
    - + Parameters
    @@ -119,7 +119,7 @@
    - + Expression Semantics
    @@ -134,14 +134,14 @@ 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/include/map_tie.hpp>
     
    - + Example
    struct int_key;
    diff --git a/doc/html/fusion/container/generation/metafunctions/vector_tie.html b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
    index 0f753273..928db86c 100644
    --- a/doc/html/fusion/container/generation/metafunctions/vector_tie.html
    +++ b/doc/html/fusion/container/generation/metafunctions/vector_tie.html
    @@ -27,14 +27,14 @@
     vector_tie
     
     
    - + Description

    Returns the result type of vector_tie.

    - + Synopsis
    template <typename T0, typename T1,... typename TN>
    @@ -51,7 +51,7 @@
     
    #define FUSION_MAX_VECTOR_SIZE 20
     
    - + Parameters
    @@ -98,7 +98,7 @@
    - + Expression Semantics
    @@ -112,14 +112,14 @@ Semantics: Create a vector of references from T0, T1,... TN.

    - + Header
    #include <boost/fusion/container/generation/vector_tie.hpp>
     #include <boost/fusion/include/vector_tie.hpp>
     
    - + Example
    result_of::vector_tie<int, double>::type
    diff --git a/doc/html/fusion/container/list.html b/doc/html/fusion/container/list.html
    index 64bb4774..75523d0f 100644
    --- a/doc/html/fusion/container/list.html
    +++ b/doc/html/fusion/container/list.html
    @@ -27,7 +27,7 @@
     list
     
     
    - + Description

    @@ -38,7 +38,7 @@ runtime cost of access to each element is peculiarly constant (see Recursive Inlined Functions).

    - + Header
    #include <boost/fusion/container/list.hpp>
    @@ -47,7 +47,7 @@
     #include <boost/fusion/include/list_fwd.hpp>
     
    - + Synopsis
    template <
    @@ -75,7 +75,7 @@
     
    #define FUSION_MAX_LIST_SIZE 20
     
    - + Template parameters
    @@ -120,7 +120,7 @@
    - + Model of
    • @@ -154,7 +154,7 @@
    - + Expression Semantics

    @@ -261,7 +261,7 @@

    - + Example
    list<int, float> l(12, 5.5f);
    diff --git a/doc/html/fusion/container/map.html b/doc/html/fusion/container/map.html
    index ac9ade09..6b26bb22 100644
    --- a/doc/html/fusion/container/map.html
    +++ b/doc/html/fusion/container/map.html
    @@ -27,7 +27,7 @@
     map
     
     
    - + Description

    @@ -40,7 +40,7 @@ (see Overloaded Functions).

    - + Header
    #include <boost/fusion/container/map.hpp>
    @@ -49,7 +49,7 @@
     #include <boost/fusion/include/map_fwd.hpp>
     
    - + Synopsis
    template <
    @@ -77,7 +77,7 @@
     
    #define FUSION_MAX_MAP_SIZE 20
     
    - + Template parameters
    @@ -122,7 +122,7 @@
    - + Model of
      @@ -157,7 +157,7 @@
    - + Expression Semantics

    @@ -241,7 +241,7 @@

    - + Example
    typedef map<
    diff --git a/doc/html/fusion/container/set.html b/doc/html/fusion/container/set.html
    index e78179a4..3a7f81e3 100644
    --- a/doc/html/fusion/container/set.html
    +++ b/doc/html/fusion/container/set.html
    @@ -27,7 +27,7 @@
     set
     
     
    - + Description

    @@ -39,7 +39,7 @@ Functions).

    - + Header
    #include <boost/fusion/container/set.hpp>
    @@ -48,7 +48,7 @@
     #include <boost/fusion/include/set_fwd.hpp>
     
    - + Synopsis
    template <
    @@ -76,7 +76,7 @@
     
    #define FUSION_MAX_SET_SIZE 20
     
    - + Template parameters
    @@ -121,7 +121,7 @@
    - + Model of
      @@ -156,7 +156,7 @@
    - + Expression Semantics

    @@ -240,7 +240,7 @@

    - + Example
    typedef set<int, float> S;
    diff --git a/doc/html/fusion/container/vector.html b/doc/html/fusion/container/vector.html
    index a2f5fb58..992eb12c 100644
    --- a/doc/html/fusion/container/vector.html
    +++ b/doc/html/fusion/container/vector.html
    @@ -27,7 +27,7 @@
     vector
     
     
    - + Description

    @@ -39,7 +39,7 @@ efficient.

    - + Header
    #include <boost/fusion/container/vector.hpp>
    @@ -60,7 +60,7 @@
     #include <boost/fusion/include/vector50.hpp>
     
    - + Synopsis

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

    #define FUSION_MAX_VECTOR_SIZE 20
     
    - + Template parameters
    @@ -160,7 +160,7 @@
    - + Model of
    • @@ -190,7 +190,7 @@
    - + Expression Semantics

    @@ -273,7 +273,7 @@

    - + Example
    vector<int, float> v(12, 5.5f);
    diff --git a/doc/html/fusion/extension/ext_full.html b/doc/html/fusion/extension/ext_full.html
    index a82c8b21..67a32feb 100644
    --- a/doc/html/fusion/extension/ext_full.html
    +++ b/doc/html/fusion/extension/ext_full.html
    @@ -50,7 +50,7 @@
               
     
     
    - + Our example

    @@ -80,7 +80,7 @@ Start guide.

    - + Enabling Tag Dispatching
    @@ -121,7 +121,7 @@ #include <boost/fusion/include/tag_of.hpp>
    - + Designing a suitable iterator
    @@ -183,7 +183,7 @@ clearer as we add features to our implementation.

    - + A first couple of instructive features
    @@ -323,7 +323,7 @@

    - + Implementing the remaining iterator functionality
    @@ -374,7 +374,7 @@ are provided in the example code.

    - + Implementing the intrinsic functions of the sequence
    @@ -430,7 +430,7 @@ value_at_impl and at_impl.

    - + Enabling our type as an associative sequence
    @@ -494,7 +494,7 @@ are provided in the example code.

    - + Summary

    diff --git a/doc/html/fusion/extension/iterator_facade.html b/doc/html/fusion/extension/iterator_facade.html index 49319da6..1675b9c0 100644 --- a/doc/html/fusion/extension/iterator_facade.html +++ b/doc/html/fusion/extension/iterator_facade.html @@ -27,7 +27,7 @@ Iterator Facade

    - + Description

    @@ -36,14 +36,14 @@ iterator.

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

    @@ -57,7 +57,7 @@ type.

    -

    Table 1.103. Parameters

    +

    Table 1.103. Parameters

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

    -

    Table 1.104. Key Expressions

    +

    Table 1.104. Key Expressions

    @@ -439,14 +439,14 @@

    - + Header
    #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 2dc362ef..51b03803 100644 --- a/doc/html/fusion/extension/sequence_facade.html +++ b/doc/html/fusion/extension/sequence_facade.html @@ -27,7 +27,7 @@ Sequence Facade

    - + Description

    @@ -36,14 +36,14 @@ iterator.

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

    @@ -59,7 +59,7 @@ type.

    -

    Table 1.101. Parameters

    +

    Table 1.101. Parameters

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

    -

    Table 1.102. Key Expressions

    +

    Table 1.102. Key Expressions

    @@ -244,14 +244,14 @@

    - + Include
    #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 9cb0d4f2..2bc12b36 100644 --- a/doc/html/fusion/functional.html +++ b/doc/html/fusion/functional.html @@ -63,13 +63,13 @@ through a function object interface.

    - + Header

    #include <boost/fusion/functional.hpp>
     

    - + Fused and unfused forms

    @@ -103,7 +103,7 @@ form of f'.

    - + Calling functions and function objects

    @@ -133,7 +133,7 @@ Constructors can be called applying Boost.Functional/Factory.

    - + Making Fusion code callable through a function object interface

    diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html index db1bcef7..70d06e7c 100644 --- a/doc/html/fusion/functional/adapters/fused.html +++ b/doc/html/fusion/functional/adapters/fused.html @@ -27,7 +27,7 @@ fused
    - + Description

    @@ -54,20 +54,20 @@ and boost::shared_ptr).

    - + Header
    #include <boost/fusion/functional/adapter/fused.hpp>
     
    - + Synopsis
    template <typename Function>
     class fused;
     
    - + Template parameters
    @@ -111,7 +111,7 @@
    - + Model of
      @@ -148,7 +148,7 @@
    - + Expression Semantics
    @@ -213,14 +213,14 @@
    - + Example
    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 c3cef187..ae25966c 100644 --- a/doc/html/fusion/functional/adapters/fused_function_object.html +++ b/doc/html/fusion/functional/adapters/fused_function_object.html @@ -27,7 +27,7 @@ fused_function_object
    - + Description

    @@ -44,20 +44,20 @@ object is held by value, the adapter is const).

    - + Header
    #include <boost/fusion/functional/adapter/fused_function_object.hpp>
     
    - + Synopsis
    template <class Function>
     class fused_function_object;
     
    - + Template parameters
    @@ -101,7 +101,7 @@
    - + Model of
    @@ -139,7 +139,7 @@
    - + Expression Semantics
    @@ -204,7 +204,7 @@
    - + Example
    template<class SeqOfSeqs, class Func>
    @@ -241,7 +241,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html index 54b43a95..1c816df7 100644 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -27,7 +27,7 @@ fused_procedure
    - + Description

    @@ -62,20 +62,20 @@ case is not implemented).

    - + Header
    #include <boost/fusion/functional/adapter/fused_procedure.hpp>
     
    - + Synopsis
    template <typename Function>
     class fused_procedure;
     
    - + Template parameters
    @@ -119,7 +119,7 @@
    - + Model of
    @@ -157,7 +157,7 @@
    - + Expression Semantics
    @@ -222,7 +222,7 @@
    - + Example
    template<class SequenceOfSequences, class Func>
    @@ -242,7 +242,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/adapters/limits.html b/doc/html/fusion/functional/adapters/limits.html index 61939a19..5dad50a8 100644 --- a/doc/html/fusion/functional/adapters/limits.html +++ b/doc/html/fusion/functional/adapters/limits.html @@ -27,13 +27,13 @@ Limits
    - + Header
    #include <boost/fusion/functional/adapter/limits.hpp>
     
    - + Macros

    diff --git a/doc/html/fusion/functional/adapters/unfused.html b/doc/html/fusion/functional/adapters/unfused.html index 8760d979..e3de5966 100644 --- a/doc/html/fusion/functional/adapters/unfused.html +++ b/doc/html/fusion/functional/adapters/unfused.html @@ -27,7 +27,7 @@ unfused

    - + Description

    @@ -57,20 +57,20 @@ 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
    @@ -133,7 +133,7 @@
    - + Model of
      @@ -174,7 +174,7 @@
    - + Expression Semantics
    @@ -239,7 +239,7 @@
    - + Example
    struct fused_incrementer
    @@ -266,7 +266,7 @@
     }
     
    - + See also
      diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html index ad0cd71c..29b79854 100644 --- a/doc/html/fusion/functional/adapters/unfused_typed.html +++ b/doc/html/fusion/functional/adapters/unfused_typed.html @@ -27,7 +27,7 @@ unfused_typed
    - + Description

    @@ -66,20 +66,20 @@

    - + Header
    #include <boost/fusion/functional/adapter/unfused_typed.hpp>
     
    - + Synopsis
    template <class Function, class Sequence>
     class unfused_typed;
     
    - + Template parameters
    @@ -139,7 +139,7 @@
    - + Model of
    @@ -186,7 +186,7 @@
    - + Expression Semantics
    @@ -253,7 +253,7 @@
    - + Example
    struct add_assign // applies operator+=
    @@ -321,7 +321,7 @@
     }
     
    - + See also
      diff --git a/doc/html/fusion/functional/concepts/callable.html b/doc/html/fusion/functional/concepts/callable.html index 8050c7b8..b645a477 100644 --- a/doc/html/fusion/functional/concepts/callable.html +++ b/doc/html/fusion/functional/concepts/callable.html @@ -27,7 +27,7 @@ Callable Object
    - + Description

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

    - + Models
      @@ -51,7 +51,7 @@
    - + Examples
    & a_free_function
    diff --git a/doc/html/fusion/functional/concepts/def_callable.html b/doc/html/fusion/functional/concepts/def_callable.html
    index 1c8b1e7a..f046aa66 100644
    --- a/doc/html/fusion/functional/concepts/def_callable.html
    +++ b/doc/html/fusion/functional/concepts/def_callable.html
    @@ -28,7 +28,7 @@
             Object
     
     
    - + Description

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

    - + Refinement of
    @@ -79,7 +79,7 @@
    - + Expression requirements
    @@ -117,7 +117,7 @@
    - + Models
      @@ -130,7 +130,7 @@
    - + Examples
    & a_free_function
    diff --git a/doc/html/fusion/functional/concepts/poly.html b/doc/html/fusion/functional/concepts/poly.html
    index 60ff05ee..236c9503 100644
    --- a/doc/html/fusion/functional/concepts/poly.html
    +++ b/doc/html/fusion/functional/concepts/poly.html
    @@ -28,7 +28,7 @@
             Object
     
     
    - + Description

    @@ -36,7 +36,7 @@ Callable Object type.

    - + Refinement of
    @@ -79,7 +79,7 @@
    - + Expression requirements
    @@ -128,7 +128,7 @@
    - + Models
      @@ -143,7 +143,7 @@
    - + Examples
    & a_free_function
    diff --git a/doc/html/fusion/functional/concepts/reg_callable.html b/doc/html/fusion/functional/concepts/reg_callable.html
    index b329cd58..c19f57df 100644
    --- a/doc/html/fusion/functional/concepts/reg_callable.html
    +++ b/doc/html/fusion/functional/concepts/reg_callable.html
    @@ -28,7 +28,7 @@
             Object
     
     
    - + Description

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

    - + Refinement of
    @@ -67,7 +67,7 @@
    - + Expression requirements
    @@ -114,7 +114,7 @@
    - + Models
      @@ -126,7 +126,7 @@
    - + Examples
    & a_free_function
    diff --git a/doc/html/fusion/functional/generation/functions/mk_fused.html b/doc/html/fusion/functional/generation/functions/mk_fused.html
    index 4bec9b60..23ff0086 100644
    --- a/doc/html/fusion/functional/generation/functions/mk_fused.html
    +++ b/doc/html/fusion/functional/generation/functions/mk_fused.html
    @@ -27,7 +27,7 @@
     make_fused
     
     
    - + Description

    @@ -36,7 +36,7 @@ conversion is applied to the target function.

    - + Synopsis
    template <typename F>
    @@ -44,7 +44,7 @@
     make_fused(F const & f);
     
    - + Parameters
    @@ -90,7 +90,7 @@
    - + Expression Semantics
    @@ -103,14 +103,14 @@ Semantics: Returns a fused adapter for f.

    - + Header
    #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; }
    @@ -125,7 +125,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 a26755ab..9d2747d8 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html @@ -27,7 +27,7 @@ make_fused_function_object
    - + Description

    @@ -37,7 +37,7 @@ conversion is applied to the target function.

    - + Synopsis
    template <typename F>
    @@ -45,7 +45,7 @@
     make_fused_function_object(F const & f);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -105,14 +105,14 @@ for f.

    - + Header
    #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - + Example
    struct sub
    @@ -140,7 +140,7 @@
     }
     
    - + See also
    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 00492065..6b07ca57 100644 --- a/doc/html/fusion/functional/generation/functions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/functions/mk_fused_proc.html @@ -27,7 +27,7 @@ make_fused_procedure
    - + Description

    @@ -37,7 +37,7 @@ conversion applied to the target function.

    - + Synopsis
    template <typename F>
    @@ -45,7 +45,7 @@
     make_fused_procedure(F const & f);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -105,14 +105,14 @@ f.

    - + Header
    #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);
    @@ -121,7 +121,7 @@
     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 index 77680f0b..c42d2ab8 100644 --- a/doc/html/fusion/functional/generation/functions/mk_unfused.html +++ b/doc/html/fusion/functional/generation/functions/mk_unfused.html @@ -27,7 +27,7 @@ make_unfused
    - + Description

    @@ -37,7 +37,7 @@ conversion is applied to the target function.

    - + Synopsis
    template <typename F>
    @@ -45,7 +45,7 @@
     make_unfused(F const & f);
     
    - + Parameters
    @@ -91,7 +91,7 @@
    - + Expression Semantics
    @@ -104,14 +104,14 @@ 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
    @@ -137,7 +137,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html index 08019035..2206dea8 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused.html @@ -27,21 +27,21 @@ make_fused
    - + Description

    Returns the result type of make_fused.

    - + Header
    #include <boost/fusion/functional/generation/make_fused.hpp>
     #include <boost/fusion/include/make_fused.hpp>
     
    - + Synopsis
    namespace result_of
    @@ -54,7 +54,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 ba142d77..5098e924 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html @@ -27,21 +27,21 @@ make_fused_function_object
    - + Description

    Returns the result type of make_fused_function_object.

    - + Header
    #include <boost/fusion/functional/generation/make_fused_function_object.hpp>
     #include <boost/fusion/include/make_fused_function_object.hpp>
     
    - + Synopsis
    namespace result_of
    @@ -54,7 +54,7 @@
     }
     
    - + See also
    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 a1addcdc..7d8b3682 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html @@ -27,21 +27,21 @@ make_fused_procedure
    - + Description

    Returns the result type of make_fused_procedure.

    - + Header
    #include <boost/fusion/functional/generation/make_fused_procedure.hpp>
     #include <boost/fusion/include/make_fused_procedure.hpp>
     
    - + Synopsis
    namespace result_of
    @@ -54,7 +54,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 index 66985cce..40fdfdb3 100644 --- a/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html +++ b/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html @@ -27,21 +27,21 @@ make_unfused
    - + 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
    @@ -54,7 +54,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke.html b/doc/html/fusion/functional/invocation/functions/invoke.html index 96d8f554..5044ce2a 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke.html +++ b/doc/html/fusion/functional/invocation/functions/invoke.html @@ -27,7 +27,7 @@ invoke
    - + Description

    @@ -49,7 +49,7 @@ Constructors can be called applying Boost.Functional/Factory.

    - + Synopsis
    template<
    @@ -67,7 +67,7 @@
     invoke(Function f, Sequence const & s);
     
    - + Parameters
    @@ -133,7 +133,7 @@
    - + Expression Semantics
    @@ -149,20 +149,20 @@ as arguments and returns the result of the call expression.

    - + Header
    #include <boost/fusion/functional/invocation/invoke.hpp>
     
    - + Example
    std::plus<int> add;
     assert(invoke(add,make_vector(1,1)) == 2);
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html index 7f694ce1..0859d392 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_fobj.html @@ -27,7 +27,7 @@ invoke_function_object
    - + Description

    @@ -42,7 +42,7 @@ Constructors can be called applying Boost.Functional/Factory.

    - + Synopsis
    template<
    @@ -60,7 +60,7 @@
     invoke_function_object(Function f, Sequence const & s);
     
    - + Parameters
    @@ -126,7 +126,7 @@
    - + Expression Semantics
    @@ -142,13 +142,13 @@ as arguments and returns the result of the call expression.

    - + Header
    #include <boost/fusion/functional/invocation/invoke_function_object.hpp>
     
    - + Example
    struct sub
    @@ -174,7 +174,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/functions/invoke_proc.html b/doc/html/fusion/functional/invocation/functions/invoke_proc.html index e3a54fc2..778e731e 100644 --- a/doc/html/fusion/functional/invocation/functions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/functions/invoke_proc.html @@ -27,7 +27,7 @@ invoke_procedure
    - + Description

    @@ -51,7 +51,7 @@ isn't implemented).

    - + Synopsis
    template<
    @@ -69,7 +69,7 @@
     invoke_procedure(Function f, Sequence const & s);
     
    - + Parameters
    @@ -135,7 +135,7 @@
    - + Expression Semantics
    @@ -150,13 +150,13 @@ as arguments.

    - + Header
    #include <booost/fusion/functional/invocation/invoke_procedure.hpp>
     
    - + Example
    vector<int,int> v(1,2);
    @@ -165,7 +165,7 @@
     assert(front(v) == 3);
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/limits.html b/doc/html/fusion/functional/invocation/limits.html index 2c525613..9be51e43 100644 --- a/doc/html/fusion/functional/invocation/limits.html +++ b/doc/html/fusion/functional/invocation/limits.html @@ -27,13 +27,13 @@ Limits
    - + Header
    #include <boost/fusion/functional/invocation/limits.hpp>
     
    - + Macros

    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke.html b/doc/html/fusion/functional/invocation/metafunctions/invoke.html index 35c40459..b55091e4 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke.html @@ -27,14 +27,14 @@ invoke

    - + Description

    Returns the result type of invoke.

    - + Synopsis
    namespace result_of
    @@ -50,7 +50,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 1439f785..9f24915b 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html @@ -27,14 +27,14 @@ invoke_function_object
    - + Description

    Returns the result type of invoke_function_object.

    - + Synopsis
    namespace result_of
    @@ -50,7 +50,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html index 4738779a..ff7ec8a6 100644 --- a/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html +++ b/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html @@ -27,14 +27,14 @@ invoke_procedure
    - + Description

    Returns the result type of invoke_procedure.

    - + Synopsis
    namespace result_of
    @@ -50,7 +50,7 @@
     }
     
    - + See also
    diff --git a/doc/html/fusion/introduction.html b/doc/html/fusion/introduction.html index 3b2495e8..be6ee81f 100644 --- a/doc/html/fusion/introduction.html +++ b/doc/html/fusion/introduction.html @@ -116,7 +116,7 @@ sequences and MPL sequences are fully compatible with Fusion. You can work with Fusion sequences on MPL if you - wish to work solely on types [1]. In MPL, + wish to work solely on types [1]. In MPL, Fusion sequences follow MPL's sequence-type preserving semantics (i.e. algorithms preserve the original sequence type. e.g. transforming a vector returns a vector). You can also convert from @@ -130,7 +130,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 9f5d642f..db5b1580 100644 --- a/doc/html/fusion/iterator.html +++ b/doc/html/fusion/iterator.html @@ -81,7 +81,7 @@ Sequence.

    - + Header

    #include <boost/fusion/iterator.hpp>
    diff --git a/doc/html/fusion/iterator/concepts/associative_iterator.html b/doc/html/fusion/iterator/concepts/associative_iterator.html
    index 60b0d44a..f32247a5 100644
    --- a/doc/html/fusion/iterator/concepts/associative_iterator.html
    +++ b/doc/html/fusion/iterator/concepts/associative_iterator.html
    @@ -28,7 +28,7 @@
             Iterator
     
    - + Description

    @@ -50,7 +50,7 @@

    - + Refinement of
    @@ -61,7 +61,7 @@ Access Iterator

    - + Expression requirements
    @@ -113,7 +113,7 @@
    - + Meta Expressions
    @@ -174,7 +174,7 @@
    - + Models
      diff --git a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html index 7afc5873..ccbbd5c7 100644 --- a/doc/html/fusion/iterator/concepts/bidirectional_iterator.html +++ b/doc/html/fusion/iterator/concepts/bidirectional_iterator.html @@ -28,7 +28,7 @@ Iterator
    - + Description

    @@ -58,7 +58,7 @@

    - + Refinement of
    @@ -66,7 +66,7 @@ Forward Iterator

    - + Expression requirements
    @@ -173,7 +173,7 @@
    - + Meta Expressions
    @@ -208,7 +208,7 @@
    - + Expression Semantics
    @@ -248,7 +248,7 @@
    - + Invariants

    @@ -269,7 +269,7 @@

    - + Models
      diff --git a/doc/html/fusion/iterator/concepts/forward_iterator.html b/doc/html/fusion/iterator/concepts/forward_iterator.html index 5bc331b0..2b60cc2d 100644 --- a/doc/html/fusion/iterator/concepts/forward_iterator.html +++ b/doc/html/fusion/iterator/concepts/forward_iterator.html @@ -28,7 +28,7 @@ Iterator
    - + Description

    @@ -59,7 +59,7 @@

    - + Expression requirements
    @@ -237,7 +237,7 @@
    - + Meta Expressions
    @@ -348,7 +348,7 @@
    - + Expression Semantics
    @@ -474,7 +474,7 @@
    - + Invariants

    @@ -505,7 +505,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 388e8086..1c319cdc 100644 --- a/doc/html/fusion/iterator/concepts/random_access_iterator.html +++ b/doc/html/fusion/iterator/concepts/random_access_iterator.html @@ -28,7 +28,7 @@ Access Iterator
    - + Description

    @@ -59,7 +59,7 @@

    - + Refinement of
    @@ -68,7 +68,7 @@ Iterator

    - + Expression requirements
    @@ -175,7 +175,7 @@
    - + Meta Expressions
    @@ -238,7 +238,7 @@
    - + Models
      diff --git a/doc/html/fusion/iterator/functions/advance.html b/doc/html/fusion/iterator/functions/advance.html index b92f109c..eb43ab25 100644 --- a/doc/html/fusion/iterator/functions/advance.html +++ b/doc/html/fusion/iterator/functions/advance.html @@ -27,14 +27,14 @@ advance
    - + Description

    Moves an iterator by a specified distance.

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

    Table 1.6. Parameters

    +

    Table 1.6. Parameters

    @@ -109,7 +109,7 @@

    - + Expression Semantics
    @@ -128,14 +128,14 @@ may be negative.

    - + Header
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    typedef vector<int,int,int> vec;
    diff --git a/doc/html/fusion/iterator/functions/advance_c.html b/doc/html/fusion/iterator/functions/advance_c.html
    index 323d0940..f73f6cfa 100644
    --- a/doc/html/fusion/iterator/functions/advance_c.html
    +++ b/doc/html/fusion/iterator/functions/advance_c.html
    @@ -27,14 +27,14 @@
     advance_c
     
     
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    template<
    @@ -44,7 +44,7 @@
     typename result_of::advance_c<I, N>::type advance_c(I const& i);
     
    -

    Table 1.7. Parameters

    +

    Table 1.7. Parameters

    @@ -108,7 +108,7 @@

    - + Expression Semantics
    @@ -127,14 +127,14 @@ may be negative.

    - + Header
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    typedef vector<int,int,int> vec;
    diff --git a/doc/html/fusion/iterator/functions/deref.html b/doc/html/fusion/iterator/functions/deref.html
    index 8b589041..c7d98fa0 100644
    --- a/doc/html/fusion/iterator/functions/deref.html
    +++ b/doc/html/fusion/iterator/functions/deref.html
    @@ -27,14 +27,14 @@
     deref
     
     
    - + Description

    Deferences an iterator.

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

    Table 1.2. Parameters

    +

    Table 1.2. Parameters

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

    - + Expression Semantics
    @@ -102,14 +102,14 @@ i.

    - + Header
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    typedef vector<int,int&> vec;
    diff --git a/doc/html/fusion/iterator/functions/deref_data.html b/doc/html/fusion/iterator/functions/deref_data.html
    index ae855d72..87c719e2 100644
    --- a/doc/html/fusion/iterator/functions/deref_data.html
    +++ b/doc/html/fusion/iterator/functions/deref_data.html
    @@ -27,7 +27,7 @@
     deref_data
     
     
    - + Description

    @@ -35,7 +35,7 @@ an associative iterator.

    - + Synopsis
    template<
    @@ -44,7 +44,7 @@
     typename result_of::deref_data<I>::type deref(I const& i);
     
    -

    Table 1.8. Parameters

    +

    Table 1.8. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -103,14 +103,14 @@ associated with the element referenced by an associative iterator i.

    - + Header
    #include <boost/fusion/iterator/deref_data.hpp>
     #include <boost/fusion/include/deref_data.hpp>
     
    - + Example
    typedef map<pair<float,int&> > map;
    diff --git a/doc/html/fusion/iterator/functions/distance.html b/doc/html/fusion/iterator/functions/distance.html
    index 491d47be..2c712b0c 100644
    --- a/doc/html/fusion/iterator/functions/distance.html
    +++ b/doc/html/fusion/iterator/functions/distance.html
    @@ -27,14 +27,14 @@
     distance
     
     
    - + Description

    Returns the distance between 2 iterators.

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

    Table 1.5. Parameters

    +

    Table 1.5. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -103,14 +103,14 @@ iterators i and j.

    - + Header
    #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    - + Example
    typedef vector<int,int,int> vec;
    diff --git a/doc/html/fusion/iterator/functions/next.html b/doc/html/fusion/iterator/functions/next.html
    index 8881e040..3ef0fc0b 100644
    --- a/doc/html/fusion/iterator/functions/next.html
    +++ b/doc/html/fusion/iterator/functions/next.html
    @@ -27,14 +27,14 @@
     next
     
     
    - + Description

    Moves an iterator 1 position forwards.

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

    Table 1.3. Parameters

    +

    Table 1.3. Parameters

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

    - + Expression Semantics
    @@ -103,14 +103,14 @@ next element after i.

    - + Header
    #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    - + Example
    typedef vector<int,int,int> vec;
    diff --git a/doc/html/fusion/iterator/functions/prior.html b/doc/html/fusion/iterator/functions/prior.html
    index 985f9851..59a21c98 100644
    --- a/doc/html/fusion/iterator/functions/prior.html
    +++ b/doc/html/fusion/iterator/functions/prior.html
    @@ -27,14 +27,14 @@
     prior
     
     
    - + Description

    Moves an iterator 1 position backwards.

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

    Table 1.4. Parameters

    +

    Table 1.4. Parameters

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

    - + Expression Semantics
    @@ -103,14 +103,14 @@ element prior to i.

    - + Header
    #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    - + Example
    typedef vector<int,int> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/advance.html b/doc/html/fusion/iterator/metafunctions/advance.html
    index bc346fba..42294799 100644
    --- a/doc/html/fusion/iterator/metafunctions/advance.html
    +++ b/doc/html/fusion/iterator/metafunctions/advance.html
    @@ -27,14 +27,14 @@
     advance
     
     
    - + Description

    Moves an iterator a specified distance.

    - + Synopsis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.18. Parameters

    +

    Table 1.18. Parameters

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

    - + Expression Semantics
    @@ -130,14 +130,14 @@ may be negative.

    - + Header
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    typedef vector<int,double,char> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/advance_c.html b/doc/html/fusion/iterator/metafunctions/advance_c.html
    index 757ddb53..7a8d5584 100644
    --- a/doc/html/fusion/iterator/metafunctions/advance_c.html
    +++ b/doc/html/fusion/iterator/metafunctions/advance_c.html
    @@ -27,14 +27,14 @@
     advance_c
     
     
    - + Description

    Moves an iterator by a specified distance.

    - + Synopsis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.19. Parameters

    +

    Table 1.19. Parameters

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

    - + Expression Semantics
    @@ -129,14 +129,14 @@ may be negative. Equivalent to result_of::advance<I, boost::mpl::int_<N> >::type.

    - + Header
    #include <boost/fusion/iterator/advance.hpp>
     #include <boost/fusion/include/advance.hpp>
     
    - + Example
    typedef vector<int,double,char> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/deref.html b/doc/html/fusion/iterator/metafunctions/deref.html
    index d5b62803..cb0cfdaf 100644
    --- a/doc/html/fusion/iterator/metafunctions/deref.html
    +++ b/doc/html/fusion/iterator/metafunctions/deref.html
    @@ -27,14 +27,14 @@
     deref
     
     
    - + Description

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

    - + Synposis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.13. Parameters

    +

    Table 1.13. Parameters

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

    - + Expression Semantics
    @@ -105,14 +105,14 @@ an iterator of type I.

    - + Header
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    typedef vector<int,int&> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/deref_data.html b/doc/html/fusion/iterator/metafunctions/deref_data.html
    index f0c225f8..92a9480f 100644
    --- a/doc/html/fusion/iterator/metafunctions/deref_data.html
    +++ b/doc/html/fusion/iterator/metafunctions/deref_data.html
    @@ -27,7 +27,7 @@
     deref_data
     
     
    - + Description

    @@ -35,7 +35,7 @@ referenced by an associative iterator.

    - + Synposis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.22. Parameters

    +

    Table 1.22. Parameters

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

    - + Expression Semantics
    @@ -106,14 +106,14 @@ the data property referenced by an associative iterator of type I.

    - + Header
    #include <boosta/fusion/iterator/deref_data.hpp>
     #include <boost/fusion/include/deref_data.hpp>
     
    - + Example
    typedef map<pair<float,int> > map;
    diff --git a/doc/html/fusion/iterator/metafunctions/distance.html b/doc/html/fusion/iterator/metafunctions/distance.html
    index cc8a6696..e67ae1bb 100644
    --- a/doc/html/fusion/iterator/metafunctions/distance.html
    +++ b/doc/html/fusion/iterator/metafunctions/distance.html
    @@ -27,14 +27,14 @@
     distance
     
     
    - + Description

    Returns the distance between two iterators.

    - + Synopsis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.17. Parameters

    +

    Table 1.17. Parameters

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

    - + Expression Semantics
    @@ -108,14 +108,14 @@ J.

    - + Header
    #include <boost/fusion/iterator/distance.hpp>
     #include <boost/fusion/include/distance.hpp>
     
    - + Example
    typedef vector<int,double,char> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/equal_to.html b/doc/html/fusion/iterator/metafunctions/equal_to.html
    index 06269b5b..595ae6bf 100644
    --- a/doc/html/fusion/iterator/metafunctions/equal_to.html
    +++ b/doc/html/fusion/iterator/metafunctions/equal_to.html
    @@ -27,7 +27,7 @@
     equal_to
     
     
    - + Description

    @@ -36,7 +36,7 @@ and J are equal.

    - + Synopsis
    template<
    @@ -49,7 +49,7 @@
     };
     
    -

    Table 1.16. Parameters

    +

    Table 1.16. Parameters

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

    - + Expression Semantics
    @@ -109,14 +109,14 @@ Returns boost::mpl::false_ otherwise.

    - + Header
    #include <boost/fusion/iterator/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    - + Example
    typedef vector<int,double> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/key_of.html b/doc/html/fusion/iterator/metafunctions/key_of.html
    index 90b676fb..69a76fec 100644
    --- a/doc/html/fusion/iterator/metafunctions/key_of.html
    +++ b/doc/html/fusion/iterator/metafunctions/key_of.html
    @@ -27,7 +27,7 @@
     key_of
     
     
    - + Description

    @@ -35,7 +35,7 @@ iterator.

    - + Synopsis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.20. Parameters

    +

    Table 1.20. Parameters

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

    - + Expression Semantics
    @@ -106,14 +106,14 @@ with the element referenced by an associative iterator I.

    - + Header
    #include <boost/fusion/iterator/key_of.hpp>
     #include <boost/fusion/include/key_of.hpp>
     
    - + Example
    typedef map<pair<float,int> > vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/next.html b/doc/html/fusion/iterator/metafunctions/next.html
    index a8e7d9cb..1ccb75aa 100644
    --- a/doc/html/fusion/iterator/metafunctions/next.html
    +++ b/doc/html/fusion/iterator/metafunctions/next.html
    @@ -27,14 +27,14 @@
     next
     
     
    - + Description

    Returns the type of the next iterator in a sequence.

    - + Synposis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.14. Parameters

    +

    Table 1.14. Parameters

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

    - + Expression Semantics
    @@ -106,14 +106,14 @@ next element in the sequence after I.

    - + Header
    #include <boost/fusion/iterator/next.hpp>
     #include <boost/fusion/include/next.hpp>
     
    - + Example
    typedef vector<int,double> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/prior.html b/doc/html/fusion/iterator/metafunctions/prior.html
    index 30cf9449..13afd638 100644
    --- a/doc/html/fusion/iterator/metafunctions/prior.html
    +++ b/doc/html/fusion/iterator/metafunctions/prior.html
    @@ -27,14 +27,14 @@
     prior
     
     
    - + Description

    Returns the type of the previous iterator in a sequence.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.15. Parameters

    +

    Table 1.15. Parameters

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

    - + Expression Semantics
    @@ -106,14 +106,14 @@ previous element in the sequence before I.

    - + Header
    #include <boost/fusion/iterator/prior.hpp>
     #include <boost/fusion/include/prior.hpp>
     
    - + Example
    typedef vector<int,double> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/value_of.html b/doc/html/fusion/iterator/metafunctions/value_of.html
    index 630fda5d..5a0f6c32 100644
    --- a/doc/html/fusion/iterator/metafunctions/value_of.html
    +++ b/doc/html/fusion/iterator/metafunctions/value_of.html
    @@ -27,14 +27,14 @@
     value_of
     
     
    - + Description

    Returns the type stored at the position of an iterator.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.12. Parameters

    +

    Table 1.12. Parameters

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

    - + Expression Semantics
    @@ -105,14 +105,14 @@ a sequence at iterator position I.

    - + Header
    #include <boost/fusion/iterator/value_of.hpp>
     #include <boost/fusion/include/value_of.hpp>
     
    - + Example
    typedef vector<int,int&,const int&> vec;
    diff --git a/doc/html/fusion/iterator/metafunctions/value_of_data.html b/doc/html/fusion/iterator/metafunctions/value_of_data.html
    index 874cf709..dabe24db 100644
    --- a/doc/html/fusion/iterator/metafunctions/value_of_data.html
    +++ b/doc/html/fusion/iterator/metafunctions/value_of_data.html
    @@ -27,7 +27,7 @@
     value_of_data
     
     
    - + Description

    @@ -35,7 +35,7 @@ by an associative iterator references.

    - + Synopsis
    template<
    @@ -47,7 +47,7 @@
     };
     
    -

    Table 1.21. Parameters

    +

    Table 1.21. Parameters

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

    - + Expression Semantics
    @@ -107,14 +107,14 @@ I.

    - + Header
    #include <boost/fusion/iterator/value_of_data.hpp>
     #include <boost/fusion/include/value_of_data.hpp>
     
    - + Example
    typedef map<pair<float,int> > vec;
    diff --git a/doc/html/fusion/iterator/operator/operator_equality.html b/doc/html/fusion/iterator/operator/operator_equality.html
    index 78494607..8865d02e 100644
    --- a/doc/html/fusion/iterator/operator/operator_equality.html
    +++ b/doc/html/fusion/iterator/operator/operator_equality.html
    @@ -28,14 +28,14 @@
             ==
     
     
    - + Description

    Compares 2 iterators for equality.

    - + Synopsis
    template<
    @@ -45,7 +45,7 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.10. Parameters

    +

    Table 1.10. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -104,7 +104,7 @@ and j respectively.

    - + Header
    #include <boost/fusion/iterator/equal_to.hpp>
    diff --git a/doc/html/fusion/iterator/operator/operator_inequality.html b/doc/html/fusion/iterator/operator/operator_inequality.html
    index 6dc8245d..d3b97c9b 100644
    --- a/doc/html/fusion/iterator/operator/operator_inequality.html
    +++ b/doc/html/fusion/iterator/operator/operator_inequality.html
    @@ -28,14 +28,14 @@
             !=
     
     
    - + Description

    Compares 2 iterators for inequality.

    - + Synopsis
    template<
    @@ -45,7 +45,7 @@
     unspecified operator==(I const& i, J const& i);
     
    -

    Table 1.11. Parameters

    +

    Table 1.11. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -102,7 +102,7 @@ and j respectively.

    - + Header
    #include <boost/fusion/iterator/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 5ce77123..2e81a0e9 100644
    --- a/doc/html/fusion/iterator/operator/operator_unary_star.html
    +++ b/doc/html/fusion/iterator/operator/operator_unary_star.html
    @@ -28,14 +28,14 @@
             *
     
     
    - + Description

    Dereferences an iterator.

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

    Table 1.9. Parameters

    +

    Table 1.9. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -103,14 +103,14 @@ Semantics: Equivalent to deref(i).

    - + Header
    #include <boost/fusion/iterator/deref.hpp>
     #include <boost/fusion/include/deref.hpp>
     
    - + Example
    typedef vector<int,int&> vec;
    diff --git a/doc/html/fusion/notes.html b/doc/html/fusion/notes.html
    index 2036055c..5faed22f 100644
    --- a/doc/html/fusion/notes.html
    +++ b/doc/html/fusion/notes.html
    @@ -27,7 +27,7 @@
     Notes
     
     

    - + Recursive Inlined Functions

    @@ -40,7 +40,7 @@ remains linear.

    - + Overloaded Functions

    @@ -50,7 +50,7 @@ given a key, k.

    - + Tag Dispatching

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

    - + Extensibility

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

    - + Element Conversion

    @@ -157,7 +157,7 @@ Arrays:

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

    make_list("Donald", "Daisy")
     
    @@ -185,7 +185,7 @@
    list<void (*)(int)>
     

    - + boost::ref

    @@ -223,9 +223,240 @@ See Boost.Ref for details.

    +

    + + adt_attribute_proxy +

    +

    + To adapt arbitrary data types that do not allow direct access to their members, + but allow indirect access via expressions (such as invocations of get- and + set-methods), fusion's BOOST_FUSION_ADAPT_xxxADTxxx-family + (e.g. BOOST_FUSION_ADAPT_ADT) + may be used. To bypass the restriction of not having actual lvalues that represent + the elements of the fusion sequence, but rather a sequence of paired expressions + that access the elements, the actual return type of fusion's intrinsic sequence + access functions (at, at_c, at_key, deref, and deref_data) is a proxy type, an instance + of adt_attribute_proxy, that + encapsulates these expressions. +

    +

    + adt_attribute_proxy is defined + in the namespace boost::fusion::extension and has three template arguments: +

    +
    namespace boost { namespace fusion { namespace extension
    +{    
    +    template<
    +        typename Type
    +      , int Index
    +      , bool Const
    +    >
    +    struct adt_attribute_proxy;
    +}}}
    +
    +

    + When adapting a class type, adt_attribute_proxy + is specialized for every element of the adapted sequence, with Type being the class type that is adapted, + Index the 0-based indices of + the elements, and Const both + true and false. + The return type of fusion's intrinsic sequence access functions for the Nth + element of an adapted class type type_name + is adt_attribute_proxy<type_name, N, Const>, + with Const being true + for constant instances of type_name + and false for non-constant ones. +

    +
    +

    Notation

    +
    +
    type_name
    +

    + The type to be adapted, with M attributes +

    +
    inst
    +

    + Object of type type_name +

    +
    const_inst
    +

    + Object of type type_name const +

    +
    (attribute_typeN, attribute_const_typeN, + get_exprN, set_exprN)
    +

    + Attribute descriptor of the Nth attribute of type_name as passed to the adaption + macro, 0≤N<M +

    +
    proxy_typeN
    +

    + adt_attribute_proxy<type_name, N, false> with N + being an integral constant, 0≤N<M +

    +
    const_proxy_typeN
    +

    + adt_attribute_proxy<type_name, N, true> with N + being an integral constant, 0≤N<M +

    +
    proxyN
    +

    + Object of type proxy_typeN +

    +
    const_proxyN
    +

    + Object of type const_proxy_typeN +

    +
    +
    +

    + Expression Semantics +

    +
    ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + Expression +

    +
    +

    + Semantics +

    +
    +

    + proxy_typeN(inst) +

    +
    +

    + Creates an instance of proxy_typeN + with underlying object inst +

    +
    +

    + const_proxy_typeN(const_inst) +

    +
    +

    + Creates an instance of const_proxy_typeN + with underlying object const_inst +

    +
    +

    + proxy_typeN::type +

    +
    +

    + Another name for attribute_typeN +

    +
    +

    + const_proxy_typeN::type +

    +
    +

    + Another name for const_attribute_typeN +

    +
    +

    + proxyN=t +

    +
    +

    + Invokes set_exprN, with + t being an arbitrary + object. set_exprN may access + the variables named obj + of type type_name&, which represent the corresponding + instance of type_name, + and val of an arbitrary + const-qualified reference template type parameter Val, + which represents t. +

    +
    +

    + proxyN.get() +

    +
    +

    + Invokes get_exprN and forwards + its return value. get_exprN + may access the variable named obj + of type type_name& which represents the underlying + instance of type_name. + attribute_typeN may specify + the type that get_exprN denotes + to. +

    +
    +

    + const_proxyN.get() +

    +
    +

    + Invokes get_exprN and forwards + its return value. get_exprN + may access the variable named obj + of type type_name const& + which represents the underlying instance of type_name. + attribute_const_typeN may + specify the type that get_exprN + denotes to. +

    +
    +

    + Additionally, proxy_typeN and const_proxy_typeN + are copy constructible, copy assignable and implicitly convertible to proxy_typeN::type + or const_proxy_typeN::type. +

    +
    + + + + + +
    [Tip]Tip

    + To avoid the pitfalls of the proxy type, an arbitrary class type may also + be adapted directly using fusion's intrinsic + extension mechanism. +



    -

    [10] +

    [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 diff --git a/doc/html/fusion/organization.html b/doc/html/fusion/organization.html index 16c3c787..d458e277 100644 --- a/doc/html/fusion/organization.html +++ b/doc/html/fusion/organization.html @@ -35,7 +35,7 @@ The library is organized in three layers:

    - + Layers

    @@ -60,7 +60,7 @@ against.

    - + Directory

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

    - + Example

    @@ -206,11 +206,11 @@

    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 74d486c3..8c6f7542 100644 --- a/doc/html/fusion/preface.html +++ b/doc/html/fusion/preface.html @@ -33,7 +33,7 @@ --Niklaus Wirth

    - + Description

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

    - + Motivation

    @@ -77,7 +77,7 @@ an instant AHA! moment.

    - + How to use this manual

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

    -

    Table 1.1. Icons

    +

    Table 1.1. Icons

    @@ -188,7 +188,7 @@ Tools.

    - + Support

    diff --git a/doc/html/fusion/quick_start.html b/doc/html/fusion/quick_start.html index a32a60fa..59dd889f 100644 --- a/doc/html/fusion/quick_start.html +++ b/doc/html/fusion/quick_start.html @@ -34,13 +34,13 @@

    For starters, we shall include all of Fusion's Sequence(s) - [2]: + [2]:

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

    - Let's begin with a vector [3]: + Let's begin with a vector [3]:

    vector<int, char, std::string> stuff(1, 'x', "howdy");
     int i = at_c<0>(stuff);
    @@ -56,7 +56,7 @@
           Let's see some examples.
         

    - + Print the vector as XML

    @@ -111,7 +111,7 @@ print just about any Fusion Sequence.

    - + Print only pointers

    @@ -143,7 +143,7 @@ Easy, right?

    - + Associative tuples

    @@ -215,7 +215,7 @@ a dog or a whole alternate_universe.

    - + Tip of the Iceberg

    @@ -226,12 +226,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/sequence.html b/doc/html/fusion/sequence.html index 5a962f02..5b0a266d 100644 --- a/doc/html/fusion/sequence.html +++ b/doc/html/fusion/sequence.html @@ -60,7 +60,7 @@ type that can be used to iterate through the Sequence's elements.

    - + Header

    #include <boost/fusion/sequence.hpp>
    diff --git a/doc/html/fusion/sequence/concepts.html b/doc/html/fusion/sequence/concepts.html
    index 2cfed414..9eac12a0 100644
    --- a/doc/html/fusion/sequence/concepts.html
    +++ b/doc/html/fusion/sequence/concepts.html
    @@ -40,7 +40,7 @@
             Fusion Sequences are organized into a hierarchy of concepts.
           

    - + Traversal

    @@ -53,7 +53,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 4e460b28..039324a6 100644 --- a/doc/html/fusion/sequence/concepts/associative_sequence.html +++ b/doc/html/fusion/sequence/concepts/associative_sequence.html @@ -28,7 +28,7 @@ Sequence

    - + Description

    @@ -64,7 +64,7 @@

    - + Valid Expressions
    @@ -169,7 +169,7 @@
    - + Result Type Expressions
    @@ -243,7 +243,7 @@

    - + Expression Semantics
    @@ -298,7 +298,7 @@
    - + Models
      diff --git a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html index 257e6db3..cbd36573 100644 --- a/doc/html/fusion/sequence/concepts/bidirectional_sequence.html +++ b/doc/html/fusion/sequence/concepts/bidirectional_sequence.html @@ -28,7 +28,7 @@ Sequence
    - + Description

    @@ -37,7 +37,7 @@ Iterator.

    - + Refinement of
    @@ -66,7 +66,7 @@
    - + Valid Expressions
    @@ -192,7 +192,7 @@
    - + Result Type Expressions
    @@ -253,7 +253,7 @@
    - + Expression Semantics
    @@ -293,7 +293,7 @@
    - + Models
      diff --git a/doc/html/fusion/sequence/concepts/forward_sequence.html b/doc/html/fusion/sequence/concepts/forward_sequence.html index 7924c59a..76b481f3 100644 --- a/doc/html/fusion/sequence/concepts/forward_sequence.html +++ b/doc/html/fusion/sequence/concepts/forward_sequence.html @@ -28,7 +28,7 @@ Sequence
    - + Description

    @@ -60,7 +60,7 @@

    - + Valid Expressions
    @@ -225,7 +225,7 @@
    - + Result Type Expressions
    @@ -310,7 +310,7 @@
    - + Expression Semantics
    @@ -398,7 +398,7 @@
    - + Invariants

    @@ -425,7 +425,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 07a72e70..a9787d39 100644 --- a/doc/html/fusion/sequence/concepts/random_access_sequence.html +++ b/doc/html/fusion/sequence/concepts/random_access_sequence.html @@ -28,7 +28,7 @@ Access Sequence
    - + Description

    @@ -38,7 +38,7 @@ sequence elements.

    - + Refinement of
    @@ -73,7 +73,7 @@
    - + Valid Expressions
    @@ -199,7 +199,7 @@
    - + Result Type Expressions
    @@ -285,7 +285,7 @@

    - + Expression Semantics
    @@ -325,7 +325,7 @@
    - + Models
      diff --git a/doc/html/fusion/sequence/intrinsic.html b/doc/html/fusion/sequence/intrinsic.html index 4513e96f..08e41375 100644 --- a/doc/html/fusion/sequence/intrinsic.html +++ b/doc/html/fusion/sequence/intrinsic.html @@ -36,10 +36,10 @@ counterparts of these functions are usually implemented as member functions. Intrinsic functions, unlike Algorithms, are not generic across the full Sequence - repertoire. They need to be implemented for each Fusion Sequence[5]. + repertoire. They need to be implemented for each Fusion Sequence[5].

      - + Header
      #include <boost/fusion/sequence/intrinsic.hpp>
      @@ -47,7 +47,7 @@
       


      -

      [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/at.html b/doc/html/fusion/sequence/intrinsic/functions/at.html index eef0cf59..0ec6edeb 100644 --- a/doc/html/fusion/sequence/intrinsic/functions/at.html +++ b/doc/html/fusion/sequence/intrinsic/functions/at.html @@ -27,14 +27,14 @@ at
    - + Description

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

    - + Synopsis
    template <typename N, typename Sequence>
    @@ -46,7 +46,7 @@
     at(Sequence const& seq);
     
    - + Parameters
    @@ -112,7 +112,7 @@
    - + Expression Semantics
    @@ -138,14 +138,14 @@
    deref(advance<N>(begin(s)))
     
    - + Header
    #include <boost/fusion/sequence/intrinsic/at.hpp>
     #include <boost/fusion/include/at.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_c.html b/doc/html/fusion/sequence/intrinsic/functions/at_c.html
    index df159250..cedd530a 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/at_c.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/at_c.html
    @@ -27,14 +27,14 @@
     at_c
     
     
    - + Description

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

    - + Synopsis
    template <int N, typename Sequence>
    @@ -46,7 +46,7 @@
     at_c(Sequence const& seq);
     
    - + Parameters
    @@ -111,7 +111,7 @@
    - + Expression Semantics
    @@ -138,14 +138,14 @@
    deref(advance<N>(begin(s)))
     
    - + Header
    #include <boost/fusion/sequence/intrinsic/at_c.hpp>
     #include <boost/fusion/include/at_c.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/at_key.html b/doc/html/fusion/sequence/intrinsic/functions/at_key.html
    index 277a8947..04eb2a3b 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/at_key.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/at_key.html
    @@ -27,14 +27,14 @@
     at_key
     
     
    - + Description

    Returns the element associated with a Key from the sequence.

    - + Synopsis
    template <typename Key, typename Sequence>
    @@ -46,7 +46,7 @@
     at_key(Sequence const& seq);
     
    - + Parameters
    @@ -111,7 +111,7 @@
    - + Expression Semantics
    @@ -134,14 +134,14 @@ with Key.

    - + Header
    #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     #include <boost/fusion/include/at_key.hpp>
     
    - + Example
    set<int, char, bool> s(1, 'x', true);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/back.html b/doc/html/fusion/sequence/intrinsic/functions/back.html
    index ef171a74..9a21f45a 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/back.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/back.html
    @@ -27,14 +27,14 @@
     back
     
     
    - + Description

    Returns the last element in the sequence.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     back(Sequence const& seq);
     
    - + Parameters
    @@ -92,7 +92,7 @@
    - + Expression Semantics
    @@ -115,14 +115,14 @@ in the sequence.

    - + Header
    #include <boost/fusion/sequence/intrinsic/back.hpp>
     #include <boost/fusion/include/back.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/begin.html b/doc/html/fusion/sequence/intrinsic/functions/begin.html
    index 225cda8d..9bb9f0b8 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/begin.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/begin.html
    @@ -27,14 +27,14 @@
     begin
     
     
    - + Description

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

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     begin(Sequence const& seq);
     
    - + Parameters
    @@ -92,7 +92,7 @@
    - + Expression Semantics
    @@ -126,14 +126,14 @@ to the first element in the sequence.

    - + Header
    #include <boost/fusion/sequence/intrinsic/begin.hpp>
     #include <boost/fusion/include/begin.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/empty.html b/doc/html/fusion/sequence/intrinsic/functions/empty.html
    index d06016ec..20476a4c 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/empty.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/empty.html
    @@ -27,7 +27,7 @@
     empty
     
     
    - + Description

    @@ -36,7 +36,7 @@ the sequence is empty, else, evaluates to false.

    - + Synopsis
    template <typename Sequence>
    @@ -44,7 +44,7 @@
     empty(Sequence const& seq);
     
    - + Parameters
    @@ -90,7 +90,7 @@
    - + Expression Semantics
    @@ -104,14 +104,14 @@ to false.

    - + Header
    #include <boost/fusion/sequence/intrinsic/empty.hpp>
     #include <boost/fusion/include/empty.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/end.html b/doc/html/fusion/sequence/intrinsic/functions/end.html
    index a5c87e0d..2c98e2f5 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/end.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/end.html
    @@ -27,14 +27,14 @@
     end
     
     
    - + Description

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

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     end(Sequence const& seq);
     
    - + Parameters
    @@ -92,7 +92,7 @@
    - + Expression Semantics
    @@ -126,14 +126,14 @@ to one element past the end of the sequence.

    - + Header
    #include <boost/fusion/sequence/intrinsic/end.hpp>
     #include <boost/fusion/include/end.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/front.html b/doc/html/fusion/sequence/intrinsic/functions/front.html
    index 7c3c40ab..ecb8471e 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/front.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/front.html
    @@ -27,14 +27,14 @@
     front
     
     
    - + Description

    Returns the first element in the sequence.

    - + Synopsis
    template <typename Sequence>
    @@ -46,7 +46,7 @@
     front(Sequence const& seq);
     
    - + Parameters
    @@ -92,7 +92,7 @@
    - + Expression Semantics
    @@ -115,14 +115,14 @@ in the sequence.

    - + Header
    #include <boost/fusion/sequence/intrinsic/front.hpp>
     #include <boost/fusion/include/front.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/has_key.html b/doc/html/fusion/sequence/intrinsic/functions/has_key.html
    index 5570d129..6410a690 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/has_key.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/has_key.html
    @@ -27,7 +27,7 @@
     has_key
     
     
    - + Description

    @@ -37,7 +37,7 @@ to false.

    - + Synopsis
    template <typename Key, typename Sequence>
    @@ -45,7 +45,7 @@
     has_key(Sequence const& seq);
     
    - + Parameters
    @@ -110,7 +110,7 @@
    - + Expression Semantics
    @@ -124,14 +124,14 @@ associated with Key, else, evaluates to false.

    - + Header
    #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     #include <boost/fusion/include/has_key.hpp>
     
    - + Example
    set<int, char, bool> s(1, 'x', true);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/size.html b/doc/html/fusion/sequence/intrinsic/functions/size.html
    index f034ec6c..dbbde44d 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/size.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/size.html
    @@ -27,7 +27,7 @@
     size
     
     
    - + Description

    @@ -35,7 +35,7 @@ that evaluates the number of elements in the sequence.

    - + Synopsis
    template <typename Sequence>
    @@ -43,7 +43,7 @@
     size(Sequence const& seq);
     
    - + Parameters
    @@ -89,7 +89,7 @@
    - + Expression Semantics
    @@ -103,14 +103,14 @@ in the sequence.

    - + Header
    #include <boost/fusion/sequence/intrinsic/size.hpp>
     #include <boost/fusion/include/size.hpp>
     
    - + Example
    vector<int, int, int> v(1, 2, 3);
    diff --git a/doc/html/fusion/sequence/intrinsic/functions/swap.html b/doc/html/fusion/sequence/intrinsic/functions/swap.html
    index 442b0689..38773e19 100644
    --- a/doc/html/fusion/sequence/intrinsic/functions/swap.html
    +++ b/doc/html/fusion/sequence/intrinsic/functions/swap.html
    @@ -27,21 +27,21 @@
     swap
     
     
    - + Description

    Performs an element by element swap of the elements in 2 sequences.

    - + Synopsis
    template<typename Seq1, typename Seq2>
     void swap(Seq1& seq1, Seq2& seq2);
     
    - + Parameters
    @@ -87,7 +87,7 @@
    - + Expression Semantics
    @@ -106,7 +106,7 @@ /sequence/intrinsic/swap.hpp>

    - + Example
    vector<int, std::string> v1(1, "hello"), v2(2, "world");
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html
    index da795b41..90d2ec47 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at.html
    @@ -27,14 +27,14 @@
     at
     
     
    - + Description

    - Returns the result type of at[6]. + Returns the result type of at[6].

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.29. Parameters

    +

    Table 1.29. Parameters

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

    - + Expression Semantics
    @@ -125,14 +125,14 @@ using at to access the Nth element of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/at.hpp>
     #include <boost/fusion/include/at.hpp>
     
    - + Example
    typedef vector<int,float,char> vec;
    @@ -140,7 +140,7 @@
     


    -

    [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 to diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html index b1ed0a4a..33c12afe 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html @@ -27,14 +27,14 @@ at_c

    - + Description

    - Returns the result type of at_c[7]. + Returns the result type of at_c[7].

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.30. Parameters

    +

    Table 1.30. Parameters

    @@ -110,7 +110,7 @@

    - + Expression Semantics
    @@ -124,14 +124,14 @@ using at_c to access the Mth element of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/at.hpp>
     #include <boost/fusion/include/at.hpp>
     
    - + Example
    typedef vector<int,float,char> vec;
    @@ -139,7 +139,7 @@
     


    -

    [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 ea072854..8dc78609 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html @@ -27,14 +27,14 @@ at_key

    - + Description

    - Returns the result type of at_key[8]. + Returns the result type of at_key[8].

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.34. Parameters

    +

    Table 1.34. Parameters

    @@ -110,7 +110,7 @@

    - + Expression Semantics
    @@ -126,14 +126,14 @@ Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/at_key.hpp>
     #include <boost/fusion/include/at_key.hpp>
     
    - + Example
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    @@ -141,7 +141,7 @@
     


    -

    [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 want diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html index b52591b8..a6ee7025 100644 --- a/doc/html/fusion/sequence/intrinsic/metafunctions/back.html +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/back.html @@ -27,14 +27,14 @@ back

    - + Description

    Returns the result type of back.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.27. Parameters

    +

    Table 1.27. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -103,14 +103,14 @@ an iterator to the last element in the sequence. Equivalent to result_of::deref<result_of::prior<result_of::end<Seq>::type>::type>::type.

    - + Header
    #include <boost/fusion/sequence/intrinsic/back.hpp>
     #include <boost/fusion/include/back.hpp>
     
    - + Example
    typedef vector<int,char> vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html
    index 980b70ef..8ee31412 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html
    @@ -27,14 +27,14 @@
     begin
     
     
    - + Description

    Returns the result type of begin.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.23. Parameters

    +

    Table 1.23. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -123,14 +123,14 @@ to the first element of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/begin.hpp>
     #include <boost/fusion/include/begin.hpp>
     
    - + Example
    typedef vector<int> vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html
    index 35fd6593..e26ee5f5 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html
    @@ -27,14 +27,14 @@
     empty
     
     
    - + Description

    Returns the result type of empty.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.25. Parameters

    +

    Table 1.25. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -105,14 +105,14 @@ mpl::false_ otherwise.

    - + Header
    #include <boost/fusion/sequence/intrinsic/empty.hpp>
     #include <boost/fusion/include/empty.hpp>
     
    - + Example
    typedef vector<> empty_vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    index e58acebd..522e8875 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/end.html
    @@ -27,14 +27,14 @@
     end
     
     
    - + Description

    Returns the result type of end.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.24. Parameters

    +

    Table 1.24. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -123,14 +123,14 @@ one past the end of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/end.hpp>
     #include <boost/fusion/include/end.hpp>
     
    - + Example
    typedef vector<int> vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html
    index 4022a431..ec5bd923 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/front.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/front.html
    @@ -27,14 +27,14 @@
     front
     
     
    - + Description

    Returns the result type of front.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.26. Parameters

    +

    Table 1.26. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -104,14 +104,14 @@ Equivalent to result_of::deref<result_of::begin<Seq>::type>::type.

    - + Header
    #include <boost/fusion/sequence/intrinsic/front.hpp>
     #include <boost/fusion/include/front.hpp>
     
    - + Example
    typedef vector<int,char> vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html
    index 8fe241a9..d06069e4 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html
    @@ -27,14 +27,14 @@
     has_key
     
     
    - + Description

    Returns the result type of has_key.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.33. Parameters

    +

    Table 1.33. Parameters

    @@ -110,7 +110,7 @@

    - + Expression Semantics
    @@ -127,14 +127,14 @@ mpl::false_ otherwise.

    - + Header
    #include <boost/fusion/sequence/intrinsic/has_key.hpp>
     #include <boost/fusion/include/has_key.hpp>
     
    - + Example
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html
    index e6c36a31..addbf588 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/size.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/size.html
    @@ -27,14 +27,14 @@
     size
     
     
    - + Description

    Returns the result type of size.

    - + Synopsis
    template<typename Seq>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.28. Parameters

    +

    Table 1.28. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -104,14 +104,14 @@ in Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/size.hpp>
     #include <boost/fusion/include/size.hpp>
     
    - + Example
    typedef vector<int,float,char> vec;
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html
    index 89b7125e..a748d8a5 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html
    @@ -27,14 +27,14 @@
     swap
     
     
    - + Description

    Returns the return type of swap.

    - + Synopsis
    template<typename Seq1, typename Seq2>
    @@ -44,7 +44,7 @@
     };
     
    -

    Table 1.36. Parameters

    +

    Table 1.36. Parameters

    @@ -89,7 +89,7 @@

    - + Expression Semantics
    @@ -102,7 +102,7 @@ Semantics: Always returns void.

    - + Header
    #include <boost/fusion/sequence/intrinsic/swap.hpp>
    diff --git a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html
    index 3da1cef5..78f41976 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html
    @@ -27,14 +27,14 @@
     value_at
     
     
    - + Description

    Returns the actual type at a given index from the Sequence.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.31. Parameters

    +

    Table 1.31. Parameters

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

    - + Expression Semantics
    @@ -125,14 +125,14 @@ the Nth element of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/value_at.hpp>
     #include <boost/fusion/include/value_at.hpp>
     
    - + Example
    typedef vector<int,float,char> vec;
    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 1878e1eb..599f59f8 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html
    @@ -27,14 +27,14 @@
     value_at_c
     
     
    - + Description

    Returns the actual type at a given index from the Sequence.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.32. Parameters

    +

    Table 1.32. Parameters

    @@ -110,7 +110,7 @@

    - + Expression Semantics
    @@ -124,14 +124,14 @@ the Mth element of Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/value_at.hpp>
     #include <boost/fusion/include/value_at.hpp>
     
    - + Example
    typedef vector<int,float,char> vec;
    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 4ccdf18f..0432f94a 100644
    --- a/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html
    +++ b/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html
    @@ -27,14 +27,14 @@
     value_at_key
     
     
    - + Description

    Returns the actual element type associated with a Key from the Sequence.

    - + Synopsis
    template<
    @@ -46,7 +46,7 @@
     };
     
    -

    Table 1.35. Parameters

    +

    Table 1.35. Parameters

    @@ -110,7 +110,7 @@

    - + Expression Semantics
    @@ -125,14 +125,14 @@ in Seq.

    - + Header
    #include <boost/fusion/sequence/intrinsic/value_at_key.hpp>
     #include <boost/fusion/include/value_at_key.hpp>
     
    - + Example
    typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap;
    diff --git a/doc/html/fusion/sequence/operator/comparison.html b/doc/html/fusion/sequence/operator/comparison.html
    index 8b499d6f..eae77dd2 100644
    --- a/doc/html/fusion/sequence/operator/comparison.html
    +++ b/doc/html/fusion/sequence/operator/comparison.html
    @@ -49,7 +49,7 @@
               only until the result is clear.
             

    - + Header
    #include <boost/fusion/sequence/comparison.hpp>
    diff --git a/doc/html/fusion/sequence/operator/comparison/equal.html b/doc/html/fusion/sequence/operator/comparison/equal.html
    index 7122c8bd..28dffa8c 100644
    --- a/doc/html/fusion/sequence/operator/comparison/equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/equal.html
    @@ -27,14 +27,14 @@
     equal
     
     
    - + Description

    Compare two sequences for equality.

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -42,7 +42,7 @@
     operator==(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -88,7 +88,7 @@
    - + Expression Semantics
    @@ -123,14 +123,14 @@ true.

    - + Header
    #include <boost/fusion/sequence/comparison/equal_to.hpp>
     #include <boost/fusion/include/equal_to.hpp>
     
    - + Example
    vector<int, char> v1(5, 'a');
    diff --git a/doc/html/fusion/sequence/operator/comparison/greater_than.html b/doc/html/fusion/sequence/operator/comparison/greater_than.html
    index cddb7b50..f2d07d4d 100644
    --- a/doc/html/fusion/sequence/operator/comparison/greater_than.html
    +++ b/doc/html/fusion/sequence/operator/comparison/greater_than.html
    @@ -31,7 +31,7 @@
                 Lexicographically compare two sequences.
               

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -39,7 +39,7 @@
     operator>(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -85,7 +85,7 @@
    - + Expression Semantics
    @@ -112,14 +112,14 @@ Semantics: Returns b < a.

    - + Header
    #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - + Example
    vector<int, float> v1(4, 3.3f);
    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 013e0e72..1c3c753e 100644
    --- a/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html
    @@ -31,7 +31,7 @@
                 Lexicographically compare two sequences.
               

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -39,7 +39,7 @@
     operator>=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -85,7 +85,7 @@
    - + Expression Semantics
    @@ -112,14 +112,14 @@ Semantics: Returns !(a < b).

    - + Header
    #include <boost/fusion/sequence/comparison/greater_equal.hpp>
     #include <boost/fusion/include/greater_equal.hpp>
     
    - + Example
    vector<int, float> v1(4, 3.3f);
    diff --git a/doc/html/fusion/sequence/operator/comparison/less_than.html b/doc/html/fusion/sequence/operator/comparison/less_than.html
    index 3a0c83ca..656ccdb9 100644
    --- a/doc/html/fusion/sequence/operator/comparison/less_than.html
    +++ b/doc/html/fusion/sequence/operator/comparison/less_than.html
    @@ -31,7 +31,7 @@
                 Lexicographically compare two sequences.
               

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -39,7 +39,7 @@
     operator<(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -85,7 +85,7 @@
    - + Expression Semantics
    @@ -114,14 +114,14 @@ and b.

    - + Header
    #include <boost/fusion/sequence/comparison/less.hpp>
     #include <boost/fusion/include/less.hpp>
     
    - + Example
    vector<int, float> v1(4, 3.3f);
    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 f1d3fbb2..36ba19cb 100644
    --- a/doc/html/fusion/sequence/operator/comparison/less_than_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/less_than_equal.html
    @@ -31,7 +31,7 @@
                 Lexicographically compare two sequences.
               

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -39,7 +39,7 @@
     operator<=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -85,7 +85,7 @@
    - + Expression Semantics
    @@ -112,14 +112,14 @@ Semantics: Returns !(b < a).

    - + Header
    #include <boost/fusion/sequence/comparison/less_equal.hpp>
     #include <boost/fusion/include/less_equal.hpp>
     
    - + Example
    vector<int, float> v1(4, 3.3f);
    diff --git a/doc/html/fusion/sequence/operator/comparison/not_equal.html b/doc/html/fusion/sequence/operator/comparison/not_equal.html
    index 46deebd6..5a339c77 100644
    --- a/doc/html/fusion/sequence/operator/comparison/not_equal.html
    +++ b/doc/html/fusion/sequence/operator/comparison/not_equal.html
    @@ -31,7 +31,7 @@
                 Compare two sequences for inequality.
               

    - + Synopsis
    template <typename Seq1, typename Seq2>
    @@ -39,7 +39,7 @@
     operator!=(Seq1 const& a, Seq2 const& b);
     
    - + Parameters
    @@ -85,7 +85,7 @@
    - + Expression Semantics
    @@ -115,14 +115,14 @@ Returns !(a == b).

    - + Header
    #include <boost/fusion/sequence/comparison/not_equal_to.hpp>
     #include <boost/fusion/include/not_equal_to.hpp>
     
    - + Example
    vector<int, char> v3(5, 'b');
    diff --git a/doc/html/fusion/sequence/operator/i_o.html b/doc/html/fusion/sequence/operator/i_o.html
    index 85b541ed..e73ba947 100644
    --- a/doc/html/fusion/sequence/operator/i_o.html
    +++ b/doc/html/fusion/sequence/operator/i_o.html
    @@ -113,7 +113,7 @@
               representation may not be unambiguously parseable.
             

    - + Header
    #include <boost/fusion/sequence/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 423aa69d..5a8cc2c1 100644
    --- a/doc/html/fusion/sequence/operator/i_o/in.html
    +++ b/doc/html/fusion/sequence/operator/i_o/in.html
    @@ -27,7 +27,7 @@
     in
     
     
    - + Description

    @@ -35,7 +35,7 @@ stream.

    - + Synopsis
    template <typename IStream, typename Sequence>
    @@ -43,7 +43,7 @@
     operator>>(IStream& is, Sequence& seq);
     
    - + Parameters
    @@ -107,7 +107,7 @@
    - + Expression Semantics
    @@ -122,14 +122,14 @@ e.

    - + Header
    #include <boost/fusion/sequence/io/in.hpp>
     #include <boost/fusion/include/in.hpp>
     
    - + Example
    vector<int, std::string, char> v;
    diff --git a/doc/html/fusion/sequence/operator/i_o/out.html b/doc/html/fusion/sequence/operator/i_o/out.html
    index cdc07453..fdf1ab71 100644
    --- a/doc/html/fusion/sequence/operator/i_o/out.html
    +++ b/doc/html/fusion/sequence/operator/i_o/out.html
    @@ -27,7 +27,7 @@
     out
     
     
    - + Description

    @@ -35,7 +35,7 @@ stream.

    - + Synopsis
    template <typename OStream, typename Sequence>
    @@ -43,7 +43,7 @@
     operator<<(OStream& os, Sequence& seq);
     
    - + Parameters
    @@ -107,7 +107,7 @@
    - + Expression Semantics
    @@ -122,14 +122,14 @@ e.

    - + Header
    #include <boost/fusion/sequence/io/out.hpp>
     #include <boost/fusion/include/out.hpp>
     
    - + Example
    std::cout << make_vector(123, "Hello", 'x') << std::endl;
    diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html
    index 072df802..798bff26 100644
    --- a/doc/html/fusion/support/category_of.html
    +++ b/doc/html/fusion/support/category_of.html
    @@ -27,7 +27,7 @@
     category_of
     
     
    - + Description

    @@ -37,7 +37,7 @@ Sequence Concepts).

    - + Synopsis
    namespace traits
    @@ -50,7 +50,7 @@
     }
     
    - + Parameters
    @@ -95,7 +95,7 @@
    - + Expression Semantics
    @@ -137,14 +137,14 @@ of a particular Sequence or Iterator.

    - + Header
    #include <boost/fusion/support/category_of.hpp>
     #include <boost/fusion/include/category_of.hpp>
     
    - + Example
    using boost::is_base_of;
    diff --git a/doc/html/fusion/support/deduce.html b/doc/html/fusion/support/deduce.html
    index b383ee1c..86c4f87a 100644
    --- a/doc/html/fusion/support/deduce.html
    +++ b/doc/html/fusion/support/deduce.html
    @@ -27,7 +27,7 @@
     deduce
     
     
    - + Description

    @@ -40,14 +40,14 @@ Reference wrappers are removed (see boost::ref).

    - + Header
    #include <boost/fusion/support/deduce.hpp>
     #include <boost/fusion/include/deduce.hpp>
     
    - + Synopsis
    namespace traits
    @@ -60,7 +60,7 @@
     }
     
    - + Example
    template <typename T>
    @@ -80,7 +80,7 @@
     }
     
    - + See also
    • diff --git a/doc/html/fusion/support/deduce_sequence.html b/doc/html/fusion/support/deduce_sequence.html index 07f95781..25db3661 100644 --- a/doc/html/fusion/support/deduce_sequence.html +++ b/doc/html/fusion/support/deduce_sequence.html @@ -27,7 +27,7 @@ deduce_sequence
    - + Description

    @@ -38,14 +38,14 @@ original type as its argument.

    - + Header
    #include <boost/fusion/support/deduce_sequence.hpp>
     #include <boost/fusion/include/deduce_sequence.hpp>
     
    - + Synopsis
    namespace traits
    @@ -58,7 +58,7 @@
     }
     
    - + Example
    template <class Seq>
    @@ -80,7 +80,7 @@
     }
     
    - + See also
    • diff --git a/doc/html/fusion/support/is_sequence.html b/doc/html/fusion/support/is_sequence.html index 9fed8837..5b561b1c 100644 --- a/doc/html/fusion/support/is_sequence.html +++ b/doc/html/fusion/support/is_sequence.html @@ -27,7 +27,7 @@ is_sequence
    - + Description

    @@ -38,7 +38,7 @@ conforming sequences.

    - + Synopsis
    namespace traits
    @@ -51,7 +51,7 @@
     }
     
    - + Parameters
    @@ -96,7 +96,7 @@
    - + Expression Semantics
    @@ -113,14 +113,14 @@ otherwise.

    - + Header
    #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> > ));
    diff --git a/doc/html/fusion/support/is_view.html b/doc/html/fusion/support/is_view.html
    index 43a617e2..ee041332 100644
    --- a/doc/html/fusion/support/is_view.html
    +++ b/doc/html/fusion/support/is_view.html
    @@ -27,7 +27,7 @@
     is_view
     
     
    - + Description

    @@ -41,7 +41,7 @@ specialized to accomodate clients providing Fusion conforming views.

    - + Synopsis
    namespace traits
    @@ -54,7 +54,7 @@
     }
     
    - + Parameters
    @@ -99,7 +99,7 @@
    - + Expression Semantics
    typedef traits::is_view<T>::type c;
    @@ -115,14 +115,14 @@
             otherwise.
           

    - + Header
    #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> > ));
    diff --git a/doc/html/fusion/support/pair.html b/doc/html/fusion/support/pair.html
    index 4d833011..358d8702 100644
    --- a/doc/html/fusion/support/pair.html
    +++ b/doc/html/fusion/support/pair.html
    @@ -27,7 +27,7 @@
     pair
     
     
    - + Description

    @@ -37,7 +37,7 @@ the first type does not have data. It is used as elements in maps, for example.

    - + Synopsis
    template <typename First, typename Second>
    @@ -60,7 +60,7 @@
     make_pair(Second const &);
     
    - + Template parameters
    @@ -137,7 +137,7 @@
    - + Expression Semantics
    @@ -317,14 +317,14 @@
    - + Header
    #include <boost/fusion/support/pair.hpp>
     #include <boost/fusion/include/pair.hpp>
     
    - + Example
    pair<int, char> p('X');
    diff --git a/doc/html/fusion/support/tag_of.html b/doc/html/fusion/support/tag_of.html
    index cf9f336b..8d813078 100644
    --- a/doc/html/fusion/support/tag_of.html
    +++ b/doc/html/fusion/support/tag_of.html
    @@ -27,7 +27,7 @@
     tag_of
     
     
    - + Description

    @@ -41,7 +41,7 @@ conforming sequences.

    - + Synopsis
    namespace traits
    @@ -54,7 +54,7 @@
     }
     
    - + Parameters
    @@ -99,7 +99,7 @@
    - + Expression Semantics
    typedef traits::tag_of<T>::type tag;
    @@ -112,14 +112,14 @@
             with T.
           

    - + Header
    #include <boost/fusion/support/tag_of.hpp>
     #include <boost/fusion/include/tag_of.hpp>
     
    - + Example
    typedef traits::tag_of<list<> >::type tag1;
    diff --git a/doc/html/fusion/tuple/class_template_tuple.html b/doc/html/fusion/tuple/class_template_tuple.html
    index 5e0dd624..c2221257 100644
    --- a/doc/html/fusion/tuple/class_template_tuple.html
    +++ b/doc/html/fusion/tuple/class_template_tuple.html
    @@ -48,7 +48,7 @@
             in future releases of fusion.
           

    - + Synopsis
    template<
    diff --git a/doc/html/fusion/tuple/class_template_tuple/construction.html b/doc/html/fusion/tuple/class_template_tuple/construction.html
    index 09a05711..64d398fc 100644
    --- a/doc/html/fusion/tuple/class_template_tuple/construction.html
    +++ b/doc/html/fusion/tuple/class_template_tuple/construction.html
    @@ -27,7 +27,7 @@
     Construction
     
     
    - + Description

    @@ -38,7 +38,7 @@ in this section.

    - + Specification
    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 2baaf925..82f2781f 100644 --- a/doc/html/fusion/tuple/class_template_tuple/element_access.html +++ b/doc/html/fusion/tuple/class_template_tuple/element_access.html @@ -28,7 +28,7 @@ access
    - + Description

    @@ -37,7 +37,7 @@ function to provide access to it's elements by zero based numeric index.

    - + Specification
    template<int I, 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 42b1c566..80a45250 100644
    --- a/doc/html/fusion/tuple/class_template_tuple/relational_operators.html
    +++ b/doc/html/fusion/tuple/class_template_tuple/relational_operators.html
    @@ -28,7 +28,7 @@
             operators
     
     
    - + Description

    @@ -36,7 +36,7 @@ Tuple provides the standard boolean relational operators.

    - + Specification
    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 94afad73..5b28eb95 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 @@ -28,7 +28,7 @@ creation functions
    - + Description

    @@ -38,7 +38,7 @@ functions are described in this section.

    - + Specification
    template<typename T1, typename T2, ..., typename 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 1dc2d0ef..c272a47c 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
    @@ -28,7 +28,7 @@
             helper classes
     
     
    - + Description

    @@ -37,7 +37,7 @@ tuple size, and the element types.

    - + Specification
    tuple_size<T>::value
    diff --git a/doc/html/fusion/tuple/pairs.html b/doc/html/fusion/tuple/pairs.html
    index fd16da9e..e60c1ae3 100644
    --- a/doc/html/fusion/tuple/pairs.html
    +++ b/doc/html/fusion/tuple/pairs.html
    @@ -27,7 +27,7 @@
     Pairs
     
     
    - + Description

    @@ -36,7 +36,7 @@ as if it were a 2 element tuple.

    - + Specification
    tuple_size<std::pair<T1, T2> >::value
    diff --git a/doc/html/fusion/view.html b/doc/html/fusion/view.html
    index 0b595059..9e1e77f9 100644
    --- a/doc/html/fusion/view.html
    +++ b/doc/html/fusion/view.html
    @@ -47,7 +47,7 @@
           to copy and be passed around by value.
         

    - + Header

    #include <boost/fusion/view.hpp>
    diff --git a/doc/html/fusion/view/filter_view.html b/doc/html/fusion/view/filter_view.html
    index 2abdc828..7315a836 100644
    --- a/doc/html/fusion/view/filter_view.html
    +++ b/doc/html/fusion/view/filter_view.html
    @@ -27,7 +27,7 @@
     filter_view
     
     
    - + Description

    @@ -38,21 +38,21 @@ only those elements for which its predicate evaluates to mpl::true_.

    - + Header
    #include <boost/fusion/view/filter_view.hpp>
     #include <boost/fusion/include/filter_view.hpp>
     
    - + Synopsis
    template <typename Sequence, typename Pred>
     struct filter_view;
     
    - + Template parameters
    @@ -111,7 +111,7 @@
    - + Model of
      @@ -144,7 +144,7 @@
    - + Expression Semantics

    @@ -214,7 +214,7 @@

    - + Example
    using boost::mpl::_;
    diff --git a/doc/html/fusion/view/iterator_range.html b/doc/html/fusion/view/iterator_range.html
    index b375b54a..76077a9e 100644
    --- a/doc/html/fusion/view/iterator_range.html
    +++ b/doc/html/fusion/view/iterator_range.html
    @@ -27,7 +27,7 @@
     iterator_range
     
     
    - + Description

    @@ -35,21 +35,21 @@ sub-range of its underlying sequence delimited by a pair of iterators.

    - + Header
    #include <boost/fusion/view/iterator_range.hpp>
     #include <boost/fusion/include/iterator_range.hpp>
     
    - + Synopsis
    template <typename First, typename Last>
     struct iterator_range;
     
    - + Template parameters
    @@ -107,7 +107,7 @@
    - + Model of
      @@ -149,7 +149,7 @@
    - + Expression Semantics
    @@ -223,7 +223,7 @@
    - + Example
    char const* s = "Ruby";
    diff --git a/doc/html/fusion/view/joint_view.html b/doc/html/fusion/view/joint_view.html
    index 0d37dc57..1529a87a 100644
    --- a/doc/html/fusion/view/joint_view.html
    +++ b/doc/html/fusion/view/joint_view.html
    @@ -27,7 +27,7 @@
     joint_view
     
     
    - + Description

    @@ -35,21 +35,21 @@ which is a concatenation of two sequences.

    - + Header
    #include <boost/fusion/view/joint_view.hpp>
     #include <boost/fusion/include/joint_view.hpp>
     
    - + Synopsis
    template <typename Sequence1, typename Sequence2>
     struct joint_view;
     
    - + Template parameters
    @@ -109,7 +109,7 @@
    - + Model of
      @@ -146,7 +146,7 @@
    - + Expression Semantics

    @@ -218,7 +218,7 @@

    - + Example
    vector<int, char> v1(3, 'x');
    diff --git a/doc/html/fusion/view/nview.html b/doc/html/fusion/view/nview.html
    index c15184bd..be423805 100644
    --- a/doc/html/fusion/view/nview.html
    +++ b/doc/html/fusion/view/nview.html
    @@ -27,7 +27,7 @@
     nview
     
     
    - + Description

    @@ -38,14 +38,14 @@ and a list of indicies specifying the elements to iterate over.

    - + Header
    #include <boost/fusion/view/nview.hpp>
     #include <boost/fusion/include/nview.hpp>
     
    - + Synopsis
    template <typename Sequence, typename Indicies>
    @@ -56,7 +56,7 @@
     as_nview(Sequence& s);
     
    - + Template parameters
    @@ -133,7 +133,7 @@
    - + Model of
    • @@ -159,7 +159,7 @@
    - + Expression Semantics

    @@ -235,7 +235,7 @@ of references to the elements of the original Fusion Sequence

    - + Example
    typedef vector<int, char, double> vec;
    diff --git a/doc/html/fusion/view/repetitive_view.html b/doc/html/fusion/view/repetitive_view.html
    index 804e431c..b2c23e75 100644
    --- a/doc/html/fusion/view/repetitive_view.html
    +++ b/doc/html/fusion/view/repetitive_view.html
    @@ -27,7 +27,7 @@
     repetitive_view
     
     
    - + Description

    @@ -40,21 +40,21 @@ is not.

    - + Header
    #include <boost/fusion/view/repetitive_view.hpp>
     #include <boost/fusion/include/repetitive_view.hpp>
     
    - + Synopsis
    template <typename Sequence>
     struct repetitive_view;
     
    - + Template parameters
    @@ -115,7 +115,7 @@
    - + Expression Semantics
    @@ -228,7 +228,7 @@
    - + Result Type Expressions
    @@ -253,7 +253,7 @@
    - + Example
    typedef vector<int, char, double> vec1;
    diff --git a/doc/html/fusion/view/reverse_view.html b/doc/html/fusion/view/reverse_view.html
    index 5665b2ca..359f86e7 100644
    --- a/doc/html/fusion/view/reverse_view.html
    +++ b/doc/html/fusion/view/reverse_view.html
    @@ -32,21 +32,21 @@
             element will be its first.
           

    - + Header
    #include <boost/fusion/view/reverse_view.hpp>
     #include <boost/fusion/include/reverse_view.hpp>
     
    - + Synopsis
    template <typename Sequence>
     struct reverse_view;
     
    - + Template parameters
    @@ -89,7 +89,7 @@
    - + Model of
      @@ -127,7 +127,7 @@
    - + Expression Semantics
    @@ -199,7 +199,7 @@
    - + Example
    typedef vector<int, short, double> vector_type;
    diff --git a/doc/html/fusion/view/single_view.html b/doc/html/fusion/view/single_view.html
    index 91d5349b..61bcbeb2 100644
    --- a/doc/html/fusion/view/single_view.html
    +++ b/doc/html/fusion/view/single_view.html
    @@ -31,21 +31,21 @@
             a value as a single element sequence.
           

    - + Header
    #include <boost/fusion/view/single_view.hpp>
     #include <boost/fusion/include/single_view.hpp>
     
    - + Synopsis
    template <typename T>
     struct single_view;
     
    - + Template parameters
    @@ -87,7 +87,7 @@
    - + Model of
    • @@ -111,7 +111,7 @@
    - + Expression Semantics

    @@ -182,7 +182,7 @@

    - + Example
    single_view<int> view(3);
    diff --git a/doc/html/fusion/view/transform_view.html b/doc/html/fusion/view/transform_view.html
    index 2f19872d..6537f02d 100644
    --- a/doc/html/fusion/view/transform_view.html
    +++ b/doc/html/fusion/view/transform_view.html
    @@ -36,14 +36,14 @@
             Traversal Concept) of its underlying sequence or sequences.
           

    - + Header
    #include <boost/fusion/view/transform_view.hpp>
     #include <boost/fusion/include/transform_view.hpp>
     
    - + Synopsis

    @@ -59,7 +59,7 @@ struct transform_view;

    - + Template parameters
    @@ -169,7 +169,7 @@
    - + Model of
    • @@ -224,7 +224,7 @@
    - + Expression Semantics
    @@ -319,7 +319,7 @@
    - + Example
    struct square
    diff --git a/doc/html/fusion/view/zip_view.html b/doc/html/fusion/view/zip_view.html
    index c66bfd25..2bba292c 100644
    --- a/doc/html/fusion/view/zip_view.html
    +++ b/doc/html/fusion/view/zip_view.html
    @@ -27,7 +27,7 @@
     zip_view
     
     
    - + Description

    @@ -38,21 +38,21 @@ to the component _sequence_s.

    - + Header
    #include <boost/fusion/view/zip_view.hpp>
     #include <boost/fusion/include/zip_view.hpp>
     
    - + Synopsis
    template <typename Sequences>
     struct zip_view;
     
    - + Template parameters
    @@ -95,7 +95,7 @@
    - + Model of
    • @@ -124,7 +124,7 @@
    - + Expression Semantics

    @@ -195,7 +195,7 @@

    - + Example
    typedef vector<int,int> vec1;
    diff --git a/doc/html/index.html b/doc/html/index.html
    index f4db3640..9d5b0631 100644
    --- a/doc/html/index.html
    +++ b/doc/html/index.html
    @@ -34,7 +34,7 @@
     
    - +

    Last revised: August 27, 2010 at 20:23:40 GMT

    Last revised: October 07, 2010 at 20:04:30 GMT


    diff --git a/doc/notes.qbk b/doc/notes.qbk index e26eee6f..f8255733 100644 --- a/doc/notes.qbk +++ b/doc/notes.qbk @@ -1,5 +1,6 @@ [/============================================================================== Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger + Copyright (C) 2010 Christopher Schmidt Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -149,5 +150,79 @@ For example: See __boost_ref__ for details. +[heading adt_attribute_proxy] + +To adapt arbitrary data types that do not allow direct access to their members, +but allow indirect access via expressions (such as invocations of get- and +set-methods), fusion's [^BOOST\_FUSION\_ADAPT\_['xxx]ADT['xxx]]-family (e.g. +__adapt_adt__) may be used. +To bypass the restriction of not having actual lvalues that +represent the elements of the fusion sequence, but rather a sequence of paired +expressions that access the elements, the actual return type of fusion's +intrinsic sequence access functions (__at__, __at_c__, __at_key__, __deref__, +and __deref_data__) is a proxy type, an instance of +`adt_attribute_proxy`, that encapsulates these expressions. + +`adt_attribute_proxy` is defined in the namespace `boost::fusion::extension` and +has three template arguments: + + namespace boost { namespace fusion { namespace extension + { + template< + typename Type + , int Index + , bool Const + > + struct adt_attribute_proxy; + }}} + +When adapting a class type, `adt_attribute_proxy` is specialized for every +element of the adapted sequence, with `Type` being the class type that is +adapted, `Index` the 0-based indices of the elements, and `Const` both `true` +and `false`. The return type of fusion's intrinsic sequence access functions +for the ['N]th element of an adapted class type `type_name` is +[^adt_attribute_proxy], with [^['Const]] being `true` +for constant instances of `type_name` and `false` for non-constant ones. + +[variablelist Notation + [[`type_name`] + [The type to be adapted, with M attributes]] + [[`inst`] + [Object of type `type_name`]] + [[`const_inst`] + [Object of type `type_name const`]] + [[[^(attribute_type['N], attribute_const_type['N], get_expr['N], set_expr['N])]] + [Attribute descriptor of the ['N]th attribute of `type_name` as passed to the adaption macro, 0\u2264['N]] with ['N] being an integral constant, 0\u2264['N]] with ['N] being an integral constant, 0\u2264['N]::type>::type + boost::remove_const::type>::type #define BOOST_FUSION_ADAPT_ADT_C_BASE( \ TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE) \ @@ -38,11 +38,11 @@ , I \ > \ { \ - template \ + template \ static void \ boost_fusion_adapt_adt_impl_set( \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj, \ - Arg const& val) \ + Val const& val) \ { \ BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 3, ATTRIBUTE); \ } \ @@ -75,8 +75,8 @@ \ explicit \ adt_attribute_proxy( \ - BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const*const o) \ - : obj(o) \ + BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& o) \ + : obj(&o) \ {} \ \ type get() const \ @@ -108,13 +108,13 @@ \ explicit \ adt_attribute_proxy( \ - BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)*const o) \ - : obj(o) \ + BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& o) \ + : obj(&o) \ {} \ \ - template \ + template \ adt_attribute_proxy& \ - operator=(Arg const& val) \ + operator=(Val const& val) \ { \ access::adt_attribute_access< \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \ @@ -173,7 +173,7 @@ static type \ call(Seq& obj) \ { \ - return type(&obj); \ + return type(obj); \ } \ }; \ }; diff --git a/test/Jamfile b/test/Jamfile index 302d65b7..4827bbaa 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -124,6 +124,7 @@ import testing ; [ run sequence/adapt_struct.cpp : : : : ] [ run sequence/adapt_tpl_adt.cpp : : : : ] [ run sequence/adapt_tpl_struct.cpp : : : : ] + [ run sequence/adt_attribute_proxy.cpp : : : : ] [ run sequence/define_struct.cpp : : : : ] [ run sequence/define_assoc_struct.cpp : : : : ] [ run sequence/define_tpl_struct.cpp : : : : ] diff --git a/test/sequence/adapt_tpl_adt.cpp b/test/sequence/adapt_tpl_adt.cpp index e6981ddf..babb3370 100644 --- a/test/sequence/adapt_tpl_adt.cpp +++ b/test/sequence/adapt_tpl_adt.cpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2001-2009 Joel de Guzman + Copyright (c) 2010 Christopher Schmidt 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) diff --git a/test/sequence/adapt_tpl_struct.cpp b/test/sequence/adapt_tpl_struct.cpp index 0218fbae..7db3bd8a 100644 --- a/test/sequence/adapt_tpl_struct.cpp +++ b/test/sequence/adapt_tpl_struct.cpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2010 Christopher Schmidt 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) diff --git a/test/sequence/adt_attribute_proxy.cpp b/test/sequence/adt_attribute_proxy.cpp new file mode 100644 index 00000000..4535bb92 --- /dev/null +++ b/test/sequence/adt_attribute_proxy.cpp @@ -0,0 +1,188 @@ +/*============================================================================= + Copyright (c) 2010 Christopher Schmidt + + 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 +#include +#include +#include +#include +#include +#include + +namespace fusion=boost::fusion; + +template +struct employee +{ +private: + Name name; + Age age; + +public: + template + void + set_name(OtherName const& n) + { + name=n; + } + + template + void + set_age(OtherAge const& a) + { + age=a; + } + + Name& get_name() + { + return name; + } + + Name const& get_name()const + { + return name; + } + + Age& get_age() + { + return age; + } + + Age const& get_age()const + { + return age; + } +}; + +namespace keys +{ + struct name; + struct age; +} + +BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( + (Name)(Age), + (employee) (Name)(Age), + (Name&, Name const&, obj.get_name(), obj.template set_name(val), keys::name) + (Age&, Age const&, obj.get_age(), obj.template set_age(val), keys::age)) + +int main() +{ + typedef employee et; + typedef et const etc; + et e; + etc& ec=e; + + fusion::at_key(e)="marshall mathers"; + fusion::at_key(e)=37; + + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::value_at_key::type, + std::string + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::value_at_key::type, + fusion::result_of::value_at_c::type + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::value_at_key::type, + int + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::value_at_key::type, + fusion::result_of::value_at_c::type + >)); + + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::extension::adt_attribute_proxy + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::extension::adt_attribute_proxy + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::result_of::front::type + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::result_of::back::type + >)); + + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::extension::adt_attribute_proxy + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::extension::adt_attribute_proxy + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::result_of::front::type + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::result_of::at_key::type, + fusion::result_of::back::type + >)); + + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::extension::adt_attribute_proxy::type, + std::string& + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::extension::adt_attribute_proxy::type, + std::string const& + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::extension::adt_attribute_proxy::type, + int& + >)); + BOOST_MPL_ASSERT(( + boost::is_same< + fusion::extension::adt_attribute_proxy::type, + int const& + >)); + + { + std::string& name=fusion::at_key(e); + int& age=fusion::at_key(e); + BOOST_TEST(name=="marshall mathers"); + BOOST_TEST(age==37); + BOOST_TEST(fusion::at_key(e).get()=="marshall mathers"); + BOOST_TEST(fusion::at_key(e).get()==37); + BOOST_TEST(fusion::front(e).get()=="marshall mathers"); + BOOST_TEST(fusion::back(e).get()==37); + } + + { + std::string const& name=fusion::at_key(ec); + int const& age=fusion::at_key(ec); + BOOST_TEST(name=="marshall mathers"); + BOOST_TEST(age==37); + BOOST_TEST(fusion::at_key(ec).get()=="marshall mathers"); + BOOST_TEST(fusion::at_key(ec).get()==37); + BOOST_TEST(fusion::front(ec).get()=="marshall mathers"); + BOOST_TEST(fusion::back(ec).get()==37); + } +}