Boost logo

Boost-Commit :

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


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