$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56757 - in sandbox/SOC/2009/fusion: . boost/fusion/algorithm/iteration boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/query libs/fusion/example/performance
From: mr.chr.schmidt_at_[hidden]
Date: 2009-10-12 16:43:54
Author: cschmidt
Date: 2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
New Revision: 56757
URL: http://svn.boost.org/trac/boost/changeset/56757
Log:
fixes discrepancy between std::accumulate and fusion::accumulate (2)
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp   |    10 +++++-----                              
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp          |     4 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp          |     2 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp     |     2 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp |     4 ++--                                    
   sandbox/SOC/2009/fusion/project-root.jam                                   |     4 ++--                                    
   6 files changed, 13 insertions(+), 13 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -46,7 +46,6 @@
             It3 it3 = fusion::next(it2);
 
             return unrolled_fold<Result,N-4>::call(
-                    fusion::next(it3),
                     f(
                         f(
                             f(
@@ -60,6 +59,7 @@
                         ),
                         fusion::deref(it3)
                     ),
+                    fusion::next(it3),
                     BOOST_FUSION_FORWARD(F,f));
         }
     };
@@ -166,11 +166,11 @@
     template<typename StateRef, typename It0, typename F, int N>
     struct result_of_unrolled_fold
     {
-        typedef typename fold_apply_rvalue_state<It0, StateRef, F>::type rest1;
+        typedef typename fold_apply_rvalue_state<StateRef, It0, F>::type rest1;
         typedef typename result_of::next<It0>::type it1;
-        typedef typename fold_apply_rvalue_state<it1, rest1, F>::type rest2;
+        typedef typename fold_apply_rvalue_state<rest1, it1, F>::type rest2;
         typedef typename result_of::next<it1>::type it2;
-        typedef typename fold_apply_rvalue_state<it2, rest2, F>::type rest3;
+        typedef typename fold_apply_rvalue_state<rest2, it2, F>::type rest3;
         typedef typename result_of::next<it2>::type it3;
 
         typedef typename
@@ -186,7 +186,7 @@
     template<typename StateRef, typename It0, typename F>
     struct result_of_unrolled_fold<StateRef, It0, F, 3>
     {
-        typedef typename fold_apply_rvalue_state<It0, StateRef, F>::type rest1;
+        typedef typename fold_apply_rvalue_state<StateRef, It0, F>::type rest1;
         typedef typename result_of::next<It0>::type it1;
 
         typedef typename
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -63,7 +63,7 @@
                 BOOST_FUSION_R_ELSE_CLREF(Seq)
               , BOOST_FUSION_R_ELSE_CLREF(State)
               , BOOST_FUSION_R_ELSE_CLREF(F)
-            >::call(fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)), state, f);
+            >::call(state, fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)), f);
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -78,7 +78,7 @@
 #   pragma warning(disable: 4180)
 #endif
         return result_of::fold<Seq&,State const&,F const&>::call(
-                fusion::begin(seq), state, f);
+                state, fusion::begin(seq), f);
 #ifdef BOOST_MSVC
 #   pragma warning(pop)
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -29,7 +29,7 @@
 
             template<typename E>
             inline int
-            operator()(BOOST_FUSION_R_ELSE_CLREF(E) e, int count)const
+            operator()(int count, BOOST_FUSION_R_ELSE_CLREF(E) e)const
             {
                 return f(BOOST_FUSION_FORWARD(E,e)) ? ++count : count;
             }
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -249,7 +249,7 @@
     {
         template<typename Lhs, typename Rhs>
         struct result
-          : boost::fusion::detail::remove_reference<Rhs>
+          : boost::fusion::detail::remove_reference<Lhs>
         {};
         
         template<typename Lhs, typename Rhs>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -121,14 +121,14 @@
 
         template<typename Self,typename Lhs, typename Rhs>
         struct result<Self(Lhs, Rhs)>
-          : boost::fusion::detail::remove_reference<Rhs>
+          : boost::fusion::detail::remove_reference<Lhs>
         {};
         
         template<typename Lhs, typename Rhs>
         typename result<poly_combine(Lhs,Rhs)>::type
         operator()(const Lhs& lhs, const Rhs& rhs) const
         {
-            return rhs + boost::fusion::at_c<0>(lhs) * boost::fusion::at_c<1>(lhs);
+            return lhs + boost::fusion::at_c<0>(rhs) * boost::fusion::at_c<1>(rhs);
         }
     };
 
Modified: sandbox/SOC/2009/fusion/project-root.jam
==============================================================================
--- sandbox/SOC/2009/fusion/project-root.jam	(original)
+++ sandbox/SOC/2009/fusion/project-root.jam	2009-10-12 16:43:53 EDT (Mon, 12 Oct 2009)
@@ -23,5 +23,5 @@
 
 #build-project libs/fusion/doc ;
 #build-project libs/fusion/example/extension ;
-#build-project libs/fusion/example/performance ;
-#build-project libs/fusion/test ;
\ No newline at end of file
+build-project libs/fusion/example/performance ;
+build-project libs/fusion/test ;
\ No newline at end of file