dependent_nttp.hpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED
  2. #define BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED
  3. // Copyright Aleksey Gurtovoy 2002-2004
  4. //
  5. // Distributed under the Boost Software License, Version 1.0.
  6. // (See accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9. // See http://www.boost.org/libs/mpl for documentation.
  10. // $Id$
  11. // $Date$
  12. // $Revision$
  13. #include <boost/mpl/aux_/config/gcc.hpp>
  14. #include <boost/mpl/aux_/config/workaround.hpp>
  15. // GCC and EDG-based compilers incorrectly reject the following code:
  16. // template< typename T, T n > struct a;
  17. // template< typename T > struct b;
  18. // template< typename T, T n > struct b< a<T,n> > {};
  19. #if !defined(BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC) \
  20. && !defined(BOOST_MPL_PREPROCESSING_MODE) \
  21. && ( BOOST_WORKAROUND(__EDG_VERSION__, BOOST_TESTED_AT(300)) \
  22. || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
  23. )
  24. # define BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC
  25. #endif
  26. #endif // BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED