metrowerks.hpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. // (C) Copyright John Maddock 2001.
  2. // (C) Copyright Darin Adler 2001.
  3. // (C) Copyright Peter Dimov 2001.
  4. // (C) Copyright David Abrahams 2001 - 2002.
  5. // (C) Copyright Beman Dawes 2001 - 2003.
  6. // (C) Copyright Stefan Slapeta 2004.
  7. // Use, modification and distribution are subject to the
  8. // Boost Software License, Version 1.0. (See accompanying file
  9. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  10. // See http://www.boost.org for most recent version.
  11. // Metrowerks C++ compiler setup:
  12. // locale support is disabled when linking with the dynamic runtime
  13. # ifdef _MSL_NO_LOCALE
  14. # define BOOST_NO_STD_LOCALE
  15. # endif
  16. # if __MWERKS__ <= 0x2301 // 5.3
  17. # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
  18. # define BOOST_NO_POINTER_TO_MEMBER_CONST
  19. # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
  20. # define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
  21. # endif
  22. # if __MWERKS__ <= 0x2401 // 6.2
  23. //# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
  24. # endif
  25. # if(__MWERKS__ <= 0x2407) // 7.x
  26. # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
  27. # define BOOST_NO_UNREACHABLE_RETURN_DETECTION
  28. # endif
  29. # if(__MWERKS__ <= 0x3003) // 8.x
  30. # define BOOST_NO_SFINAE
  31. # endif
  32. // the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
  33. // tested version *only*:
  34. # if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
  35. # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  36. # define BOOST_NO_IS_ABSTRACT
  37. # endif
  38. #if !__option(wchar_type)
  39. # define BOOST_NO_INTRINSIC_WCHAR_T
  40. #endif
  41. #if !__option(exceptions)
  42. # define BOOST_NO_EXCEPTIONS
  43. #endif
  44. #if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
  45. # if __MWERKS__ == 0x3000
  46. # define BOOST_COMPILER_VERSION 8.0
  47. # elif __MWERKS__ == 0x3001
  48. # define BOOST_COMPILER_VERSION 8.1
  49. # elif __MWERKS__ == 0x3002
  50. # define BOOST_COMPILER_VERSION 8.2
  51. # elif __MWERKS__ == 0x3003
  52. # define BOOST_COMPILER_VERSION 8.3
  53. # elif __MWERKS__ == 0x3200
  54. # define BOOST_COMPILER_VERSION 9.0
  55. # elif __MWERKS__ == 0x3201
  56. # define BOOST_COMPILER_VERSION 9.1
  57. # elif __MWERKS__ == 0x3202
  58. # define BOOST_COMPILER_VERSION 9.2
  59. # elif __MWERKS__ == 0x3204
  60. # define BOOST_COMPILER_VERSION 9.3
  61. # elif __MWERKS__ == 0x3205
  62. # define BOOST_COMPILER_VERSION 9.4
  63. # elif __MWERKS__ == 0x3206
  64. # define BOOST_COMPILER_VERSION 9.5
  65. # elif __MWERKS__ == 0x3207
  66. # define BOOST_COMPILER_VERSION 9.6
  67. # else
  68. # define BOOST_COMPILER_VERSION __MWERKS__
  69. # endif
  70. #else
  71. # define BOOST_COMPILER_VERSION __MWERKS__
  72. #endif
  73. //
  74. // C++0x features
  75. //
  76. // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
  77. //
  78. #if __MWERKS__ > 0x3206 && __option(rvalue_refs)
  79. # define BOOST_HAS_RVALUE_REFS
  80. #else
  81. # define BOOST_NO_RVALUE_REFERENCES
  82. #endif
  83. #define BOOST_NO_AUTO_DECLARATIONS
  84. #define BOOST_NO_AUTO_MULTIDECLARATIONS
  85. #define BOOST_NO_CHAR16_T
  86. #define BOOST_NO_CHAR32_T
  87. #define BOOST_NO_CONCEPTS
  88. #define BOOST_NO_CONSTEXPR
  89. #define BOOST_NO_DECLTYPE
  90. #define BOOST_NO_DEFAULTED_FUNCTIONS
  91. #define BOOST_NO_DELETED_FUNCTIONS
  92. #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
  93. #define BOOST_NO_EXTERN_TEMPLATE
  94. #define BOOST_NO_INITIALIZER_LISTS
  95. #define BOOST_NO_LAMBDAS
  96. #define BOOST_NO_NULLPTR
  97. #define BOOST_NO_RAW_LITERALS
  98. #define BOOST_NO_SCOPED_ENUMS
  99. #define BOOST_NO_STATIC_ASSERT
  100. #define BOOST_NO_TEMPLATE_ALIASES
  101. #define BOOST_NO_UNICODE_LITERALS
  102. #define BOOST_NO_VARIADIC_TEMPLATES
  103. #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
  104. //
  105. // versions check:
  106. // we don't support Metrowerks prior to version 5.3:
  107. #if __MWERKS__ < 0x2301
  108. # error "Compiler not supported or configured - please reconfigure"
  109. #endif
  110. //
  111. // last known and checked version:
  112. #if (__MWERKS__ > 0x3205)
  113. # if defined(BOOST_ASSERT_CONFIG)
  114. # error "Unknown compiler version - please run the configure tests and report the results"
  115. # endif
  116. #endif