]>
Commit | Line | Data |
---|---|---|
92f5a8d4 TL |
1 | // Copyright 2011 John Maddock |
2 | // Copyright 2013, 2017-2018 Cray, Inc. | |
7c673cae FG |
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 | ||
7 | // See http://www.boost.org for most recent version. | |
8 | ||
92f5a8d4 TL |
9 | // Cray C++ compiler setup. |
10 | // | |
11 | // There are a few parameters that affect the macros defined in this file: | |
12 | // | |
13 | // - What version of CCE (Cray Compiling Environment) are we running? This | |
14 | // comes from the '_RELEASE_MAJOR', '_RELEASE_MINOR', and | |
15 | // '_RELEASE_PATCHLEVEL' macros. | |
16 | // - What C++ standards conformance level are we using (e.g. '-h | |
17 | // std=c++14')? This comes from the '__cplusplus' macro. | |
18 | // - Are we using GCC extensions ('-h gnu' or '-h nognu')? If we have '-h | |
19 | // gnu' then CCE emulates GCC, and the macros '__GNUC__', | |
20 | // '__GNUC_MINOR__', and '__GNUC_PATCHLEVEL__' are defined. | |
21 | // | |
22 | // This file is organized as follows: | |
23 | // | |
24 | // - Verify that the combination of parameters listed above is supported. | |
25 | // If we have an unsupported combination, we abort with '#error'. | |
26 | // - Establish baseline values for all Boost macros. | |
27 | // - Apply changes to the baseline macros based on compiler version. These | |
28 | // changes are cummulative so each version section only describes the | |
29 | // changes since the previous version. | |
30 | // - Within each version section, we may also apply changes based on | |
31 | // other parameters (i.e. C++ standards conformance level and GCC | |
32 | // extensions). | |
33 | // | |
34 | // To test changes to this file: | |
35 | // | |
36 | // ``` | |
37 | // module load cce/8.6.5 # Pick the version you want to test. | |
38 | // cd boost/libs/config/test/all | |
39 | // b2 -j 8 toolset=cray cxxstd=03 cxxstd=11 cxxstd=14 cxxstd-dialect=gnu linkflags=-lrt | |
40 | // ``` | |
41 | // Note: Using 'cxxstd-dialect=iso' is not supported at this time (the | |
42 | // tests run, but many tests fail). | |
43 | // | |
44 | // Note: 'linkflags=-lrt' is needed in Cray Linux Environment. Otherwise | |
45 | // you get an 'undefined reference to clock_gettime' error. | |
46 | // | |
47 | // Note: If a test '*_fail.cpp' file compiles, but fails to run, then it is | |
48 | // reported as a defect. However, this is not actually a defect. This is an | |
49 | // area where the test system is somewhat broken. Tests that are failing | |
50 | // because of this problem are noted in the comments. | |
51 | // | |
52 | // Pay attention to the macro definitions for the macros you wish to | |
53 | // modify. For example, only macros categorized as compiler macros should | |
54 | // appear in this file; platform macros should not appear in this file. | |
55 | // Also, some macros have to be defined to specific values; it is not | |
56 | // always enough to define or undefine a macro. | |
57 | // | |
58 | // Macro definitions are available in the source code at: | |
59 | // | |
60 | // `boost/libs/config/doc/html/boost_config/boost_macro_reference.html` | |
61 | // | |
62 | // Macro definitions are also available online at: | |
63 | // | |
64 | // http://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html | |
65 | // | |
66 | // Typically, if you enable a feature, and the tests pass, then you have | |
67 | // nothing to worry about. However, it's sometimes hard to figure out if a | |
68 | // disabled feature needs to stay disabled. To get a list of disabled | |
69 | // features, run 'b2' in 'boost/libs/config/checks'. These are the macros | |
70 | // you should pay attention to (in addition to macros that cause test | |
71 | // failures). | |
7c673cae | 72 | |
92f5a8d4 TL |
73 | //// |
74 | //// Front matter | |
75 | //// | |
7c673cae | 76 | |
92f5a8d4 TL |
77 | // In a developer build of the Cray compiler (i.e. a compiler built by a |
78 | // Cray employee), the release patch level is reported as "x". This gives | |
79 | // versions that look like e.g. "8.6.x". | |
80 | // | |
81 | // To accomplish this, the the Cray compiler preprocessor inserts: | |
82 | // | |
83 | // #define _RELEASE_PATCHLEVEL x | |
84 | // | |
85 | // If we are using a developer build of the compiler, we want to use the | |
86 | // configuration macros for the most recent patch level of the release. To | |
87 | // accomplish this, we'll pretend that _RELEASE_PATCHLEVEL is 99. | |
88 | // | |
89 | // However, it's difficult to detect if _RELEASE_PATCHLEVEL is x. We must | |
90 | // consider that the x will be expanded if x is defined as a macro | |
91 | // elsewhere. For example, imagine if someone put "-D x=3" on the command | |
92 | // line, and _RELEASE_PATCHLEVEL is x. Then _RELEASE_PATCHLEVEL would | |
93 | // expand to 3, and we could not distinguish it from an actual | |
94 | // _RELEASE_PATCHLEVEL of 3. This problem only affects developer builds; in | |
95 | // production builds, _RELEASE_PATCHLEVEL is always an integer. | |
96 | // | |
97 | // IMPORTANT: In developer builds, if x is defined as a macro, you will get | |
98 | // an incorrect configuration. The behavior in this case is undefined. | |
99 | // | |
100 | // Even if x is not defined, we have to use some trickery to detect if | |
101 | // _RELEASE_PATCHLEVEL is x. First we define BOOST_CRAY_x to some arbitrary | |
102 | // magic value, 9867657. Then we use BOOST_CRAY_APPEND to append the | |
103 | // expanded value of _RELEASE_PATCHLEVEL to the string "BOOST_CRAY_". | |
104 | // | |
105 | // - If _RELEASE_PATCHLEVEL is undefined, we get "BOOST_CRAY_". | |
106 | // - If _RELEASE_PATCHLEVEL is 5, we get "BOOST_CRAY_5". | |
107 | // - If _RELEASE_PATCHLEVEL is x (and x is not defined) we get | |
108 | // "BOOST_CRAY_x": | |
109 | // | |
110 | // Then we check if BOOST_CRAY_x is equal to the output of | |
111 | // BOOST_CRAY_APPEND. In other words, the output of BOOST_CRAY_APPEND is | |
112 | // treated as a macro name, and expanded again. If we can safely assume | |
113 | // that BOOST_CRAY_ is not a macro defined as our magic number, and | |
114 | // BOOST_CRAY_5 is not a macro defined as our magic number, then the only | |
115 | // way the equality test can pass is if _RELEASE_PATCHLEVEL expands to x. | |
116 | // | |
117 | // So, that is how we detect if we are using a developer build of the Cray | |
118 | // compiler. | |
119 | ||
120 | #define BOOST_CRAY_x 9867657 // Arbitrary number | |
121 | #define BOOST_CRAY_APPEND(MACRO) BOOST_CRAY_APPEND_INTERNAL(MACRO) | |
122 | #define BOOST_CRAY_APPEND_INTERNAL(MACRO) BOOST_CRAY_##MACRO | |
123 | ||
124 | #if BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL) | |
125 | ||
126 | // This is a developer build. | |
127 | // | |
128 | // - _RELEASE_PATCHLEVEL is defined as x, and x is not defined as a macro. | |
129 | ||
130 | // Pretend _RELEASE_PATCHLEVEL is 99, so we get the configuration for the | |
131 | // most recent patch level in this release. | |
132 | ||
133 | #define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + 99) | |
134 | ||
135 | #else | |
136 | ||
137 | // This is a production build. | |
138 | // | |
139 | // _RELEASE_PATCHLEVEL is not defined as x, or x is defined as a macro. | |
140 | ||
141 | #define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + _RELEASE_PATCHLEVEL) | |
142 | ||
143 | #endif // BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL) | |
144 | ||
145 | #undef BOOST_CRAY_APPEND_INTERNAL | |
146 | #undef BOOST_CRAY_APPEND | |
147 | #undef BOOST_CRAY_x | |
148 | ||
149 | ||
150 | #ifdef __GNUC__ | |
151 | # define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) | |
7c673cae FG |
152 | #endif |
153 | ||
92f5a8d4 TL |
154 | #ifndef BOOST_COMPILER |
155 | # define BOOST_COMPILER "Cray C++ version " BOOST_STRINGIZE(_RELEASE_MAJOR) "." BOOST_STRINGIZE(_RELEASE_MINOR) "." BOOST_STRINGIZE(_RELEASE_PATCHLEVEL) | |
156 | #endif | |
157 | ||
158 | // Since the Cray compiler defines '__GNUC__', we have to emulate some | |
159 | // additional GCC macros in order to make everything work. | |
7c673cae | 160 | // |
92f5a8d4 TL |
161 | // FIXME: Perhaps Cray should fix the compiler to define these additional |
162 | // macros for GCC emulation? | |
163 | ||
164 | #if __cplusplus >= 201103L && defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) | |
165 | # define __GXX_EXPERIMENTAL_CXX0X__ 1 | |
166 | #endif | |
167 | ||
168 | //// | |
169 | //// Parameter validation | |
170 | //// | |
171 | ||
172 | // FIXME: Do we really need to support compilers before 8.5? Do they pass | |
173 | // the Boost.Config tests? | |
174 | ||
175 | #if BOOST_CRAY_VERSION < 80000 | |
176 | # error "Boost is not configured for Cray compilers prior to version 8, please try the configure script." | |
177 | #endif | |
178 | ||
179 | // We only support recent EDG based compilers. | |
180 | ||
181 | #ifndef __EDG__ | |
7c673cae FG |
182 | # error "Unsupported Cray compiler, please try running the configure script." |
183 | #endif | |
184 | ||
92f5a8d4 TL |
185 | //// |
186 | //// Baseline values | |
187 | //// | |
188 | ||
7c673cae FG |
189 | #include <boost/config/compiler/common_edg.hpp> |
190 | ||
92f5a8d4 TL |
191 | #define BOOST_HAS_NRVO |
192 | #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
7c673cae FG |
193 | #define BOOST_NO_CXX11_AUTO_DECLARATIONS |
194 | #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS | |
92f5a8d4 TL |
195 | #define BOOST_NO_CXX11_CHAR16_T |
196 | #define BOOST_NO_CXX11_CHAR32_T | |
197 | #define BOOST_NO_CXX11_CONSTEXPR | |
198 | #define BOOST_NO_CXX11_DECLTYPE | |
199 | #define BOOST_NO_CXX11_DECLTYPE_N3276 | |
200 | #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS | |
201 | #define BOOST_NO_CXX11_DELETED_FUNCTIONS | |
202 | #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS | |
203 | #define BOOST_NO_CXX11_FINAL | |
20effc67 | 204 | #define BOOST_NO_CXX11_OVERRIDE |
92f5a8d4 | 205 | #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS |
7c673cae FG |
206 | #define BOOST_NO_CXX11_LAMBDAS |
207 | #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS | |
92f5a8d4 TL |
208 | #define BOOST_NO_CXX11_NOEXCEPT |
209 | #define BOOST_NO_CXX11_NULLPTR | |
210 | #define BOOST_NO_CXX11_RANGE_BASED_FOR | |
211 | #define BOOST_NO_CXX11_RAW_LITERALS | |
7c673cae | 212 | #define BOOST_NO_CXX11_REF_QUALIFIERS |
92f5a8d4 TL |
213 | #define BOOST_NO_CXX11_RVALUE_REFERENCES |
214 | #define BOOST_NO_CXX11_SCOPED_ENUMS | |
215 | #define BOOST_NO_CXX11_SFINAE_EXPR | |
216 | #define BOOST_NO_CXX11_STATIC_ASSERT | |
217 | #define BOOST_NO_CXX11_TEMPLATE_ALIASES | |
7c673cae | 218 | #define BOOST_NO_CXX11_THREAD_LOCAL |
92f5a8d4 TL |
219 | #define BOOST_NO_CXX11_UNICODE_LITERALS |
220 | #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
221 | #define BOOST_NO_CXX11_USER_DEFINED_LITERALS | |
222 | #define BOOST_NO_CXX11_VARIADIC_MACROS | |
223 | #define BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
f67539c2 | 224 | #define BOOST_NO_CXX11_UNRESTRICTED_UNION |
92f5a8d4 TL |
225 | #define BOOST_NO_SFINAE_EXPR |
226 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP | |
7c673cae FG |
227 | |
228 | //#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG | |
229 | #define BOOST_MATH_DISABLE_STD_FPCLASSIFY | |
230 | //#define BOOST_HAS_FPCLASSIFY | |
231 | ||
232 | #define BOOST_SP_USE_PTHREADS | |
233 | #define BOOST_AC_USE_PTHREADS | |
234 | ||
92f5a8d4 TL |
235 | // |
236 | // Everything that follows is working around what are thought to be | |
237 | // compiler shortcomings. Revist all of these regularly. | |
238 | // | |
7c673cae FG |
239 | |
240 | //#define BOOST_USE_ENUM_STATIC_ASSERT | |
241 | //#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define | |
242 | ||
92f5a8d4 | 243 | // These constants should be provided by the compiler. |
7c673cae FG |
244 | |
245 | #ifndef __ATOMIC_RELAXED | |
246 | #define __ATOMIC_RELAXED 0 | |
247 | #define __ATOMIC_CONSUME 1 | |
248 | #define __ATOMIC_ACQUIRE 2 | |
249 | #define __ATOMIC_RELEASE 3 | |
250 | #define __ATOMIC_ACQ_REL 4 | |
251 | #define __ATOMIC_SEQ_CST 5 | |
252 | #endif | |
253 | ||
92f5a8d4 TL |
254 | //// |
255 | //// Version changes | |
256 | //// | |
257 | ||
258 | // | |
259 | // 8.5.0 | |
260 | // | |
261 | ||
262 | #if BOOST_CRAY_VERSION >= 80500 | |
263 | ||
264 | #if __cplusplus >= 201103L | |
265 | ||
266 | #undef BOOST_HAS_NRVO | |
267 | #undef BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
268 | #undef BOOST_NO_CXX11_AUTO_DECLARATIONS | |
269 | #undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS | |
270 | #undef BOOST_NO_CXX11_CHAR16_T | |
271 | #undef BOOST_NO_CXX11_CHAR32_T | |
272 | #undef BOOST_NO_CXX11_CONSTEXPR | |
273 | #undef BOOST_NO_CXX11_DECLTYPE | |
274 | #undef BOOST_NO_CXX11_DECLTYPE_N3276 | |
275 | #undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS | |
276 | #undef BOOST_NO_CXX11_DELETED_FUNCTIONS | |
277 | #undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS | |
278 | #undef BOOST_NO_CXX11_FINAL | |
20effc67 | 279 | #undef BOOST_NO_CXX11_OVERRIDE |
92f5a8d4 TL |
280 | #undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS |
281 | #undef BOOST_NO_CXX11_LAMBDAS | |
282 | #undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS | |
283 | #undef BOOST_NO_CXX11_NOEXCEPT | |
284 | #undef BOOST_NO_CXX11_NULLPTR | |
285 | #undef BOOST_NO_CXX11_RANGE_BASED_FOR | |
286 | #undef BOOST_NO_CXX11_RAW_LITERALS | |
287 | #undef BOOST_NO_CXX11_REF_QUALIFIERS | |
288 | #undef BOOST_NO_CXX11_RVALUE_REFERENCES | |
289 | #undef BOOST_NO_CXX11_SCOPED_ENUMS | |
290 | #undef BOOST_NO_CXX11_SFINAE_EXPR | |
291 | #undef BOOST_NO_CXX11_STATIC_ASSERT | |
292 | #undef BOOST_NO_CXX11_TEMPLATE_ALIASES | |
293 | #undef BOOST_NO_CXX11_THREAD_LOCAL | |
294 | #undef BOOST_NO_CXX11_UNICODE_LITERALS | |
295 | #undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
296 | #undef BOOST_NO_CXX11_USER_DEFINED_LITERALS | |
297 | #undef BOOST_NO_CXX11_VARIADIC_MACROS | |
298 | #undef BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
f67539c2 | 299 | #undef BOOST_NO_CXX11_UNRESTRICTED_UNION |
92f5a8d4 TL |
300 | #undef BOOST_NO_SFINAE_EXPR |
301 | #undef BOOST_NO_TWO_PHASE_NAME_LOOKUP | |
302 | #undef BOOST_MATH_DISABLE_STD_FPCLASSIFY | |
303 | #undef BOOST_SP_USE_PTHREADS | |
304 | #undef BOOST_AC_USE_PTHREADS | |
b32b8144 FG |
305 | |
306 | #define BOOST_HAS_VARIADIC_TMPL | |
307 | #define BOOST_HAS_UNISTD_H | |
308 | #define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG | |
309 | #define BOOST_HAS_TR1_COMPLEX_OVERLOADS | |
310 | #define BOOST_HAS_STDINT_H | |
311 | #define BOOST_HAS_STATIC_ASSERT | |
312 | #define BOOST_HAS_SIGACTION | |
313 | #define BOOST_HAS_SCHED_YIELD | |
314 | #define BOOST_HAS_RVALUE_REFS | |
315 | #define BOOST_HAS_PTHREADS | |
316 | #define BOOST_HAS_PTHREAD_YIELD | |
317 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE | |
318 | #define BOOST_HAS_PARTIAL_STD_ALLOCATOR | |
319 | #define BOOST_HAS_NRVO | |
320 | #define BOOST_HAS_NL_TYPES_H | |
321 | #define BOOST_HAS_NANOSLEEP | |
322 | #define BOOST_NO_CXX11_SMART_PTR | |
323 | #define BOOST_NO_CXX11_HDR_FUNCTIONAL | |
324 | #define BOOST_NO_CXX14_CONSTEXPR | |
325 | #define BOOST_HAS_LONG_LONG | |
326 | #define BOOST_HAS_FLOAT128 | |
327 | ||
92f5a8d4 | 328 | #if __cplusplus < 201402L |
b32b8144 | 329 | #define BOOST_NO_CXX11_DECLTYPE_N3276 |
92f5a8d4 TL |
330 | #endif // __cplusplus < 201402L |
331 | ||
332 | #endif // __cplusplus >= 201103L | |
333 | ||
334 | #endif // BOOST_CRAY_VERSION >= 80500 | |
335 | ||
336 | // | |
337 | // 8.6.4 | |
338 | // (versions prior to 8.6.5 do not define _RELEASE_PATCHLEVEL) | |
339 | // | |
340 | ||
341 | #if BOOST_CRAY_VERSION >= 80600 | |
342 | ||
343 | #if __cplusplus >= 199711L | |
344 | #define BOOST_HAS_FLOAT128 | |
345 | #define BOOST_HAS_PTHREAD_YIELD // This is a platform macro, but it improves test results. | |
346 | #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION // This is correct. Test compiles, but fails to run. | |
347 | #undef BOOST_NO_CXX11_CHAR16_T | |
348 | #undef BOOST_NO_CXX11_CHAR32_T | |
349 | #undef BOOST_NO_CXX11_INLINE_NAMESPACES | |
350 | #undef BOOST_NO_CXX11_FINAL | |
20effc67 | 351 | #undef BOOST_NO_CXX11_OVERRIDE |
92f5a8d4 TL |
352 | #undef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS |
353 | #undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS | |
354 | #define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails. | |
355 | #undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
356 | #undef BOOST_NO_CXX11_VARIADIC_MACROS | |
357 | #undef BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
358 | // 'BOOST_NO_DEDUCED_TYPENAME' test is broken. The test files are enabled / | |
359 | // disabled with an '#ifdef BOOST_DEDUCED_TYPENAME'. However, | |
360 | // 'boost/libs/config/include/boost/config/detail/suffix.hpp' ensures that | |
361 | // 'BOOST_DEDUCED_TYPENAME' is always defined (the value it is defined as | |
362 | // depends on 'BOOST_NO_DEDUCED_TYPENAME'). So, modifying | |
363 | // 'BOOST_NO_DEDUCED_TYPENAME' has no effect on which tests are run. | |
364 | // | |
365 | // The 'no_ded_typename_pass.cpp' test should always compile and run | |
366 | // successfully, because 'BOOST_DEDUCED_TYPENAME' must always have an | |
367 | // appropriate value (it's not just something that you turn on or off). | |
368 | // Therefore, if you wish to test changes to 'BOOST_NO_DEDUCED_TYPENAME', | |
369 | // you have to modify 'no_ded_typename_pass.cpp' to unconditionally include | |
370 | // 'boost_no_ded_typename.ipp'. | |
371 | #undef BOOST_NO_DEDUCED_TYPENAME // This is correct. Test is broken. | |
372 | #undef BOOST_NO_SFINAE_EXPR | |
373 | #undef BOOST_NO_TWO_PHASE_NAME_LOOKUP | |
374 | #endif // __cplusplus >= 199711L | |
375 | ||
376 | #if __cplusplus >= 201103L | |
377 | #undef BOOST_NO_CXX11_ALIGNAS | |
378 | #undef BOOST_NO_CXX11_DECLTYPE_N3276 | |
379 | #define BOOST_NO_CXX11_HDR_ATOMIC | |
380 | #undef BOOST_NO_CXX11_HDR_FUNCTIONAL | |
381 | #define BOOST_NO_CXX11_HDR_REGEX // This is correct. Test compiles, but fails to run. | |
382 | #undef BOOST_NO_CXX11_SFINAE_EXPR | |
383 | #undef BOOST_NO_CXX11_SMART_PTR | |
384 | #undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES | |
385 | #endif // __cplusplus >= 201103L | |
386 | ||
387 | #if __cplusplus >= 201402L | |
388 | #undef BOOST_NO_CXX14_CONSTEXPR | |
389 | #define BOOST_NO_CXX14_DIGIT_SEPARATORS | |
390 | #endif // __cplusplus == 201402L | |
391 | ||
392 | #endif // BOOST_CRAY_VERSION >= 80600 | |
393 | ||
394 | // | |
395 | // 8.6.5 | |
396 | // (no change from 8.6.4) | |
397 | // | |
398 | ||
399 | // | |
400 | // 8.7.0 | |
401 | // | |
402 | ||
403 | #if BOOST_CRAY_VERSION >= 80700 | |
404 | ||
405 | #if __cplusplus >= 199711L | |
406 | #endif // __cplusplus >= 199711L | |
407 | ||
408 | #if __cplusplus >= 201103L | |
409 | #undef BOOST_NO_CXX11_HDR_ATOMIC | |
410 | #undef BOOST_NO_CXX11_HDR_REGEX | |
411 | #endif // __cplusplus >= 201103L | |
412 | ||
413 | #if __cplusplus >= 201402L | |
414 | #endif // __cplusplus == 201402L | |
415 | ||
416 | #endif // BOOST_CRAY_VERSION >= 80700 | |
417 | ||
418 | // | |
419 | // Next release | |
420 | // | |
421 | ||
422 | #if BOOST_CRAY_VERSION > 80799 | |
423 | ||
424 | #if __cplusplus >= 199711L | |
425 | #endif // __cplusplus >= 199711L | |
426 | ||
427 | #if __cplusplus >= 201103L | |
428 | #endif // __cplusplus >= 201103L | |
429 | ||
430 | #if __cplusplus >= 201402L | |
431 | #endif // __cplusplus == 201402L | |
b32b8144 | 432 | |
92f5a8d4 | 433 | #endif // BOOST_CRAY_VERSION > 80799 |
b32b8144 | 434 | |
92f5a8d4 TL |
435 | //// |
436 | //// Remove temporary macros | |
437 | //// | |
7c673cae | 438 | |
92f5a8d4 TL |
439 | // I've commented out some '#undef' statements to signify that we purposely |
440 | // want to keep certain macros. | |
7c673cae | 441 | |
92f5a8d4 TL |
442 | //#undef __GXX_EXPERIMENTAL_CXX0X__ |
443 | //#undef BOOST_COMPILER | |
444 | #undef BOOST_GCC_VERSION | |
445 | #undef BOOST_CRAY_VERSION |