compiler.hpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
  2. #define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
  3. // Copyright Aleksey Gurtovoy 2001-2008
  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. #if !defined(BOOST_MPL_CFG_COMPILER_DIR)
  14. # include <boost/mpl/aux_/config/dtp.hpp>
  15. # include <boost/mpl/aux_/config/ttp.hpp>
  16. # include <boost/mpl/aux_/config/ctps.hpp>
  17. # include <boost/mpl/aux_/config/msvc.hpp>
  18. # include <boost/mpl/aux_/config/gcc.hpp>
  19. # include <boost/mpl/aux_/config/workaround.hpp>
  20. # if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
  21. # define BOOST_MPL_CFG_COMPILER_DIR msvc60
  22. # elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
  23. # define BOOST_MPL_CFG_COMPILER_DIR msvc70
  24. # elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
  25. # define BOOST_MPL_CFG_COMPILER_DIR gcc
  26. # elif BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610))
  27. # if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
  28. # define BOOST_MPL_CFG_COMPILER_DIR bcc551
  29. # elif BOOST_WORKAROUND(BOOST_BORLANDC, >= 0x590)
  30. # define BOOST_MPL_CFG_COMPILER_DIR bcc
  31. # else
  32. # define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590
  33. # endif
  34. # elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
  35. # define BOOST_MPL_CFG_COMPILER_DIR dmc
  36. # elif defined(__MWERKS__)
  37. # if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
  38. # define BOOST_MPL_CFG_COMPILER_DIR mwcw
  39. # else
  40. # define BOOST_MPL_CFG_COMPILER_DIR plain
  41. # endif
  42. # elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
  43. # define BOOST_MPL_CFG_COMPILER_DIR no_ctps
  44. # elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
  45. # define BOOST_MPL_CFG_COMPILER_DIR no_ttp
  46. # else
  47. # define BOOST_MPL_CFG_COMPILER_DIR plain
  48. # endif
  49. #endif // BOOST_MPL_CFG_COMPILER_DIR
  50. #endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED