mpw.hpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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_TRAILING_RESULT_TYPES
  67. #define BOOST_NO_CXX11_INLINE_NAMESPACES
  68. #define BOOST_NO_CXX11_REF_QUALIFIERS
  69. #define BOOST_NO_CXX11_FINAL
  70. #define BOOST_NO_CXX11_OVERRIDE
  71. #define BOOST_NO_CXX11_THREAD_LOCAL
  72. #define BOOST_NO_CXX11_UNRESTRICTED_UNION
  73. // C++ 14:
  74. #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
  75. # define BOOST_NO_CXX14_AGGREGATE_NSDMI
  76. #endif
  77. #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
  78. # define BOOST_NO_CXX14_BINARY_LITERALS
  79. #endif
  80. #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
  81. # define BOOST_NO_CXX14_CONSTEXPR
  82. #endif
  83. #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
  84. # define BOOST_NO_CXX14_DECLTYPE_AUTO
  85. #endif
  86. #if (__cplusplus < 201304) // There's no SD6 check for this....
  87. # define BOOST_NO_CXX14_DIGIT_SEPARATORS
  88. #endif
  89. #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
  90. # define BOOST_NO_CXX14_GENERIC_LAMBDAS
  91. #endif
  92. #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
  93. # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
  94. #endif
  95. #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
  96. # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
  97. #endif
  98. #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
  99. # define BOOST_NO_CXX14_VARIABLE_TEMPLATES
  100. #endif
  101. // C++17
  102. #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
  103. # define BOOST_NO_CXX17_STRUCTURED_BINDINGS
  104. #endif
  105. #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
  106. # define BOOST_NO_CXX17_INLINE_VARIABLES
  107. #endif
  108. #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
  109. # define BOOST_NO_CXX17_FOLD_EXPRESSIONS
  110. #endif
  111. #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
  112. # define BOOST_NO_CXX17_IF_CONSTEXPR
  113. #endif
  114. //
  115. // versions check:
  116. // we don't support MPW prior to version 8.9:
  117. #if MPW_CPLUS < 0x890
  118. # error "Compiler not supported or configured - please reconfigure"
  119. #endif
  120. //
  121. // last known and checked version is 0x890:
  122. #if (MPW_CPLUS > 0x890)
  123. # if defined(BOOST_ASSERT_CONFIG)
  124. # error "boost: Unknown compiler version - please run the configure tests and report the results"
  125. # endif
  126. #endif