$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-04-21 14:11:02
Author: eric_niebler
Date: 2008-04-21 14:11:01 EDT (Mon, 21 Apr 2008)
New Revision: 44702
URL: http://svn.boost.org/trac/boost/changeset/44702
Log:
work around member pointer issue on older gcc
Text files modified: 
   branches/proto/v4/boost/proto/detail/decltype.hpp |    12 +++++++++++-                            
   branches/proto/v4/boost/proto/make_expr.hpp       |     9 +++++++++                               
   2 files changed, 20 insertions(+), 1 deletions(-)
Modified: branches/proto/v4/boost/proto/detail/decltype.hpp
==============================================================================
--- branches/proto/v4/boost/proto/detail/decltype.hpp	(original)
+++ branches/proto/v4/boost/proto/detail/decltype.hpp	2008-04-21 14:11:01 EDT (Mon, 21 Apr 2008)
@@ -48,14 +48,18 @@
 {
     namespace detail
     {
-        template<typename T> T make();
+        ////////////////////////////////////////////////////////////////////////////////////////////
+        template<typename T>
+        T make();
 
+        ////////////////////////////////////////////////////////////////////////////////////////////
         template<typename T>
         char check_reference(T &);
 
         template<typename T>
         char (&check_reference(T const &))[2];
 
+        ////////////////////////////////////////////////////////////////////////////////////////////
         template<typename A0, typename A1>
         struct comma_result
         {
@@ -80,6 +84,7 @@
             typedef void type;
         };
 
+        ////////////////////////////////////////////////////////////////////////////////////////////
         template<typename T, typename U = T>
         struct result_of_fixup
           : mpl::if_c<is_function<T>::value, T *, U>
@@ -91,6 +96,11 @@
         {};
 
         template<typename T, typename U>
+        struct result_of_fixup<T const &, U>
+          : result_of_fixup<T, T>
+        {};
+
+        template<typename T, typename U>
         struct result_of_fixup<T *, U>
           : result_of_fixup<T, U>
         {};
Modified: branches/proto/v4/boost/proto/make_expr.hpp
==============================================================================
--- branches/proto/v4/boost/proto/make_expr.hpp	(original)
+++ branches/proto/v4/boost/proto/make_expr.hpp	2008-04-21 14:11:01 EDT (Mon, 21 Apr 2008)
@@ -70,6 +70,11 @@
     #endif
     #include <boost/proto/detail/suffix.hpp>
 
+    #ifdef _MSC_VER
+    # pragma warning(push)
+    # pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored
+    #endif
+
     namespace boost
     {
         /// INTERNAL ONLY
@@ -969,6 +974,10 @@
 
     }}
 
+    #ifdef _MSC_VER
+    # pragma warning(pop)
+    #endif
+    
     #undef BOOST_PROTO_AT
     #undef BOOST_PROTO_AT_TYPE
     #undef BOOST_PROTO_AS_CHILD_AT