Hi Matthias, Thanks for this information. I will try some of this with xlC v7.0, but note that I was able to compile regex v1.33 without any modification to the code using xlC v8. (I just sent a detailed email regarding this). Matthias Troyer wrote:
On Jun 5, 2007, at 8:34 PM, dx wrote:
The incomplete class "gcc_3_2_wknd" must not be used as a qualifier.
This patch on boost/mpl/has_xxx.hpp helped for Boost 1.33.1: I moved the gcc_3_2_wknd struct outside the class scope.
Matthias
--- boost/mpl/has_xxx.hpp 2005-06-15 12:43:23.000000000 +0200 +++ /Users/troyer/Desktop/has_xxx.hpp 2007-06-12 10:36:42.000000000 +0200 @@ -1,7 +1,6 @@ #ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED #define BOOST_MPL_HAS_XXX_HPP_INCLUDED - // Copyright Aleksey Gurtovoy 2002-2004 // Copyright David Abrahams 2002-2003 // @@ -183,21 +182,21 @@ # else // other SFINAE-capable compilers + struct gcc_3_2_wknd + { + template< typename U > + static boost::mpl::aux::yes_tag test( + boost::mpl::aux::type_wrapper<U> const volatile* + , boost::mpl::aux::type_wrapper
* = 0 + ); + + static boost::mpl::aux::no_tag test(...); + }; + # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ template< typename T, typename fallback_ = boost::mpl::bool_ > \ struct trait \ { \ - struct gcc_3_2_wknd \ - { \ - template< typename U > \ - static boost::mpl::aux::yes_tag test( \ - boost::mpl::aux::type_wrapper<U> const volatile* \ - , boost::mpl::aux::type_wrapper * = 0 \ - ); \ - \ - static boost::mpl::aux::no_tag test(...); \ - }; \ - \ typedef boost::mpl::aux::type_wrapper<T> t_; \ BOOST_STATIC_CONSTANT(bool, value = \ sizeof(gcc_3_2_wknd::test(static_cast (0))) \ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users