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

[SVN r86261]
This commit is contained in:
Stephen Kelly
2013-10-12 10:32:40 +00:00
parent eccea8a324
commit c77da6a6da

View File

@@ -61,11 +61,14 @@ namespace boost { namespace mpl {
template< typename T, bool has_type_ > template< typename T, bool has_type_ >
struct quote_impl struct quote_impl
// GCC has a problem with metafunction forwarding when T is a // GCC had a problem with metafunction forwarding when T is a
// specialization of a template called 'type'. // specialization of a template called 'type'. It is unknown which release
# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \ // fixed this, but it was previously tested to be broken with GCC 4.0.2.
&& BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \ // It certainly works with 4.6.4 and has not been tested with intermediate
&& BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2)) // versions.
# if BOOST_WORKAROUND(__GNUC__, <= 4) \
&& BOOST_WORKAROUND(__GNUC_MINOR__, <= 6) \
&& BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, <= 4)
{ {
typedef typename T::type type; typedef typename T::type type;
}; };