$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56038 - sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail
From: mr.chr.schmidt_at_[hidden]
Date: 2009-09-05 08:16:22
Author: cschmidt
Date: 2009-09-05 08:16:22 EDT (Sat, 05 Sep 2009)
New Revision: 56038
URL: http://svn.boost.org/trac/boost/changeset/56038
Log:
improved replace_if
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp |    22 +++++++++-------------                  
   1 files changed, 9 insertions(+), 13 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp	2009-09-05 08:16:22 EDT (Sat, 05 Sep 2009)
@@ -10,7 +10,6 @@
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_REPLACE_IF_HPP
 
 #include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/and.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 #include <boost/type_traits/remove_const.hpp>
@@ -25,20 +24,17 @@
 
         template<typename Self, typename U>
         struct result<Self(U)>
-          : mpl::eval_if<
-                is_convertible<
-                    typename remove_reference<NewValue>::type*
-                  , typename remove_reference<U>::type*
-                >
-              , mpl::if_<
-                    mpl::and_<
-                        is_rref<NewValue>
-                      , is_lrref<U>
+          : mpl::if_<
+                mpl::and_<
+                    is_convertible<
+                        typename remove_reference<NewValue>::type*
+                      , typename remove_reference<U>::type*
                     >
-                  , U
-                  , typename remove_reference<U>::type&
+                  , is_rref<NewValue>
+                  , is_lrref<U>
                 >
-              , mpl::identity<U>
+              , typename remove_reference<U>::type&
+              , U
             >
         {};