[SVN r33505]
This commit is contained in:
Dave Abrahams
2006-03-28 16:12:56 +00:00
parent 1177466ac3
commit f100326cf0
2 changed files with 11 additions and 1 deletions

View File

@@ -13,8 +13,8 @@ namespace boost { namespace mpl {
template< typename T, bool has_type_ > template< typename T, bool has_type_ >
struct quote_impl struct quote_impl
: T
{ {
typedef typename T::type type;
}; };
template< typename T > template< typename T >

View File

@@ -60,9 +60,19 @@ 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
// 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))
{
typedef typename T::type type;
};
# else
: T : T
{ {
}; };
# endif
template< typename T > template< typename T >
struct quote_impl<T,false> struct quote_impl<T,false>