mpw.hpp 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. // (C) Copyright John Maddock 2001 - 2002.
  2. // (C) Copyright Aleksey Gurtovoy 2002.
  3. // Use, modification and distribution are subject to the
  4. // Boost Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. // See http://www.boost.org for most recent version.
  7. // MPW C++ compilers setup:
  8. # if defined(__SC__)
  9. # define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
  10. # elif defined(__MRC__)
  11. # define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
  12. # else
  13. # error "Using MPW compiler configuration by mistake. Please update."
  14. # endif
  15. //
  16. // MPW 8.90:
  17. //
  18. #if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
  19. # define BOOST_NO_CV_SPECIALIZATIONS
  20. # define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
  21. # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
  22. # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
  23. # define BOOST_NO_INTRINSIC_WCHAR_T
  24. # define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
  25. # define BOOST_NO_USING_TEMPLATE
  26. # define BOOST_NO_CWCHAR
  27. # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
  28. # define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
  29. #endif
  30. //
  31. // C++0x features
  32. //
  33. // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
  34. //
  35. #define BOOST_NO_CXX11_AUTO_DECLARATIONS
  36. #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  37. #define BOOST_NO_CXX11_CHAR16_T
  38. #define BOOST_NO_CXX11_CHAR32_T
  39. #define BOOST_NO_CXX11_CONSTEXPR
  40. #define BOOST_NO_CXX11_DECLTYPE
  41. #define BOOST_NO_CXX11_DECLTYPE_N3276
  42. #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  43. #define BOOST_NO_CXX11_DELETED_FUNCTIONS
  44. #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  45. #define BOOST_NO_CXX11_EXTERN_TEMPLATE
  46. #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  47. #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  48. #define BOOST_NO_CXX11_LAMBDAS
  49. #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  50. #define BOOST_NO_CXX11_NOEXCEPT
  51. #define BOOST_NO_CXX11_NULLPTR
  52. #define BOOST_NO_CXX11_RANGE_BASED_FOR
  53. #define BOOST_NO_CXX11_RAW_LITERALS
  54. #define BOOST_NO_CXX11_RVALUE_REFERENCES
  55. #define BOOST_NO_CXX11_SCOPED_ENUMS
  56. #define BOOST_NO_SFINAE_EXPR
  57. #define BOOST_NO_CXX11_SFINAE_EXPR
  58. #define BOOST_NO_CXX11_STATIC_ASSERT
  59. #define BOOST_NO_CXX11_TEMPLATE_ALIASES
  60. #define BOOST_NO_CXX11_UNICODE_LITERALS
  61. #define BOOST_NO_CXX11_VARIADIC_TEMPLATES
  62. #define BOOST_NO_CXX11_VARIADIC_MACROS
  63. #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  64. #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
  65. #define BOOST_NO_CXX11_ALIGNAS
  66. #define BOOST_NO_CXX11_ALIGNOF
  67. #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  68. #define BOOST_NO_CXX11_INLINE_NAMESPACES
  69. #define BOOST_NO_CXX11_REF_QUALIFIERS
  70. #define BOOST_NO_CXX11_FINAL
  71. #define BOOST_NO_CXX11_OVERRIDE
  72. #define BOOST_NO_CXX11_THREAD_LOCAL
  73. #define BOOST_NO_CXX11_UNRESTRICTED_UNION
  74. // C++ 14:
  75. #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
  76. # define BOOST_NO_CXX14_AGGREGATE_NSDMI
  77. #endif
  78. #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
  79. # define BOOST_NO_CXX14_BINARY_LITERALS
  80. #endif
  81. #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
  82. # define BOOST_NO_CXX14_CONSTEXPR
  83. #endif
  84. #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
  85. # define BOOST_NO_CXX14_DECLTYPE_AUTO
  86. #endif
  87. #if (__cplusplus < 201304) // There's no SD6 check for this....
  88. # define BOOST_NO_CXX14_DIGIT_SEPARATORS
  89. #endif
  90. #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
  91. # define BOOST_NO_CXX14_GENERIC_LAMBDAS
  92. #endif
  93. #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
  94. # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
  95. #endif
  96. #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
  97. # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
  98. #endif
  99. #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
  100. # define BOOST_NO_CXX14_VARIABLE_TEMPLATES
  101. #endif
  102. // C++17
  103. #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
  104. # define BOOST_NO_CXX17_STRUCTURED_BINDINGS
  105. #endif
  106. #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
  107. # define BOOST_NO_CXX17_INLINE_VARIABLES
  108. #endif
  109. #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
  110. # define BOOST_NO_CXX17_FOLD_EXPRESSIONS
  111. #endif
  112. #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
  113. # define BOOST_NO_CXX17_IF_CONSTEXPR
  114. #endif
  115. #if !defined(__cpp_nontype_template_parameter_auto) || (__cpp_nontype_template_parameter_auto < 201606)
  116. # define BOOST_NO_CXX17_AUTO_NONTYPE_TEMPLATE_PARAMS
  117. #endif
  118. //
  119. // versions check:
  120. // we don't support MPW prior to version 8.9:
  121. #if MPW_CPLUS < 0x890
  122. # error "Compiler not supported or configured - please reconfigure"
  123. #endif
  124. //
  125. // last known and checked version is 0x890:
  126. #if (MPW_CPLUS > 0x890)
  127. # if defined(BOOST_ASSERT_CONFIG)
  128. # error "boost: Unknown compiler version - please run the configure tests and report the results"
  129. # endif
  130. #endif