Update of /cvsroot/boost/boost/boost/fusion/functional/invocation
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv14206

Modified Files:
        invoke_function_object.hpp 
Log Message:
simplifies code (minor changes)


Index: invoke_function_object.hpp
===================================================================
RCS file: 
/cvsroot/boost/boost/boost/fusion/functional/invocation/invoke_function_object.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- invoke_function_object.hpp  13 Jul 2007 15:12:14 -0000      1.4
+++ invoke_function_object.hpp  13 Jul 2007 16:26:50 -0000      1.5
@@ -19,8 +19,6 @@
 
 #include <boost/utility/result_of.hpp>
 
-#include <boost/blank.hpp>
-
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/type_traits/remove_const.hpp>
 
@@ -59,10 +57,7 @@
             int N = result_of::size<Sequence>::value,
             bool RandomAccess = traits::is_random_access<Sequence>::value 
             >
-        struct invoke_function_object_impl
-        {
-            typedef boost::blank result;
-        };
+        struct invoke_function_object_impl;
 
         template <class Sequence, int N> 
         struct invoke_function_object_param_types;
@@ -77,10 +72,11 @@
     namespace result_of
     {
         template <class Function, class Sequence> struct invoke_function_object
-            : detail::invoke_function_object_impl< 
+        {
+            typedef typename detail::invoke_function_object_impl< 
                 typename boost::remove_reference<Function>::type, Sequence
-            >::result
-        { }; 
+                >::result_type type;
+        }; 
     }
 
     template <class Function, class Sequence>
@@ -117,16 +113,15 @@
         {
         public:
 
-            struct result
+            typedef typename boost::result_of<
 #define M(z,j,data)                                                            
 \
     typename boost::remove_reference<                                          
\
         typename result_of::value_at_c<Sequence,j>::type >::type 
-                : boost::result_of< Function (BOOST_PP_ENUM(N,M,~)) >
+                Function (BOOST_PP_ENUM(N,M,~)) >::type result_type;
 #undef M
-            { }; 
 
             template <class F>
-            static inline typename result::type
+            static inline result_type
             call(F & f, Sequence & s)
             {
 #define M(z,j,data) fusion::at_c<j>(s)
@@ -141,13 +136,12 @@
         private:
             typedef invoke_function_object_param_types<Sequence,N> seq;
         public:
-            struct result
-                : boost::result_of<
-                    Function (BOOST_PP_ENUM_PARAMS(N,typename seq::T)) >
-            { }; 
+            typedef typename boost::result_of<
+                Function (BOOST_PP_ENUM_PARAMS(N,typename seq::T))
+                >::type result_type;
 
             template <class F>
-            static inline typename result::type
+            static inline result_type
             call(F & f, Sequence & s)
             {
 #if N > 0


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to