$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r61219 - in trunk/boost/spirit/home/phoenix: core core/detail detail
From: joel_at_[hidden]
Date: 2010-04-11 23:20:35
Author: djowel
Date: 2010-04-11 23:20:34 EDT (Sun, 11 Apr 2010)
New Revision: 61219
URL: http://svn.boost.org/trac/boost/changeset/61219
Log:
bug fix. removing add_const in result_of type deduction.
Text files modified: 
   trunk/boost/spirit/home/phoenix/core/actor.hpp            |    34 +++++++++++++++++-----------------      
   trunk/boost/spirit/home/phoenix/core/detail/actor.hpp     |     6 +++---                                  
   trunk/boost/spirit/home/phoenix/detail/type_deduction.hpp |     1 +                                       
   3 files changed, 21 insertions(+), 20 deletions(-)
Modified: trunk/boost/spirit/home/phoenix/core/actor.hpp
==============================================================================
--- trunk/boost/spirit/home/phoenix/core/actor.hpp	(original)
+++ trunk/boost/spirit/home/phoenix/core/actor.hpp	2010-04-11 23:20:34 EDT (Sun, 11 Apr 2010)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #ifndef PHOENIX_CORE_ACTOR_HPP
@@ -26,7 +26,7 @@
 {
     // phoenix::void_ is the same as fusion::void_
     typedef fusion::void_ void_;
-    
+
     namespace detail
     {
         //  Forward declarations. These will come in when we get to the
@@ -41,13 +41,13 @@
 
         template <typename BaseT0, typename BaseT1>
         struct comma_result;
-        
+
         // error no arguments supplied
         struct error_expecting_arguments
         {
             template <typename T>
             error_expecting_arguments(T const&) {}
-        };            
+        };
     }
 
     template <typename Eval, typename Env>
@@ -63,7 +63,7 @@
         typedef Eval eval_type;
 
         template <class Sig> struct result {};
-        
+
         actor()
             : Eval() {}
 
@@ -78,7 +78,7 @@
         actor(T0 const& _0, T1 const& _1)
             : Eval(_0, _1) {}
 
-        typedef typename 
+        typedef typename
             mpl::eval_if<
                 typename Eval::no_nullary // avoid calling eval_result when this is true
               , mpl::identity<detail::error_expecting_arguments>
@@ -86,7 +86,7 @@
             >::type
         nullary_result;
 
-        nullary_result 
+        nullary_result
         operator()() const
         {
             return eval_type::eval(basic_environment<>());
@@ -97,11 +97,11 @@
           : eval_result<
                 eval_type
               , basic_environment<
-                    typename remove_reference<typename add_const<A0>::type>::type
+                    typename remove_reference<A0>::type
                 >
             >
         {};
-        
+
         template <typename T0>
         typename result<actor(T0&)>::type
         operator()(T0& _0) const
@@ -114,19 +114,19 @@
           : eval_result<
                 eval_type
               , basic_environment<
-                    typename remove_reference<typename add_const<A0>::type>::type
-                  , typename remove_reference<typename add_const<A1>::type>::type
+                    typename remove_reference<A0>::type
+                  , typename remove_reference<A1>::type
                 >
             >
         {};
-        
+
         template <typename T0, typename T1>
         typename result<actor(T0&,T1&)>::type
         operator()(T0& _0, T1& _1) const
         {
             return eval_type::eval(basic_environment<T0, T1>(_0, _1));
         }
-        
+
         template <typename T1>
         typename detail::make_assign_composite<self_type, T1>::type
         operator=(T1 const& a1) const;
@@ -135,7 +135,7 @@
         typename detail::make_index_composite<self_type, T1>::type
         operator[](T1 const& a1) const;
 
-        //  Bring in the rest of the constructors and function call operators 
+        //  Bring in the rest of the constructors and function call operators
         #include <boost/spirit/home/phoenix/core/detail/actor.hpp>
 
     private:
@@ -145,8 +145,8 @@
 
     //  Forward declaration: The intent to overload the comma must be
     //  stated early on to avoid the subtle problem that arises when
-    //  the header file where the comma operator overload is defined, 
-    //  is not included by the client and the client attempts to use 
+    //  the header file where the comma operator overload is defined,
+    //  is not included by the client and the client attempts to use
     //  the comma anyway.
 
     namespace detail
@@ -167,7 +167,7 @@
     {
         typedef typename phoenix::actor<Eval>::nullary_result type;
     };
-    
+
     template <typename Eval>
     struct result_of<phoenix::actor<Eval> const()>
         : result_of<phoenix::actor<Eval>()>
Modified: trunk/boost/spirit/home/phoenix/core/detail/actor.hpp
==============================================================================
--- trunk/boost/spirit/home/phoenix/core/detail/actor.hpp	(original)
+++ trunk/boost/spirit/home/phoenix/core/detail/actor.hpp	2010-04-11 23:20:34 EDT (Sun, 11 Apr 2010)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #ifndef BOOST_PP_IS_ITERATING
@@ -40,8 +40,8 @@
           , basic_environment<
                 BOOST_PP_ENUM_BINARY_PARAMS(
                     N
-                  , typename remove_reference<typename add_const<A
-                  , >::type>::type BOOST_PP_INTERCEPT
+                  , typename remove_reference<A
+                  , >::type BOOST_PP_INTERCEPT
                 )
             >
         >
Modified: trunk/boost/spirit/home/phoenix/detail/type_deduction.hpp
==============================================================================
--- trunk/boost/spirit/home/phoenix/detail/type_deduction.hpp	(original)
+++ trunk/boost/spirit/home/phoenix/detail/type_deduction.hpp	2010-04-11 23:20:34 EDT (Sun, 11 Apr 2010)
@@ -182,6 +182,7 @@
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/add_reference.hpp>
 #include <boost/type_traits/remove_cv.hpp>
 #include <boost/type_traits/is_const.hpp>
 #include <boost/type_traits/is_reference.hpp>