From 2522e62409e2f0c62cd471115b5ca1bc5adc8c39 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Sun, 25 Feb 2007 21:12:10 +0000 Subject: [PATCH] reduces chunk depth (Boost inspection complaints about path length) [SVN r37068] --- doc/html/fusion/functional/adapters.html | 6 +- .../fusion/functional/adapters/fused.html | 4 +- .../adapters/fused_function_object.html | 8 +- .../functional/adapters/fused_procedure.html | 8 +- .../functional/adapters/unfused_generic.html | 6 +- .../adapters/unfused_lvalue_args.html | 2 +- .../functional/adapters/unfused_typed.html | 2 +- doc/html/fusion/functional/generation.html | 16 - .../functional/generation/functions.html | 648 +++++++++++++++++- .../functional/generation/metafunctions.html | 248 ++++++- doc/html/fusion/functional/invocation.html | 10 - .../functional/invocation/functions.html | 409 ++++++++++- .../functional/invocation/metafunctions.html | 137 +++- 13 files changed, 1428 insertions(+), 76 deletions(-) diff --git a/doc/html/fusion/functional/adapters.html b/doc/html/fusion/functional/adapters.html index 9a1cd030..d7c1557e 100644 --- a/doc/html/fusion/functional/adapters.html +++ b/doc/html/fusion/functional/adapters.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
-PrevUpHomeNext +PrevUpHomeNext

@@ -44,7 +44,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/functional/adapters/fused.html b/doc/html/fusion/functional/adapters/fused.html index 3da74549..49de6643 100644 --- a/doc/html/fusion/functional/adapters/fused.html +++ b/doc/html/fusion/functional/adapters/fused.html @@ -178,7 +178,7 @@

 fused< std::plus<long> > f;
-assert(f(make_vector(1,2l)) == 3l);
+assert(f(make_vector(1,2l)) == 3l);
 
@@ -187,7 +187,7 @@
diff --git a/doc/html/fusion/functional/adapters/fused_function_object.html b/doc/html/fusion/functional/adapters/fused_function_object.html index 695bfc7b..7cfafe98 100644 --- a/doc/html/fusion/functional/adapters/fused_function_object.html +++ b/doc/html/fusion/functional/adapters/fused_function_object.html @@ -166,11 +166,11 @@
 template<class SeqOfSeqs, class Func>
-typename result_of::transform< zip_view<SeqOfSeqs> const,
+typename result_of::transform< zip_view<SeqOfSeqs> const,
     fused_function_object<Func const &> >::type
 n_ary_transform(SeqOfSeqs const & s, Func const & f)
 {
-    return transform(zip_view<SeqOfSeqs>(s), 
+    return transform(zip_view<SeqOfSeqs>(s), 
         fused_function_object<Func const &>(f));
 } 
 
@@ -194,7 +194,7 @@
     vector<int,float> a(2,2.0f);
     vector<int,float> b(1,1.5f);
     vector<int,float> c(1,0.5f);
-    assert(c == n_ary_transform(vector_tie(a,b), sub()));
+    assert(c == n_ary_transform(vector_tie(a,b), sub()));
 }
 
@@ -205,7 +205,7 @@
diff --git a/doc/html/fusion/functional/adapters/fused_procedure.html b/doc/html/fusion/functional/adapters/fused_procedure.html index 409fdb56..1f705a56 100644 --- a/doc/html/fusion/functional/adapters/fused_procedure.html +++ b/doc/html/fusion/functional/adapters/fused_procedure.html @@ -183,7 +183,7 @@ template<class SequenceOfSequences, class Func> void n_ary_for_each(SequenceOfSequences const & s, Func const & f) { - for_each(zip_view<SequenceOfSequences>(s), + for_each(zip_view<SequenceOfSequences>(s), fused_procedure<Func const &>(f)); } @@ -192,8 +192,8 @@ vector<int,float> a(2,2.0f); vector<int,float> b(1,1.5f); using namespace boost::lambda; - n_ary_for_each(vector_tie(a,b), _1 -= _2); - assert(a == make_vector(1,0.5f)); + n_ary_for_each(vector_tie(a,b), _1 -= _2); + assert(a == make_vector(1,0.5f)); }
@@ -204,7 +204,7 @@
diff --git a/doc/html/fusion/functional/adapters/unfused_generic.html b/doc/html/fusion/functional/adapters/unfused_generic.html index ac13cfa1..9b6a5590 100644 --- a/doc/html/fusion/functional/adapters/unfused_generic.html +++ b/doc/html/fusion/functional/adapters/unfused_generic.html @@ -215,14 +215,14 @@ template<classSeq>structresult - :result_of::invoke<Function, - typenameresult_of::push_front<Seq,T>::type> + :result_of::invoke<Function, + typenameresult_of::push_front<Seq,T>::type>{};template<classSeq>typenameresult<Seq>::typeoperator()(Seqconst&s)const{ - returninvoke(fnc_deferred,push_front(s,xxx_bound)); + returninvoke(fnc_deferred,push_front(s,xxx_bound));}}; diff --git a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html index ccdf4f9c..430d96f9 100644 --- a/doc/html/fusion/functional/adapters/unfused_lvalue_args.html +++ b/doc/html/fusion/functional/adapters/unfused_lvalue_args.html @@ -200,7 +200,7 @@ template<classSeq>voidoperator()(Seqconst&s)const{ - for_each(s,++boost::lambda::_1); + for_each(s,++boost::lambda::_1);}}; diff --git a/doc/html/fusion/functional/adapters/unfused_typed.html b/doc/html/fusion/functional/adapters/unfused_typed.html index 77ae9db0..531dbfc1 100644 --- a/doc/html/fusion/functional/adapters/unfused_typed.html +++ b/doc/html/fusion/functional/adapters/unfused_typed.html @@ -250,7 +250,7 @@ template<classSeq>voidoperator()(Seqconst&s)const{ - for_each(zip(tie_dest,s),fused<add_assign>()); + for_each(zip(tie_dest,s),fused<add_assign>());}}; diff --git a/doc/html/fusion/functional/generation.html b/doc/html/fusion/functional/generation.html index 22a71e35..2786aada 100644 --- a/doc/html/fusion/functional/generation.html +++ b/doc/html/fusion/functional/generation.html @@ -27,23 +27,7 @@ Generation
diff --git a/doc/html/fusion/functional/generation/functions.html b/doc/html/fusion/functional/generation/functions.html index 5cd88059..623c9bf1 100644 --- a/doc/html/fusion/functional/generation/functions.html +++ b/doc/html/fusion/functional/generation/functions.html @@ -7,7 +7,7 @@ - +
@@ -20,19 +20,649 @@

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

+ Creates a fused adapter for a given Deferred Callable Object. + The usual element + conversion is applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_fused<F>::type
+make_fused(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Deferred + Callable Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_fused(f);
+
+

+ Return type: A specialization of fused. +

+

+ Semantics: Returns a fused adapter for f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused.hpp>
+
+
+ + Example +
+
+float sub(float a, float b) { return a - b; }
+
+void try_it()
+{
+    vector<int,float> a(2,2.0f);
+    vector<int,float> b(1,1.5f);
+    vector<float,float> c(1.0f,0.5f);
+    assert(c == transform(zip(a,b), make_fused(& sub)));
+    assert(c == transform(zip(a,b), make_fused(std::minus<float>())));
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Creates a fused_procedure adapter for + a given Deferred + Callable Object. The usual element + conversion applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_fused_procedure<F>::type
+make_fused_procedure(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Callable + Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_fused_procedure(f);
+
+

+ Return type: A specialization of fused_procedure. +

+

+ Semantics: Returns a fused_procedure adapter for + f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
+
+
+ + Example +
+
+vector<int,int,int> v(1,2,3);
+using namespace boost::lambda;
+make_fused_procedure(_1 += _2 - _3)(v);
+assert(front(v) == 0);
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Creates a fused_function_object adapter + for a given Deferred + Callable Object. The usual element + conversion is applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_fused_function_object<F>::type
+make_fused_function_object(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Polymorphic + Function Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_fused_function_object(f);
+
+

+ Return type: A specialization of fused_function_object. +

+

+ Semantics: Returns a fused_function_object adapter + for f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
+
+
+ + Example +
+
+struct sub
+{
+    template<typename T, typename _>
+    struct result
+    {
+        typedef T type;
+    };
+
+    template<typename T>
+    T operator()(T lhs, T rhs) const
+    {
+        return lhs - rhs;
+    }
+};
+
+void try_it()
+{
+    vector<int,float> a(2,2.0f);
+    vector<int,float> b(1,1.5f);
+    vector<int,float> c(1,0.5f);
+    assert(c == transform(zip(a,b), make_fused_function_object(sub())));
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Creates a unfused_generic adapter for + a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_unfused_generic<F>::type
+make_unfused_generic(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Polymorphic + Function Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_unfused_generic(f);
+
+

+ Return type: A specialization of unfused_generic. +

+

+ Semantics: Returns a unfused_generic adapter for + f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_generic.hpp>
+
+
+ + Example +
+
+struct bottles_song
+{
+    template<class Seq>
+    struct result
+        : mpl::if_< mpl::less< result_of::size<Seq>, mpl::int_<2> >,
+            boost::blank, mpl::identity<void> >::type
+    { };
+
+    template<class Seq> 
+    void operator()(Seq & s) const
+    {
+        typename result_of::at_c<Seq,0>::type n = at_c<0>(s);
+        typename result_of::at_c<Seq,1>::type what = at_c<1>(s);
+
+        std::cout 
+            << n << " bottles of " << what << " on the wall.\n" 
+            << n << " bottles of " << what << "!\n"
+            << "Take one down - pass it around.\n";
+
+        n -= 1; // glug glug...
+
+        std::cout
+            << n << " bottles of " << what << " on the wall.\n" 
+            << std::endl;
+    }
+};
+
+void try_it()
+{
+    unsigned n_milk = 99;
+    for(int i = 0; i < 3; ++i)
+        make_unfused_generic(bottles_song())(n_milk,"milk");
+    // 96 bottles left for me
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Creates a unfused_lvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_unfused_lvalue_args<F>::type
+make_unfused_lvalue_args(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Polymorphic + Function Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_unfused_lvalue_args(f);
+
+

+ Return type: A specialization of unfused_lvalue_args. +

+

+ Semantics: Returns a unfused_lvalue_args adapter + for f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
+
+
+ + Example +
+
+struct fused_incrementer
+{
+    template <class Seq> 
+    struct result 
+    { 
+        typedef void type;
+    };
+
+    template <class Seq>
+    void operator()(Seq const & s) const
+    {
+        for_each(s,++boost::lambda::_1);
+    }
+};
+
+void try_it()
+{
+    int a = 2; char b = 'X';
+    make_unfused_lvalue_args(fused_incrementer())(a,b);
+    assert(a == 3 && b == 'Y');
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Creates a unfused_rvalue_args adapter + for a given, unary Polymorphic + Function Object. The usual element + conversion is applied to the target function. +

+
+ + Synopsis +
+
+template <typename F>
+inline typename make_unfused_rvalue_args<F>::type
+make_unfused_rvalue_args(F const & f);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Polymorphic + Function Object +The function to transform.
+
+ + Expression + Semantics +
+
+make_unfused_rvalue_args(f);
+
+

+ Return type: A specialization of unfused_rvalue_args. +

+

+ Semantics: Returns a unfused_rvalue_args adapter + for f. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
+
+
+ + Example +
+
+struct sequence_printer
+{
+    template <class Seq> 
+    struct result 
+    { 
+        typedef void type;
+    };
+
+    template <class Seq>
+    void operator()(Seq const & s) const
+    {
+        std::cout << s << std::endl;
+    }
+};
+
+void try_it()
+{
+    make_unfused_rvalue_args(sequence_printer())
+        (24,"bottles of beer in",'a',"box.");
+}
+
+
+ + See + also +
+ +
@@ -40,7 +670,7 @@

-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/functional/generation/metafunctions.html b/doc/html/fusion/functional/generation/metafunctions.html index 3c233649..ae28a48d 100644 --- a/doc/html/fusion/functional/generation/metafunctions.html +++ b/doc/html/fusion/functional/generation/metafunctions.html @@ -6,8 +6,8 @@ - - + + @@ -20,19 +20,247 @@

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

+ Returns the result type of make_fused. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_fused
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of make_fused_procedure. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_fused_procedure
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of make_fused_function_object. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_fused_function_object.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_fused_function_object
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of make_unfused_generic. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_generic.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_unfused_generic
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of make_unfused_lvalue_args. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_lvalue_args.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_unfused_lvalue_args
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of make_unfused_rvalue_args. +

+
+ + Header +
+
+#include <boost/fusion/functional/generation/make_unfused_rvalue_args.hpp>
+
+
+ + Synopsis +
+
+namespace result_of
+{
+    template<typename Function>
+    struct make_unfused_rvalue_args
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
@@ -40,7 +268,7 @@

-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/functional/invocation.html b/doc/html/fusion/functional/invocation.html index 3b88b6cc..8c06c330 100644 --- a/doc/html/fusion/functional/invocation.html +++ b/doc/html/fusion/functional/invocation.html @@ -28,17 +28,7 @@ Invocation
Functions
-
-
invoke
-
invoke_procedure
-
invoke_function_object
-
Metafunctions
-
-
invoke
-
invoke_procedure
-
invoke_function_object
-
diff --git a/doc/html/fusion/functional/invocation/functions.html b/doc/html/fusion/functional/invocation/functions.html index e868aad6..8d53bb6a 100644 --- a/doc/html/fusion/functional/invocation/functions.html +++ b/doc/html/fusion/functional/invocation/functions.html @@ -7,7 +7,7 @@ - +
@@ -20,16 +20,413 @@

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

+ Calls a Deferred + Callable Object with the arguments from a Sequence. +

+

+ The corresponding metafunction, result_of::invoke does not define a type member for target functions of + non-class type whose arity is not satisfied by the size of the sequence. +

+

+ The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

+

+ If the target function is a pointer to a class members, the corresponding + object can be specified as a reference, pointer, or smart pointer. In + case of the latter, a freestanding get_pointer function + must be defined (Boost provides this function for std::auto_ptr + and boost::shared_ptr). +

+
+ + Synopsis +
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke<Function, Sequence>::type
+invoke(Function f, Sequence & s);
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke<Function, Sequence const>::type 
+invoke(Function f, Sequence const & s);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + + + + + + + + +
ParameterRequirementDescription
fA + Deferred + Callable Object +The function to call.
sA + Forward + Sequence +The arguments.
+
+ + Expression + Semantics +
+
+invoke(f,s);
+
+

+ Return type: Return type of f when invoked with the elements in + s as its arguments. +

+

+ Semantics: Invokes f + with the elements in s + as arguments and returns 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 +
+ +
+
+ +
+ + Description +
+

+ Calls a Callable + Object with the arguments from a Sequence. + The result of the call is ignored. +

+

+ The corresponding metafunction, __result_of_invoke_procedure, does not + define a type member + for target functions of non-class type whose arity is not satisfied by + the size of the sequence. +

+

+ The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

+

+ For pointers to class members corresponding object can be specified as + a reference, pointer, or smart pointer. In case of the latter, a freestanding + get_pointer function must be defined (Boost provides + this function for std::auto_ptr and boost::shared_ptr). +

+

+ The target function must not be a pointer to a member object (dereferencing + such a pointer without returning anything does not make sense, so it + isn't implemented). +

+
+ + Synopsis +
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke_procedure<Function, Sequence>::type
+invoke_procedure(Function f, Sequence & s);
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke_procedure<Function, Sequence const>::type
+invoke_procedure(Function f, Sequence const & s);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Callable + Object +The function to call.
sModel + of Forward + Sequence +The arguments.
+
+ + Expression + Semantics +
+
+invoke_procedure(f,s);
+
+

+ Return type: void +

+

+ Semantics: Invokes f + with the elements in s + as arguments. +

+
+ + Header +
+
+#include <boost/fusion/functional/invocation/invoke_procedure.hpp>
+
+
+ + Example +
+
+vector<int,int> v(1,2);
+using namespace boost::lambda;
+invoke_procedure(_1 += _2, v);
+assert(front(v) == 3);
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Calls a Polymorphic Function + Object with the arguments from a Sequence. +

+

+ The corresponding metafunction, result_of::invoke_function_object, does + not define a type member, + if the nested result + class template of the target function object is empty. +

+

+ The first template parameter can be specialized explicitly to avoid copying + and/or to control the const qualification of a function object. +

+
+ + Synopsis +
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke_function_object<Function, Sequence>::type
+invoke_function_object(Function f, Sequence & s);
+
+template<
+    typename Function, 
+    class Sequence
+    >
+typename result_of::invoke_function_object<Function, Sequence const>::type
+invoke_function_object(Function f, Sequence const & s);
+
+
+ + Parameters +
+
+++++ + + + + + + + + + + + + + + + + + +
ParameterRequirementDescription
fModel + of Polymorphic + Function Object +The function object to call.
sModel + of Forward + Sequence +The arguments.
+
+ + Expression + Semantics +
+
+invoke_procedure(f,s);
+
+

+ Return type: Return type of f when invoked with the elements in + s as its arguments. +

+

+ Semantics: Invokes f + with the elements in s + as arguments and returns the result of the call expression. +

+
+ + Header +
+
+#include <boost/fusion/functional/invocation/invoke_function_object.hpp>
+
+
+ + Example +
+
+struct sub
+{
+    template<typename T, typename _>
+    struct result
+    {
+        typedef T type;
+    };
+
+    template<typename T>
+    T operator()(T lhs, T rhs) const
+    {
+        return lhs - rhs;
+    }
+};
+
+void try_it()
+{
+    sub f;
+    assert(f(2,1) == invoke_function_object(f,make_vector(2,1)));
+}
+
+
+ + See + also +
+ +
@@ -37,7 +434,7 @@

-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/fusion/functional/invocation/metafunctions.html b/doc/html/fusion/functional/invocation/metafunctions.html index d483f03c..4f46ffd2 100644 --- a/doc/html/fusion/functional/invocation/metafunctions.html +++ b/doc/html/fusion/functional/invocation/metafunctions.html @@ -6,8 +6,8 @@ - - + + @@ -20,16 +20,139 @@

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

+ Returns the result type of invoke. +

+

+ Empty for non-class target function types whose arity is not satisfied + by the size of the sequence. +

+
+ + Synopsis +
+
+namespace result_of
+{
+    template<
+        typename Function, 
+        class Sequence
+        > 
+    struct invoke
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of invoke_procedure. +

+

+ Empty for non-class target function types whose arity is not satisfied + by the size of the sequence. +

+
+ + Synopsis +
+
+namespace result_of
+{
+    template<
+        typename Function, 
+        class Sequence
+        > 
+    struct invoke_procedure
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
+
+ +
+ + Description +
+

+ Returns the result type of invoke_function_object. +

+

+ Empty if the target function's nested result + class template is empty. +

+
+ + Synopsis +
+
+namespace result_of
+{
+    template<
+        class Function, 
+        class Sequence
+        > 
+    struct invoke_function_object
+    {
+        typedef unspecified type;
+    };
+}
+
+
+ + See + also +
+ +
@@ -37,7 +160,7 @@

-PrevUpHomeNext +PrevUpHomeNext