Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r57276 - in sandbox/SOC/2009/fusion/boost/fusion: algorithm/iteration algorithm/iteration/detail algorithm/query algorithm/query/detail algorithm/transformation functional/generation/detail support/internal
From: mr.chr.schmidt_at_[hidden]
Date: 2009-11-01 12:47:17


Author: cschmidt
Date: 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
New Revision: 57276
URL: http://svn.boost.org/trac/boost/changeset/57276

Log:
spirit fixes (3)
Text files modified:
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp | 8 +++---
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp | 30 +++++++++++++-------------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp | 10 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp | 21 ++++++-------------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp | 8 +++---
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp | 8 +++---
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp | 20 +++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp | 20 +++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp | 10 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp | 8 +++---
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp | 12 +++++-----
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp | 43 ++++++++++++++++-----------------------
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp | 6 ++--
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp | 2 +
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp | 20 ++++++++++--------
   15 files changed, 108 insertions(+), 118 deletions(-)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -30,11 +30,11 @@
     inline typename result_of::accumulate<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(State)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
     accumulate(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
             BOOST_FUSION_R_ELSE_CLREF(State) state,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return fusion::fold(
                 BOOST_FUSION_FORWARD(Seq,seq),
@@ -45,8 +45,8 @@
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename State, typename F>
     inline typename
- result_of::accumulate<Seq&, State const&, F const&>::type
- accumulate(Seq& seq,State const& state,F const& f)
+ result_of::accumulate<Seq&, State const&, F>::type
+ accumulate(Seq& seq,State const& state,F f)
     {
         return fusion::fold(seq,state,f);
     }

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-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -36,7 +36,7 @@
         static Result
         call(BOOST_FUSION_R_ELSE_CLREF(State) state,
                 It0 const& it0,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             typedef typename result_of::next<It0 const&>::type It1;
             It1 it1 = fusion::next(it0);
@@ -71,7 +71,7 @@
         static Result
         call(BOOST_FUSION_R_ELSE_CLREF(State) state,
                 It0 const& it0,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             typedef typename result_of::next<It0 const&>::type It1;
             It1 it1 = fusion::next(it0);
@@ -98,7 +98,7 @@
         static Result
         call(BOOST_FUSION_R_ELSE_CLREF(State) state,
                 It0 const& it0,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             return f(
                     f(BOOST_FUSION_FORWARD(State,state),fusion::deref(it0)),
@@ -113,7 +113,7 @@
         static Result
         call(BOOST_FUSION_R_ELSE_CLREF(State) state,
                 It0 const& it0,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             return f(BOOST_FUSION_FORWARD(State,state),fusion::deref(it0));
         }
@@ -126,7 +126,7 @@
         static Result
         call(BOOST_FUSION_R_ELSE_CLREF(State) state,
                 It0 const&,
- BOOST_FUSION_R_ELSE_CLREF(F))
+ BOOST_FUSION_RREF_ELSE_OBJ(F))
         {
             return state;
         }
@@ -218,10 +218,10 @@
         typedef StateRef type;
     };
 
- template<typename StateRef, typename It0, typename FRef, int SeqSize>
+ template<typename StateRef, typename It0, typename F, int SeqSize>
     struct result_of_unrolled_fold_first
     {
- typedef typename get_func_base<FRef>::type f;
+ typedef typename get_func_base<F>::type f;
 
         typedef typename
             result_of_unrolled_fold<
@@ -233,10 +233,10 @@
         type;
     };
 
- template<int SeqSize, typename StateRef, typename It0, typename FRef>
+ template<int SeqSize, typename StateRef, typename It0, typename F>
     struct fold_impl
     {
- typedef preevaluate<FRef> preevaluater;
+ typedef preevaluate<F> preevaluater;
 
         typedef typename
             mpl::eval_if<
@@ -245,29 +245,29 @@
               , result_of_unrolled_fold_first<
                     StateRef
                   , It0
- , FRef
+ , F
                   , SeqSize
>
>::type
         type;
 
         static type
- call(StateRef state, It0 const& it0, FRef f)
+ call(StateRef state, It0 const& it0, F f)
         {
             return unrolled_fold<type, SeqSize>::call(
                     BOOST_FUSION_FORWARD(StateRef,state),
                     it0,
- BOOST_FUSION_FORWARD(FRef,f));
+ BOOST_FUSION_FORWARD(F,f));
         }
     };
 
- template<typename StateRef, typename It0, typename FRef>
- struct fold_impl<0,StateRef,It0,FRef>
+ template<typename StateRef, typename It0, typename F>
+ struct fold_impl<0,StateRef,It0,F>
     {
         typedef StateRef type;
 
         static StateRef
- call(StateRef state, It0 const&, FRef)
+ call(StateRef state, It0 const&, F)
         {
             return state;
         }

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -24,7 +24,7 @@
     struct for_each_unrolled
     {
         template<typename It0, typename F>
- static void call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ static void call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             typedef typename result_of::next<It0 const&>::type It1;
             It1 it1(fusion::next(it0));
@@ -48,7 +48,7 @@
     struct for_each_unrolled<3>
     {
         template<typename It0, typename F>
- static void call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ static void call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             typedef typename result_of::next<It0 const&>::type It1;
             It1 it1(fusion::next(it0));
@@ -63,7 +63,7 @@
     struct for_each_unrolled<2>
     {
         template<typename It0, typename F>
- static void call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ static void call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             f(fusion::deref(it0));
             f(fusion::deref(fusion::next(it0)));
@@ -74,7 +74,7 @@
     struct for_each_unrolled<1>
     {
         template<typename It0, typename F>
- static void call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ static void call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             f(fusion::deref(it0));
         }
@@ -84,7 +84,7 @@
     struct for_each_unrolled<0>
     {
         template<typename It, typename F>
- static void call(It const&, BOOST_FUSION_R_ELSE_CLREF(F))
+ static void call(It const&, BOOST_FUSION_RREF_ELSE_OBJ(F))
         {}
     };
 }}}

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-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -39,7 +39,7 @@
 #endif
>::type
               , typename begin<Seq>::type
- , typename detail::add_lref<F>::type
+ , F
>
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -52,36 +52,29 @@
         result_of::fold<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
           , BOOST_FUSION_R_ELSE_CLREF(State)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
     fold(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
          BOOST_FUSION_R_ELSE_CLREF(State) state,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return
             result_of::fold<
                 BOOST_FUSION_R_ELSE_CLREF(Seq)
               , BOOST_FUSION_R_ELSE_CLREF(State)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::call(state, fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)), f);
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename State, typename F>
- inline typename result_of::fold<Seq&,State const&,F const&>::type
+ inline typename result_of::fold<Seq&,State const&,F>::type
     fold(Seq& seq,
          State const& state,
- F const& f)
+ F f)
     {
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4180)
-#endif
- return result_of::fold<Seq&,State const&,F const&>::call(
+ return result_of::fold<Seq&,State const&,F>::call(
                 state, fusion::begin(seq), f);
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
     }
 #endif
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -34,10 +34,10 @@
     inline typename
         result_of::for_each<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
     for_each(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         detail::for_each_unrolled<
             result_of::size<BOOST_FUSION_R_ELSE_CLREF(Seq)>::value
@@ -47,8 +47,8 @@
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F>
- inline typename result_of::for_each<Seq&,F const&>::type
- for_each(Seq& seq,F const& f)
+ inline typename result_of::for_each<Seq&,F>::type
+ for_each(Seq& seq,F f)
     {
         detail::for_each_unrolled<result_of::size<Seq>::value>::call(
                 fusion::begin(seq),f);

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -35,9 +35,9 @@
     inline typename
         result_of::all<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
- all(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ all(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return
             detail::unrolled_all<
@@ -49,8 +49,8 @@
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F>
- inline typename result_of::all<Seq&, F const&>::type
- all(Seq& seq, F const& f)
+ inline typename result_of::all<Seq&, F>::type
+ all(Seq& seq, F f)
     {
         return
             detail::unrolled_all<

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -19,23 +19,23 @@
 {
     namespace detail
     {
- template<typename FRef>
+ template<typename F>
         struct any_helper
         {
             typedef bool result_type;
 
- any_helper(FRef f)
+ any_helper(F f)
               : f(f)
             {}
 
             template<typename E>
             inline bool
- operator()(BOOST_FUSION_R_ELSE_CLREF(E) e)const
+ operator()(BOOST_FUSION_R_ELSE_CLREF(E) e)
             {
                 return !f(BOOST_FUSION_FORWARD(E,e));
             }
 
- FRef f;
+ F f;
         };
     }
 
@@ -55,21 +55,21 @@
     inline typename
         result_of::any<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
- any(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ any(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return !fusion::all(
                 BOOST_FUSION_FORWARD(Seq,seq),
- detail::any_helper<BOOST_FUSION_R_ELSE_CLREF(F)>(f));
+ detail::any_helper<BOOST_FUSION_RREF_ELSE_OBJ(F)>(f));
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F>
- inline typename result_of::any<Seq&,F const&>::type
- any(Seq& seq, F const& f)
+ inline typename result_of::any<Seq&,F>::type
+ any(Seq& seq, F f)
     {
- return !fusion::all(seq,detail::any_helper<F const&>(f));
+ return !fusion::all(seq,detail::any_helper<F>(f));
     }
 #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-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -18,23 +18,23 @@
 {
     namespace detail
     {
- template<typename FRef>
+ template<typename F>
         struct count_if_helper
         {
             typedef int result_type;
 
- count_if_helper(FRef f)
+ count_if_helper(F f)
               : f(f)
             {}
 
             template<typename E>
             inline int
- operator()(int count, BOOST_FUSION_R_ELSE_CLREF(E) e)const
+ operator()(int count, BOOST_FUSION_R_ELSE_CLREF(E) e)
             {
                 return f(BOOST_FUSION_FORWARD(E,e)) ? ++count : count;
             }
 
- FRef f;
+ F f;
         };
     }
 
@@ -54,23 +54,23 @@
     inline typename
         result_of::count_if<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
- count_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ count_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return fold(BOOST_FUSION_FORWARD(Seq,seq),
             0,
- detail::count_if_helper<BOOST_FUSION_R_ELSE_CLREF(F)>(f));
+ detail::count_if_helper<BOOST_FUSION_RREF_ELSE_OBJ(F)>(f));
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F>
- inline typename result_of::count_if<Seq&,F const&>::type
- count_if(Seq& seq, F const& f)
+ inline typename result_of::count_if<Seq&,F>::type
+ count_if(Seq& seq, F f)
     {
         return fold(seq,
             0,
- detail::count_if_helper<F const&>(f));
+ detail::count_if_helper<F>(f));
     }
 #endif
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -24,7 +24,7 @@
     {
         template <typename It0, typename F>
         static bool
- call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             if(!f(fusion::deref(it0)))
             {
@@ -63,7 +63,7 @@
     {
         template <typename It0, typename F>
         static bool
- call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             if(!f(fusion::deref(it0)))
             {
@@ -88,7 +88,7 @@
     {
         template <typename It0, typename F>
         static bool
- call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             if(!f(fusion::deref(it0)))
             {
@@ -106,7 +106,7 @@
     {
         template <typename It0, typename F>
         static bool
- call(It0 const& it0, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             return f(fusion::deref(it0));
         }
@@ -121,7 +121,7 @@
         constexpr
 #endif
         bool
- call(It0 const& it0, F const& f)
+ call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
             return true;
         }

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -31,9 +31,9 @@
     inline typename
         result_of::none<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
- none(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_R_ELSE_CLREF(F) f)
+ none(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return !fusion::any(
                 BOOST_FUSION_FORWARD(Seq,seq),
@@ -42,8 +42,8 @@
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F>
- inline typename result_of::none<Seq&, F const&>::type
- none(Seq& seq, F const& f)
+ inline typename result_of::none<Seq&, F>::type
+ none(Seq& seq, F f)
     {
         return !fusion::any(seq,f);
     }

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -40,17 +40,17 @@
     template <typename Seq, typename F, typename NewValue>
     inline typename result_of::replace_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
       , BOOST_FUSION_R_ELSE_CLREF(NewValue)
>::type
     replace_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
- BOOST_FUSION_R_ELSE_CLREF(F) pred,
+ BOOST_FUSION_RREF_ELSE_OBJ(F) pred,
             BOOST_FUSION_R_ELSE_CLREF(NewValue) new_value)
     {
         typedef
             result_of::replace_if<
                 BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
               , BOOST_FUSION_R_ELSE_CLREF(NewValue)
>
         result;
@@ -63,10 +63,10 @@
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename Seq, typename F, typename NewValue>
- inline typename result_of::replace_if<Seq&, F const&, NewValue const&>::type
- replace_if(Seq& seq,F const& pred,NewValue const& new_value)
+ inline typename result_of::replace_if<Seq&, F, NewValue const&>::type
+ replace_if(Seq& seq,F pred,NewValue const& new_value)
     {
- typedef result_of::replace_if<Seq&, F const&, NewValue const&> result;
+ typedef result_of::replace_if<Seq&, F, NewValue const&> result;
 
         return typename result::type(seq,
                 typename result::replacer(pred,new_value));

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -82,16 +82,16 @@
     inline typename
         result_of::transform<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
           , IsAssociative
>::type
     transform(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return typename
             result_of::transform<
                 BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
               , IsAssociative
>::type(BOOST_FUSION_FORWARD(Seq,seq), BOOST_FUSION_FORWARD(F,f));
     }
@@ -100,46 +100,39 @@
     inline typename
         result_of::transform<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type
     transform(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
- BOOST_FUSION_R_ELSE_CLREF(F) f)
+ BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return typename
             result_of::transform<
                 BOOST_FUSION_R_ELSE_CLREF(Seq)
- , BOOST_FUSION_R_ELSE_CLREF(F)
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)
>::type(BOOST_FUSION_FORWARD(Seq,seq), BOOST_FUSION_FORWARD(F,f));
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename IsAssociative,typename Seq, typename F>
- inline typename result_of::transform<Seq&, F const&>::type
- transform(Seq& seq, F const& f)
+ inline typename result_of::transform<Seq&, F>::type
+ transform(Seq& seq, F f)
     {
 #ifdef BOOST_MSVC
 # pragma warning(push)
 # pragma warning(disable: 4180)
 #endif
         return typename
- result_of::transform<Seq&, F const&,IsAssociative>::type(seq, f);
+ result_of::transform<Seq&, F,IsAssociative>::type(seq, f);
 #ifdef BOOST_MSVC
 # pragma warning(pop)
 #endif
     }
 
     template <typename Seq, typename F>
- inline typename result_of::transform<Seq&, F const&>::type
- transform(Seq& seq, F const& f)
+ inline typename result_of::transform<Seq&, F>::type
+ transform(Seq& seq, F f)
     {
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4180)
-#endif
- return typename result_of::transform<Seq&, F const&>::type(seq, f);
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
+ return typename result_of::transform<Seq&, F>::type(seq, f);
     }
 #endif
 
@@ -149,18 +142,18 @@
         result_of::transform<\
             Seq1 SEQ1_CV_REF_MODIFIER\
           , Seq2 SEQ2_CV_REF_MODIFIER\
- , BOOST_FUSION_R_ELSE_CLREF(F)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)\
           , IsAssociative\
>::type\
     transform(Seq1 SEQ1_CV_REF_MODIFIER seq1\
           , Seq2 SEQ2_CV_REF_MODIFIER seq2\
- , BOOST_FUSION_R_ELSE_CLREF(F) f)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F) f)\
     {\
         return typename\
             result_of::transform<\
                 Seq1 SEQ1_CV_REF_MODIFIER\
               , Seq2 SEQ2_CV_REF_MODIFIER\
- , BOOST_FUSION_R_ELSE_CLREF(F)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)\
               , IsAssociative\
>::type(BOOST_FUSION_FORWARD(Seq1 SEQ1_CV_REF_MODIFIER,seq1)\
                   , BOOST_FUSION_FORWARD(Seq2 SEQ2_CV_REF_MODIFIER,seq2)\
@@ -172,17 +165,17 @@
         result_of::transform<\
             Seq1 SEQ1_CV_REF_MODIFIER\
           , Seq2 SEQ2_CV_REF_MODIFIER\
- , BOOST_FUSION_R_ELSE_CLREF(F)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)\
>::type\
     transform(Seq1 SEQ1_CV_REF_MODIFIER seq1\
           , Seq2 SEQ2_CV_REF_MODIFIER seq2\
- , BOOST_FUSION_R_ELSE_CLREF(F) f)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F) f)\
     {\
         return typename\
             result_of::transform<\
                 Seq1 SEQ1_CV_REF_MODIFIER\
               , Seq2 SEQ2_CV_REF_MODIFIER\
- , BOOST_FUSION_R_ELSE_CLREF(F)\
+ , BOOST_FUSION_RREF_ELSE_OBJ(F)\
>::type(BOOST_FUSION_FORWARD(Seq1 SEQ1_CV_REF_MODIFIER,seq1)\
                   , BOOST_FUSION_FORWARD(Seq2 SEQ2_CV_REF_MODIFIER,seq2)\
                   , BOOST_FUSION_FORWARD(F,f));\

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -30,11 +30,11 @@
 
     template<typename F>
     inline typename
- result_of::BOOST_FUSION_FUNC_NAME<BOOST_FUSION_R_ELSE_CLREF(F)>::type
- BOOST_FUSION_FUNC_NAME(BOOST_FUSION_R_ELSE_CLREF(F) f)
+ result_of::BOOST_FUSION_FUNC_NAME<BOOST_FUSION_RREF_ELSE_OBJ(F)>::type
+ BOOST_FUSION_FUNC_NAME(BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return typename
- result_of::BOOST_FUSION_FUNC_NAME<BOOST_FUSION_R_ELSE_CLREF(F)>::
+ result_of::BOOST_FUSION_FUNC_NAME<BOOST_FUSION_RREF_ELSE_OBJ(F)>::
                 type(BOOST_FUSION_FORWARD(F,f));
     }
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -36,6 +36,7 @@
 //get a lot of problems with older compilers. On top of that, fusion
 //types are not meant to be volatile anyway.
 #ifdef BOOST_NO_RVALUE_REFERENCES
+# define BOOST_FUSION_RREF_ELSE_OBJ(OBJECT) OBJECT
 # define BOOST_FUSION_R_ELSE_LREF(OBJECT) OBJECT&
 # define BOOST_FUSION_R_ELSE_CLREF(OBJECT) OBJECT const&
 
@@ -47,6 +48,7 @@
         MACRO(const&,ARG)\
         MACRO(&,ARG)
 #else
+# define BOOST_FUSION_RREF_ELSE_OBJ(OBJECT) OBJECT&&
 # define BOOST_FUSION_R_ELSE_LREF(OBJECT) OBJECT&&
 # define BOOST_FUSION_R_ELSE_CLREF(OBJECT) OBJECT&&
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp 2009-11-01 12:47:15 EST (Sun, 01 Nov 2009)
@@ -53,10 +53,10 @@
     //T(C::*cv&)()cv&
     //& -> &&
 
- template<typename FRef>
+ template<typename F>
     struct is_po_callable
     {
- typedef typename identity<FRef>::type identity_f;
+ typedef typename identity<F>::type identity_f;
         typedef typename is_pointer<identity_f>::type is_pointer;
         typedef typename remove_pointer<identity_f>::type f;
 
@@ -144,7 +144,7 @@
     };
 #endif
 
- template<typename FRef>
+ template<typename F>
     struct preevaluate
     {
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_NO_DECLTYPE)
@@ -152,7 +152,7 @@
 #else
         typedef
             preevaluate_impl<
- typename remove_pointer<typename identity<FRef>::type>::type
+ typename remove_pointer<typename identity<F>::type>::type
>
         gen;
         typedef typename gen::type type;
@@ -161,15 +161,17 @@
     };
 
     //cschmidt: boost::result_of does not like ref-qualified
- //'class type' functions
- template<typename FRef>
+ //'class type' functors
+ template<typename F>
     struct get_func_base
     {
+ typedef is_po_callable<F> is_po_callable_;
+
         typedef typename
             mpl::if_<
- typename is_po_callable<FRef>::type
- , FRef
- , typename is_po_callable<FRef>::f
+ typename is_po_callable_::type
+ , typename is_po_callable_::f&
+ , typename is_po_callable_::identity_f
>::type
         type;
     };


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk