Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86261 - trunk/boost/mpl
From: steveire_at_[hidden]
Date: 2013-10-12 06:32:41


Author: skelly
Date: 2013-10-12 06:32:40 EDT (Sat, 12 Oct 2013)
New Revision: 86261
URL: http://svn.boost.org/trac/boost/changeset/86261

Log:
MPL: Limit a GCC workaround to a version tested to not need it.

Text files modified:
   trunk/boost/mpl/quote.hpp | 17 ++++++++++-------
   1 files changed, 10 insertions(+), 7 deletions(-)

Modified: trunk/boost/mpl/quote.hpp
==============================================================================
--- trunk/boost/mpl/quote.hpp Sat Oct 12 06:19:11 2013 (r86260)
+++ trunk/boost/mpl/quote.hpp 2013-10-12 06:32:40 EDT (Sat, 12 Oct 2013) (r86261)
@@ -61,19 +61,22 @@
 
 template< typename T, bool has_type_ >
 struct quote_impl
-// GCC has a problem with metafunction forwarding when T is a
-// specialization of a template called 'type'.
-# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \
- && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \
- && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2))
+// GCC had a problem with metafunction forwarding when T is a
+// specialization of a template called 'type'. It is unknown which release
+// fixed this, but it was previously tested to be broken with GCC 4.0.2.
+// It certainly works with 4.6.4 and has not been tested with intermediate
+// versions.
+# if BOOST_WORKAROUND(__GNUC__, <= 4) \
+ && BOOST_WORKAROUND(__GNUC_MINOR__, <= 6) \
+ && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, <= 4)
 {
     typedef typename T::type type;
 };
-# else
+# else
     : T
 {
 };
-# endif
+# endif
 
 template< typename T >
 struct quote_impl<T,false>


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