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 11 // See http://www.boost.org for most recent version. 12 13 // Metrowerks C++ compiler setup: 14 15 // locale support is disabled when linking with the dynamic runtime 16 # ifdef _MSL_NO_LOCALE 17 # define BOOST_NO_STD_LOCALE 18 # endif 19 20 # if __MWERKS__ <= 0x2301 // 5.3 21 # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING 22 # define BOOST_NO_POINTER_TO_MEMBER_CONST 23 # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS 24 # define BOOST_NO_MEMBER_TEMPLATE_KEYWORD 25 # endif 26 27 # if __MWERKS__ <= 0x2401 // 6.2 28 //# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING 29 # endif 30 31 # if(__MWERKS__ <= 0x2407) // 7.x 32 # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS 33 # define BOOST_NO_UNREACHABLE_RETURN_DETECTION 34 # endif 35 36 # if(__MWERKS__ <= 0x3003) // 8.x 37 # define BOOST_NO_SFINAE 38 # endif 39 40 // the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last 41 // tested version *only*: 42 # if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6 43 # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS 44 # define BOOST_NO_IS_ABSTRACT 45 # endif 46 47 #if !__option(wchar_type) 48 # define BOOST_NO_INTRINSIC_WCHAR_T 49 #endif 50 51 #if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS) 52 # define BOOST_NO_EXCEPTIONS 53 #endif 54 55 #if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh) 56 # if __MWERKS__ == 0x3000 57 # define BOOST_COMPILER_VERSION 8.0 58 # elif __MWERKS__ == 0x3001 59 # define BOOST_COMPILER_VERSION 8.1 60 # elif __MWERKS__ == 0x3002 61 # define BOOST_COMPILER_VERSION 8.2 62 # elif __MWERKS__ == 0x3003 63 # define BOOST_COMPILER_VERSION 8.3 64 # elif __MWERKS__ == 0x3200 65 # define BOOST_COMPILER_VERSION 9.0 66 # elif __MWERKS__ == 0x3201 67 # define BOOST_COMPILER_VERSION 9.1 68 # elif __MWERKS__ == 0x3202 69 # define BOOST_COMPILER_VERSION 9.2 70 # elif __MWERKS__ == 0x3204 71 # define BOOST_COMPILER_VERSION 9.3 72 # elif __MWERKS__ == 0x3205 73 # define BOOST_COMPILER_VERSION 9.4 74 # elif __MWERKS__ == 0x3206 75 # define BOOST_COMPILER_VERSION 9.5 76 # elif __MWERKS__ == 0x3207 77 # define BOOST_COMPILER_VERSION 9.6 78 # else 79 # define BOOST_COMPILER_VERSION __MWERKS__ 80 # endif 81 #else 82 # define BOOST_COMPILER_VERSION __MWERKS__ 83 #endif 84 85 // 86 // C++0x features 87 // 88 // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG 89 // 90 #if __MWERKS__ > 0x3206 && __option(rvalue_refs) 91 # define BOOST_HAS_RVALUE_REFS 92 #else 93 # define BOOST_NO_CXX11_RVALUE_REFERENCES 94 #endif 95 #define BOOST_NO_CXX11_AUTO_DECLARATIONS 96 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS 97 #define BOOST_NO_CXX11_CHAR16_T 98 #define BOOST_NO_CXX11_CHAR32_T 99 #define BOOST_NO_CXX11_CONSTEXPR 100 #define BOOST_NO_CXX11_DECLTYPE 101 #define BOOST_NO_CXX11_DECLTYPE_N3276 102 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS 103 #define BOOST_NO_CXX11_DELETED_FUNCTIONS 104 #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 105 #define BOOST_NO_CXX11_EXTERN_TEMPLATE 106 #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS 107 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 108 #define BOOST_NO_CXX11_LAMBDAS 109 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS 110 #define BOOST_NO_CXX11_NOEXCEPT 111 #define BOOST_NO_CXX11_NULLPTR 112 #define BOOST_NO_CXX11_RANGE_BASED_FOR 113 #define BOOST_NO_CXX11_RAW_LITERALS 114 #define BOOST_NO_CXX11_SCOPED_ENUMS 115 #define BOOST_NO_SFINAE_EXPR 116 #define BOOST_NO_CXX11_SFINAE_EXPR 117 #define BOOST_NO_CXX11_STATIC_ASSERT 118 #define BOOST_NO_CXX11_TEMPLATE_ALIASES 119 #define BOOST_NO_CXX11_UNICODE_LITERALS 120 #define BOOST_NO_CXX11_VARIADIC_TEMPLATES 121 #define BOOST_NO_CXX11_VARIADIC_MACROS 122 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX 123 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS 124 #define BOOST_NO_CXX11_ALIGNAS 125 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES 126 #define BOOST_NO_CXX11_INLINE_NAMESPACES 127 #define BOOST_NO_CXX11_REF_QUALIFIERS 128 #define BOOST_NO_CXX11_FINAL 129 #define BOOST_NO_CXX11_THREAD_LOCAL 130 131 // C++ 14: 132 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) 133 # define BOOST_NO_CXX14_AGGREGATE_NSDMI 134 #endif 135 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) 136 # define BOOST_NO_CXX14_BINARY_LITERALS 137 #endif 138 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) 139 # define BOOST_NO_CXX14_CONSTEXPR 140 #endif 141 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) 142 # define BOOST_NO_CXX14_DECLTYPE_AUTO 143 #endif 144 #if (__cplusplus < 201304) // There's no SD6 check for this.... 145 # define BOOST_NO_CXX14_DIGIT_SEPARATORS 146 #endif 147 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) 148 # define BOOST_NO_CXX14_GENERIC_LAMBDAS 149 #endif 150 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) 151 # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES 152 #endif 153 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) 154 # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION 155 #endif 156 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) 157 # define BOOST_NO_CXX14_VARIABLE_TEMPLATES 158 #endif 159 160 // C++17 161 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) 162 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS 163 #endif 164 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) 165 # define BOOST_NO_CXX17_INLINE_VARIABLES 166 #endif 167 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) 168 # define BOOST_NO_CXX17_FOLD_EXPRESSIONS 169 #endif 170 171 #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) 172 173 // 174 // versions check: 175 // we don't support Metrowerks prior to version 5.3: 176 #if __MWERKS__ < 0x2301 177 # error "Compiler not supported or configured - please reconfigure" 178 #endif 179 // 180 // last known and checked version: 181 #if (__MWERKS__ > 0x3205) 182 # if defined(BOOST_ASSERT_CONFIG) 183 # error "Unknown compiler version - please run the configure tests and report the results" 184 # endif 185 #endif 186 187 188 189 190 191 192 193