]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // (C) Copyright John Maddock 2001 - 2003. |
2 | // (C) Copyright Toon Knapen 2001 - 2003. | |
3 | // (C) Copyright Lie-Quan Lee 2001. | |
4 | // (C) Copyright Markus Schoepflin 2002 - 2003. | |
5 | // (C) Copyright Beman Dawes 2002 - 2003. | |
6 | // Use, modification and distribution are subject to the | |
7 | // Boost Software License, Version 1.0. (See accompanying file | |
8 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 | ||
10 | // See http://www.boost.org for most recent version. | |
11 | ||
12 | // Visual Age (IBM) C++ compiler setup: | |
13 | ||
14 | #if __IBMCPP__ <= 501 | |
15 | # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS | |
16 | # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS | |
17 | #endif | |
18 | ||
19 | #if (__IBMCPP__ <= 502) | |
20 | // Actually the compiler supports inclass member initialization but it | |
21 | // requires a definition for the class member and it doesn't recognize | |
22 | // it as an integral constant expression when used as a template argument. | |
23 | # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION | |
24 | # define BOOST_NO_INTEGRAL_INT64_T | |
25 | # define BOOST_NO_MEMBER_TEMPLATE_KEYWORD | |
26 | #endif | |
27 | ||
28 | #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG) | |
29 | # define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS | |
30 | #endif | |
31 | ||
32 | #if (__IBMCPP__ <= 1110) | |
33 | // XL C++ V11.1 and earlier versions may not always value-initialize | |
34 | // a temporary object T(), when T is a non-POD aggregate class type. | |
35 | // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it | |
36 | // high priority. -- Niels Dekker (LKEB), May 2010. | |
37 | # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
38 | #endif | |
39 | ||
40 | // | |
41 | // On AIX thread support seems to be indicated by _THREAD_SAFE: | |
42 | // | |
43 | #ifdef _THREAD_SAFE | |
44 | # define BOOST_HAS_THREADS | |
45 | #endif | |
46 | ||
47 | #define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__) | |
48 | ||
49 | // | |
50 | // versions check: | |
51 | // we don't support Visual age prior to version 5: | |
52 | #if __IBMCPP__ < 500 | |
53 | #error "Compiler not supported or configured - please reconfigure" | |
54 | #endif | |
55 | // | |
56 | // last known and checked version is 1210: | |
57 | #if (__IBMCPP__ > 1210) | |
58 | # if defined(BOOST_ASSERT_CONFIG) | |
92f5a8d4 | 59 | # error "boost: Unknown compiler version - please run the configure tests and report the results" |
7c673cae FG |
60 | # endif |
61 | #endif | |
62 | ||
63 | // Some versions of the compiler have issues with default arguments on partial specializations | |
64 | #if __IBMCPP__ <= 1010 | |
65 | #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS | |
66 | #endif | |
67 | ||
b32b8144 FG |
68 | // Type aliasing hint. Supported since XL C++ 13.1 |
69 | #if (__IBMCPP__ >= 1310) | |
70 | # define BOOST_MAY_ALIAS __attribute__((__may_alias__)) | |
71 | #endif | |
72 | ||
7c673cae FG |
73 | // |
74 | // C++0x features | |
75 | // | |
76 | // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG | |
77 | // | |
78 | #if ! __IBMCPP_AUTO_TYPEDEDUCTION | |
79 | # define BOOST_NO_CXX11_AUTO_DECLARATIONS | |
80 | # define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS | |
81 | #endif | |
82 | #if ! __IBMCPP_UTF_LITERAL__ | |
83 | # define BOOST_NO_CXX11_CHAR16_T | |
84 | # define BOOST_NO_CXX11_CHAR32_T | |
85 | #endif | |
86 | #if ! __IBMCPP_CONSTEXPR | |
87 | # define BOOST_NO_CXX11_CONSTEXPR | |
88 | #endif | |
89 | #if ! __IBMCPP_DECLTYPE | |
90 | # define BOOST_NO_CXX11_DECLTYPE | |
91 | #else | |
92 | # define BOOST_HAS_DECLTYPE | |
93 | #endif | |
94 | #define BOOST_NO_CXX11_DECLTYPE_N3276 | |
95 | #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS | |
96 | #define BOOST_NO_CXX11_DELETED_FUNCTIONS | |
97 | #if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS | |
98 | # define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS | |
99 | #endif | |
100 | #if ! __IBMCPP_EXTERN_TEMPLATE | |
101 | # define BOOST_NO_CXX11_EXTERN_TEMPLATE | |
102 | #endif | |
103 | #if ! __IBMCPP_VARIADIC_TEMPLATES | |
104 | // not enabled separately at this time | |
105 | # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS | |
106 | #endif | |
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_USER_DEFINED_LITERALS | |
115 | #if ! __IBMCPP_RVALUE_REFERENCES | |
116 | # define BOOST_NO_CXX11_RVALUE_REFERENCES | |
117 | #endif | |
118 | #if ! __IBMCPP_SCOPED_ENUM | |
119 | # define BOOST_NO_CXX11_SCOPED_ENUMS | |
120 | #endif | |
121 | #define BOOST_NO_SFINAE_EXPR | |
b32b8144 | 122 | #define BOOST_NO_CXX11_SFINAE_EXPR |
7c673cae FG |
123 | #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX |
124 | #if ! __IBMCPP_STATIC_ASSERT | |
125 | # define BOOST_NO_CXX11_STATIC_ASSERT | |
126 | #endif | |
127 | #define BOOST_NO_CXX11_TEMPLATE_ALIASES | |
128 | #define BOOST_NO_CXX11_UNICODE_LITERALS | |
129 | #if ! __IBMCPP_VARIADIC_TEMPLATES | |
130 | # define BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
131 | #endif | |
132 | #if ! __C99_MACRO_WITH_VA_ARGS | |
133 | # define BOOST_NO_CXX11_VARIADIC_MACROS | |
134 | #endif | |
135 | #define BOOST_NO_CXX11_ALIGNAS | |
136 | #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES | |
137 | #define BOOST_NO_CXX11_INLINE_NAMESPACES | |
138 | #define BOOST_NO_CXX11_REF_QUALIFIERS | |
139 | #define BOOST_NO_CXX11_FINAL | |
20effc67 | 140 | #define BOOST_NO_CXX11_OVERRIDE |
7c673cae | 141 | #define BOOST_NO_CXX11_THREAD_LOCAL |
f67539c2 | 142 | #define BOOST_NO_CXX11_UNRESTRICTED_UNION |
7c673cae FG |
143 | |
144 | // C++ 14: | |
145 | #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) | |
146 | # define BOOST_NO_CXX14_AGGREGATE_NSDMI | |
147 | #endif | |
148 | #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) | |
149 | # define BOOST_NO_CXX14_BINARY_LITERALS | |
150 | #endif | |
151 | #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) | |
152 | # define BOOST_NO_CXX14_CONSTEXPR | |
153 | #endif | |
154 | #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) | |
155 | # define BOOST_NO_CXX14_DECLTYPE_AUTO | |
156 | #endif | |
157 | #if (__cplusplus < 201304) // There's no SD6 check for this.... | |
158 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS | |
159 | #endif | |
160 | #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) | |
161 | # define BOOST_NO_CXX14_GENERIC_LAMBDAS | |
162 | #endif | |
163 | #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) | |
164 | # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES | |
165 | #endif | |
166 | #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) | |
167 | # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION | |
168 | #endif | |
169 | #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) | |
170 | # define BOOST_NO_CXX14_VARIABLE_TEMPLATES | |
171 | #endif | |
b32b8144 FG |
172 | |
173 | // C++17 | |
174 | #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) | |
175 | # define BOOST_NO_CXX17_STRUCTURED_BINDINGS | |
176 | #endif | |
177 | #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) | |
178 | # define BOOST_NO_CXX17_INLINE_VARIABLES | |
179 | #endif | |
180 | #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) | |
181 | # define BOOST_NO_CXX17_FOLD_EXPRESSIONS | |
182 | #endif | |
92f5a8d4 TL |
183 | #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) |
184 | # define BOOST_NO_CXX17_IF_CONSTEXPR | |
185 | #endif |