]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/config/test/config_info.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / config / test / config_info.cpp
CommitLineData
7c673cae
FG
1// Boost config.hpp configuration test program file -----------------------//
2
3// (C) Copyright John Maddock 2001 - 2003.
4// (C) Copyright Jens Maurer 2001.
5// (C) Copyright Peter Dimov 2001.
6// (C) Copyright Darin Adler 2001.
7// (C) Copyright Beman Dawes 2002.
8// Use, modification and distribution are subject to the
9// Boost Software License, Version 1.0. (See accompanying file
10// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
11
12// See http://www.boost.org/libs/config for most recent version.
13//
14// Revision $Id$
15//
16
17#include <boost/config.hpp>
18#include <boost/version.hpp>
19#include <iostream>
20#include <iomanip>
21#include <string.h>
22#include <limits.h>
23#include <stdlib.h>
24#include <stddef.h>
25
26#ifdef BOOST_HAS_UNISTD_H
27#include <unistd.h>
28#endif
29
30#if defined(__MINGW32__)
31# include <_mingw.h>
32#endif
33
34static unsigned int indent = 4;
35static unsigned int width = 40;
36
37using std::cout;
38using std::istream;
39
40void print_macro(const char* name, const char* value)
41{
42 // if name == value+1 then then macro is not defined,
43 // in which case we don't print anything:
44 if(0 != strcmp(name, value+1))
45 {
46 for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
47 std::cout << std::setw(width);
48 cout.setf(istream::left, istream::adjustfield);
49 std::cout << name;
50 if(value[1])
51 {
52 // macro has a value:
53 std::cout << value << "\n";
54 }
55 else
56 {
57 // macro is defined but has no value:
58 std::cout << " [no value]\n";
59 }
60 }
61}
62
63#define PRINT_MACRO(X) print_macro(#X, BOOST_STRINGIZE(=X))
64
65template <class T>
66void print_expression(const char* expression, T val)
67{
68 for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
69 std::cout << std::setw(width);
70 std::cout.setf(istream::left, istream::adjustfield);
71 std::cout << expression << "=" << val << std::endl;
72}
73
74#define PRINT_EXPRESSION(E) print_expression(#E, E);
75
76template <class T>
77void print_byte_order(const char* what, T /* t */ )
78{
79 T val = 0;
80 unsigned i;
81 for(i = 1; i < sizeof(T); ++i)
82 {
83 val |= (CHAR_BIT * static_cast<T>(i)) << (CHAR_BIT * static_cast<T>(i));
84 }
85 const char* p = reinterpret_cast<const char*>(&val);
86
87 for(i = 0; i < indent; ++i) std::cout.put(' ');
88 std::cout << std::setw(width);
89 std::cout.setf(istream::left, istream::adjustfield);
90 std::cout << what << "=";
91 for(i = 0; i < sizeof(T); ++i)
92 {
93 std::cout << (int)p[i] << " ";
94 }
95 std::cout << std::endl;
96}
97
98#define PRINT_ORDER(T) print_byte_order(BOOST_STRINGIZE(byte order for type T), T())
99
100template <class T>
101void print_sign(const char* what, T t)
102{
103 t = static_cast<T>(-1); // cast suppresses warnings
104 for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
105 std::cout << "Type " << what << " is " << ((t > 0) ? "unsigned" : "signed") << std::endl;
106}
107
108#define PRINT_SIGN(T) print_sign(#T, T())
109
110
111void print_compiler_macros()
112{
113 std::cout << BOOST_COMPILER << "\n";
114 // Borland options:
115 PRINT_MACRO(__BORLANDC__);
116 PRINT_MACRO(__CDECL__);
117 PRINT_MACRO(_CHAR_UNSIGNED);
118 PRINT_MACRO(__CODEGUARD__);
119 PRINT_MACRO(__CONSOLE__);
120 PRINT_MACRO(_CPPUNWIND);
121 PRINT_MACRO(__cplusplus);
122 PRINT_MACRO(__FLAT__);
123 PRINT_MACRO(__FUNC__);
124 PRINT_MACRO(_M_IX86);
125 PRINT_MACRO(__MSDOS__);
126 PRINT_MACRO(__MT__ );
127 PRINT_MACRO(__PASCAL__);
128 PRINT_MACRO(__STDC__);
129 PRINT_MACRO(__TLS__);
130 PRINT_MACRO(_WCHAR_T);
131 PRINT_MACRO(_Windows);
132 PRINT_MACRO(__WIN32__);
133 PRINT_MACRO(_WIN32);
134 PRINT_MACRO(_WIN64);
135 PRINT_MACRO(_WIN32_WCE);
136 PRINT_MACRO(WIN32);
137 PRINT_MACRO(_RTLDLL);
138 PRINT_MACRO(__DEBUG);
139
140// Internal MSVC 7 error workaround (Peter Dimov)
141
142#ifndef _NATIVE_WCHAR_T_DEFINED
143 PRINT_MACRO(_WCHAR_T_DEFINED);
144#endif
145 // MSVC macros:
11fdf7f2
TL
146 PRINT_MACRO(_ALIGNED_NEW_SUPPORTED);
147 PRINT_MACRO(__ATOM__);
148 PRINT_MACRO(__AVX__);
149 PRINT_MACRO(__AVX2__);
150 PRINT_MACRO(_CHAR_UNSIGNED);
151 PRINT_MACRO(_CLR_VER);
152 PRINT_MACRO(_CONTROL_FLOW_GUARD);
153 PRINT_MACRO(__cplusplus_cli);
154 PRINT_MACRO(__cplusplus_winrt);
7c673cae 155 PRINT_MACRO(_CPPRTTI);
11fdf7f2 156 PRINT_MACRO(_CPPUNWIND);
7c673cae 157 PRINT_MACRO(_DLL);
11fdf7f2
TL
158 PRINT_MACRO(_INLINE_VARIABLES_SUPPORTED);
159 PRINT_MACRO(_ISO_VOLATILE);
160 PRINT_MACRO(_M_AMD64);
161 PRINT_MACRO(_M_ARM);
162 PRINT_MACRO(_M_ARM_ARMV7VE);
163 PRINT_MACRO(_M_ARM_FP);
164 PRINT_MACRO(_M_ARM64);
165 PRINT_MACRO(_M_CEE);
166 PRINT_MACRO(_M_CEE_PURE);
167 PRINT_MACRO(_M_CEE_SAFE);
168 PRINT_MACRO(_M_FP_EXCEPT);
169 PRINT_MACRO(_M_FP_FAST);
170 PRINT_MACRO(_M_FP_PRECISE);
171 PRINT_MACRO(_M_FP_STRICT);
172 PRINT_MACRO(_M_IX86);
173 PRINT_MACRO(_M_IX86_FP);
174 PRINT_MACRO(_M_X64);
7c673cae
FG
175 PRINT_MACRO(_M_ALPHA);
176 PRINT_MACRO(_M_MPPC);
177 PRINT_MACRO(_M_MRX000);
178 PRINT_MACRO(_M_PPC);
11fdf7f2
TL
179 PRINT_MACRO(_MANAGED);
180 PRINT_MACRO(_MSC_BUILD);
7c673cae
FG
181 PRINT_MACRO(_MFC_VER);
182 PRINT_MACRO(_MSC_EXTENSIONS);
183 PRINT_MACRO(_MSC_VER);
184 PRINT_MACRO(_MSC_FULL_VER);
b32b8144 185 PRINT_MACRO(_MSVC_LANG);
11fdf7f2
TL
186 PRINT_MACRO(_MSVC_WARNING_LEVEL);
187 PRINT_MACRO(__MSVC_RUNTIME_CHECKS);
7c673cae
FG
188 PRINT_MACRO(_MT);
189 PRINT_MACRO(_NATIVE_WCHAR_T_DEFINED);
11fdf7f2
TL
190 PRINT_MACRO(_NOEXCEPT_TYPES_SUPPORTED);
191 PRINT_MACRO(_OPENMP);
192 PRINT_MACRO(_PREFAST_);
7c673cae
FG
193 // GNUC options:
194 PRINT_MACRO(__GNUC__);
195 PRINT_MACRO(__GNUC_MINOR__);
196 PRINT_MACRO(__GNUC_PATCHLEVEL__);
197 PRINT_MACRO(__STDC_VERSION__);
198 PRINT_MACRO(__GNUG__);
199 PRINT_MACRO(__STRICT_ANSI__);
200 PRINT_MACRO(__GXX_EXPERIMENTAL_CXX0X__);
201 PRINT_MACRO(__VERSION__);
202 PRINT_MACRO(__OPTIMIZE__);
203 PRINT_MACRO(__CHAR_UNSIGNED__);
204 PRINT_MACRO(__REGISTER_PREFIX__);
205 PRINT_MACRO(__USER_LABEL_PREFIX__);
206 PRINT_MACRO(__GNUPRO__);
207 PRINT_MACRO(__EXCEPTIONS);
208 PRINT_MACRO(__FreeBSD__);
209 PRINT_MACRO(__FreeBSD_cc_version);
210 PRINT_MACRO(__ELF__);
211 PRINT_MACRO(__GNUPRO__);
212 PRINT_MACRO(unix);
213 PRINT_MACRO(bsd);
214 PRINT_MACRO(vax);
215 PRINT_MACRO(mc68000);
216 PRINT_MACRO(m68k);
217 PRINT_MACRO(M68020);
218 PRINT_MACRO(_AM29K);
219 PRINT_MACRO(ns32000);
220 PRINT_MACRO(sun);
221 PRINT_MACRO(pyr);
222 PRINT_MACRO(sequent);
223 PRINT_MACRO(__i386__);
224 PRINT_MACRO(__sparc);
225 PRINT_MACRO(__sparc__);
226 PRINT_MACRO(__powerpc__);
227 PRINT_MACRO(__hppa);
228 PRINT_MACRO(__CYGWIN__);
229 PRINT_MACRO(__MINGW32__);
230 PRINT_MACRO(__GXX_RTTI);
11fdf7f2
TL
231 PRINT_MACRO(__alpha__);
232 PRINT_MACRO(__amd64__);
233 PRINT_MACRO(__arm__);
234 PRINT_MACRO(__aarch64__);
235 PRINT_MACRO(__bfin);
236 PRINT_MACRO(__convex__);
237 PRINT_MACRO(__epiphany__);
238 PRINT_MACRO(__hppa__);
239 PRINT_MACRO(__ia64__);
240 PRINT_MACRO(__IA64);
241 PRINT_MACRO(__IA64__);
242 PRINT_MACRO(__m68k__);
243 PRINT_MACRO(__mips__);
244 PRINT_MACRO(__powerpc);
245 PRINT_MACRO(__powerpc__);
246 PRINT_MACRO(__powerpc64__);
247 PRINT_MACRO(__POWERPC__);
248 PRINT_MACRO(__ppc__);
249 PRINT_MACRO(__ppc64__);
250 PRINT_MACRO(__PPC__);
251 PRINT_MACRO(__PPC64__);
252 PRINT_MACRO(_ARCH_PPC);
253 PRINT_MACRO(_ARCH_PPC64);
254 PRINT_MACRO(__sh__);
255 PRINT_MACRO(__370__);
256 PRINT_MACRO(__THW_370__);
7c673cae
FG
257 // HP aCC:
258 PRINT_MACRO(__HP_aCC);
259 PRINT_MACRO(_HPACC_);
260 PRINT_MACRO(__LP64__);
261 PRINT_MACRO(__RISC2_0__);
262 PRINT_MACRO(__STDCPP__);
263 PRINT_MACRO(__hppa);
264 PRINT_MACRO(__hpux);
265 PRINT_MACRO(__hp9000s800);
266 PRINT_MACRO(__hp9000s700);
267 PRINT_MACRO(_PA_RISC1_1);
268 PRINT_MACRO(__HPUX_SOURCE);
269 PRINT_MACRO(_INCLUDE__STDC_A1_SOURCE);
270 // SGI IRIX:
271 PRINT_MACRO(__sgi);
272 PRINT_MACRO(_COMPILER_VERSION);
273 // Sunpro:
274 PRINT_MACRO(__SUNPRO_CC);
275 PRINT_MACRO(__SUNPRO_CC_COMPAT);
276 PRINT_MACRO(__BUILTIN_VA_ARG_INCR);
277 PRINT_MACRO(__sun);
278 PRINT_MACRO(__SVR4);
279 PRINT_MACRO(__unix);
280 PRINT_MACRO(__sparcv9);
281 PRINT_MACRO(__i386);
282 PRINT_MACRO(i386);
283 // Metrowerks
284 PRINT_MACRO(__MWERKS__);
285 PRINT_MACRO(__MSL__);
286 PRINT_MACRO(__MSL_CPP__);
287 PRINT_MACRO(__A5__);
288 PRINT_MACRO(__embedded_cplusplus);
289 PRINT_MACRO(__fourbyteints__);
290 PRINT_MACRO(__IEEEdoubles__);
291 PRINT_MACRO(__MC68K__);
292 PRINT_MACRO(__MC68020__);
293 PRINT_MACRO(__MC68881__);
294 PRINT_MACRO(__MIPS__);
295 PRINT_MACRO(__MIPS_ISA2__);
296 PRINT_MACRO(__MIPS_ISA3__);
297 PRINT_MACRO(__MIPS_ISA4__);
298 PRINT_MACRO(__MWBROWSER__);
299 PRINT_MACRO(__profile__);
300 PRINT_MACRO(__powerc);
301 PRINT_MACRO(_powerc);
302 PRINT_MACRO(__POWERPC__);
303 PRINT_MACRO(macintosh);
304 PRINT_MACRO(__MACH__);
305 PRINT_MACRO(__APPLE__);
306 PRINT_MACRO(__APPLE_CC__);
307 // MPW (MrCpp and SCpp)
308 PRINT_MACRO(__MRC__);
309 PRINT_MACRO(__SC__);
310 PRINT_MACRO(__FPCE__);
311 PRINT_MACRO(__FPCE_IEEE__);
312 PRINT_MACRO(MPW_CPLUS);
313 PRINT_MACRO(MPW_C);
314 PRINT_MACRO(__MC601);
315 PRINT_MACRO(__POWERPC);
316 PRINT_MACRO(__useAppleExts__);
317 PRINT_MACRO(powerc);
318 PRINT_MACRO(MC68000);
319 PRINT_MACRO(THINK_PLUS);
320 PRINT_MACRO(mc68881);
321 PRINT_MACRO(__FAR_CODE__);
322 PRINT_MACRO(__FAR_DATA__);
323 PRINT_MACRO(__CFM68K__);
324 // EDG
325 PRINT_MACRO(__EDG__);
326 PRINT_MACRO(__EDG_VERSION__);
327 PRINT_MACRO(c_plusplus); // indication for strict mode
328 PRINT_MACRO(_BOOL);
329 PRINT_MACRO(_EXPLICIT);
330 PRINT_MACRO(__SIGNED_CHARS__);
331 PRINT_MACRO(_TYPENAME);
332 PRINT_MACRO(_WCHAR_T);
333 PRINT_MACRO(__ARRAY_OPERATORS);
334 PRINT_MACRO(__EDG_ABI_COMPATIBILITY_VERSION);
335 PRINT_MACRO(__EDG_IMPLICIT_USING_STD);
336 PRINT_MACRO(__EDG_RUNTIME_USES_NAMESPACES);
337 PRINT_MACRO(__BOOL_DEFINED);
338 PRINT_MACRO(__RTTI);
339 PRINT_MACRO(__PLACEMENT_DELETE);
340 PRINT_MACRO(__NO_LONG_LONG);
341
342 // Intel options:
343 PRINT_MACRO(__INTEL__);
344 PRINT_MACRO(__ICC);
345 PRINT_MACRO(__ICL);
346 PRINT_MACRO(__ECC);
347 PRINT_MACRO(__INTEL_COMPILER);
348 PRINT_MACRO(__INITIAL_POINTER_SIZE);
349 PRINT_MACRO(_INTEGRAL_MAX_BITS);
350 PRINT_MACRO(__INTEL_COMPILER_BUILD_DATE);
351 PRINT_MACRO(__INTEL_MS_COMPAT_LEVEL);
352 PRINT_MACRO(__LONG_DOUBLE_SIZE__);
353 PRINT_MACRO(_M_X64);
354 PRINT_MACRO(_OPENMP);
355 PRINT_MACRO(_OPENMPT);
356 PRINT_MACRO(_PGO_INSTRUMENT);
357 PRINT_MACRO(__QMSPP_);
358 PRINT_MACRO(__INTEL_RTTI__);
359 PRINT_MACRO(__INTEL_CXX11_MODE__);
360
361 // Cray options:
362 PRINT_MACRO(_CRAYC);
363 PRINT_MACRO(_RELEASE);
364 PRINT_MACRO(cray);
365 PRINT_MACRO(CRAY);
366 PRINT_MACRO(CRAY1);
367 PRINT_MACRO(_CRAY1);
368 PRINT_MACRO(_CRAYMPP);
369 PRINT_MACRO(_CRAYT3E);
370 PRINT_MACRO(_CRAYIEEE);
371 PRINT_MACRO(_ADDR32);
372 PRINT_MACRO(_ADDR64);
373 PRINT_MACRO(_LD64);
374 PRINT_MACRO(_FASTMD);
375 PRINT_MACRO(_MAXVL);
376
b32b8144
FG
377 // clang options:
378 PRINT_MACRO(__clang__);
379 PRINT_MACRO(__clang_major__);
380 PRINT_MACRO(__clang_minor__);
381 PRINT_MACRO(__clang_version__);
382 PRINT_MACRO(__clang_patchlevel__);
1e59de90 383 PRINT_MACRO(__apple_build_version__);
b32b8144 384
7c673cae
FG
385 // misc compilers not covered so far:
386 PRINT_MACRO(__USLC__);
387 PRINT_MACRO(__DECCXX);
388 PRINT_MACRO(__IBMCPP__);
389 PRINT_MACRO(_REENTRANT);
390 PRINT_MACRO(_PTHREADS);
391 PRINT_MACRO(__STDC_HOSTED__);
392 PRINT_MACRO(__COMO__);
393 PRINT_MACRO(__COMO_VERSION__);
394 PRINT_MACRO(__DM__);
395 PRINT_MACRO(__osf__);
396 PRINT_MACRO(__OSF__);
397 PRINT_MACRO(__QNXNTO__);
398 PRINT_MACRO(__QNX__);
399 PRINT_MACRO(_NTO_VERSION);
400 PRINT_MACRO(__OPEN64__);
401 PRINT_MACRO(__open64);
402 PRINT_MACRO(__NVCC__);
403 PRINT_MACRO(__CUDACC__);
404 PRINT_MACRO(__CUDACC_RDC__);
405 PRINT_MACRO(__CUDACC_VER_MAJOR__);
406 PRINT_MACRO(__CUDACC_VER_MINOR__);
407 PRINT_MACRO(__CUDACC_VER_BUILD__);
408 PRINT_MACRO(__CUDACC_VER__);
b32b8144
FG
409
410 // Android:
411 PRINT_MACRO(ANDROID);
412 PRINT_MACRO(__ANDROID__);
7c673cae
FG
413}
414
415void print_stdlib_macros()
416{
417 std::cout << BOOST_STDLIB << std::endl;
418 #ifdef _RWSTD_VER
419 // Rogue Wave 2.x config options:
420 PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
421 PRINT_MACRO(_RWSTD_ALLOCATOR);
422 PRINT_MACRO(_RWSTD_BAD_ALLOC_DEFINED);
423 PRINT_MACRO(_RWSTD_BAD_EXCEPTION_DEFINED);
424 PRINT_MACRO(_RWSTD_BOUNDS_CHECKING);
425 PRINT_MACRO(_RWSTD_COMPILE_INSTANTIATE);
426 PRINT_MACRO(_RWSTD_DEFAULT_PRECISION);
427 PRINT_MACRO(_RWSTD_EXCEPTION_DEFINED);
428 PRINT_MACRO(_RWSTD_EXCEPTION_HANDLER_IN_STD);
429 PRINT_MACRO(_RWSTD_EXCEPTION_PREDEFINED);
430 PRINT_MACRO(_RWSTD_FLT_ROUNDS_IS_CONSTANT);
431 PRINT_MACRO(_RWSTD_LOCALIZED_ERRORS);
432 PRINT_MACRO(_RWSTD_MESSAGE);
433 PRINT_MACRO(_RWSTD_MUTEXATTR_DEFAULT);
434 PRINT_MACRO(_RWSTD_NO_ANSI_SPRINTF);
435 PRINT_MACRO(_RWSTD_NO_ARG_MATCH);
436 PRINT_MACRO(_RWSTD_NO_BAD_CAST);
437 PRINT_MACRO(_RWSTD_NO_BASE_CLASS_MATCH);
438 PRINT_MACRO(_RWSTD_NO_BOOL);
439 PRINT_MACRO(_RWSTD_NO_BUILTIN_CTOR);
440 PRINT_MACRO(_RWSTD_NO_CATOPEN_CATGETS);
441 PRINT_MACRO(_RWSTD_NO_CLASS_PARTIAL_SPEC);
442 PRINT_MACRO(_RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
443 PRINT_MACRO(_RWSTD_NO_COMPLICATED_EXCEPTIONS);
444 PRINT_MACRO(_RWSTD_NO_COMPLICATED_TYPEDEF);
445 PRINT_MACRO(_RWSTD_NO_CONST_INST);
446 PRINT_MACRO(_RWSTD_NO_CTOR_RETURN);
447 PRINT_MACRO(_RWSTD_NO_DEFAULT_FOR_TPARAM);
448 PRINT_MACRO(_RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
449 PRINT_MACRO(_RWSTD_NO_DESTROY_BUILTIN);
450 PRINT_MACRO(_RWSTD_NO_DESTROY_NONBUILTIN);
451 PRINT_MACRO(_RWSTD_NO_EMBEDDED_TYPEDEF);
452 PRINT_MACRO(_RWSTD_NO_EX_SPEC);
453 PRINT_MACRO(_RWSTD_NO_EXCEPTIONS);
454 PRINT_MACRO(_RWSTD_NO_EXPLICIT);
455 PRINT_MACRO(_RWSTD_NO_EXPLICIT_ARG);
456 PRINT_MACRO(_RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
457 PRINT_MACRO(_RWSTD_NO_EXPLICIT_INSTANTIATION);
458 PRINT_MACRO(_RWSTD_NO_EXTENSION);
459 PRINT_MACRO(_RWSTD_NO_FORWARD_SPECIALIZATIONS);
460 PRINT_MACRO(_RWSTD_NO_FPOS_T);
461 PRINT_MACRO(_RWSTD_NO_FRIEND_TEMPLATES);
462 PRINT_MACRO(_RWSTD_NO_FUNC_PARTIAL_SPEC);
463 PRINT_MACRO(_RWSTD_NO_GETTIMEOFDAY);
464 PRINT_MACRO(_RWSTD_NO_GLOBAL_TZ);
465 PRINT_MACRO(_RWSTD_NO_INHERITED_TYPEDEFS);
466 PRINT_MACRO(_RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
467 PRINT_MACRO(_RWSTD_NO_INT_TYPEDEF);
468 PRINT_MACRO(_RWSTD_NO_LDIV);
469 PRINT_MACRO(_RWSTD_NO_LEADING_UNDERSCORE);
470 PRINT_MACRO(_RWSTD_NO_LOCALE);
471 PRINT_MACRO(_RWSTD_NO_LONG_NAME);
472 PRINT_MACRO(_RWSTD_NO_LONGDOUBLE);
473 PRINT_MACRO(_RWSTD_NO_MBSTATE_T);
474 PRINT_MACRO(_RWSTD_NO_MEM_CLASS_TEMPLATES);
475 PRINT_MACRO(_RWSTD_NO_MEMBER_TEMPLATES);
476 PRINT_MACRO(_RWSTD_NO_MEMBER_TYPE_TPARAM);
477 PRINT_MACRO(_RWSTD_NO_MEMBER_WO_DEF_CTOR);
478 PRINT_MACRO(_RWSTD_NO_MEMMOVE);
479 PRINT_MACRO(_RWSTD_NO_MULTI_DIM_ARRAY);
480 PRINT_MACRO(_RWSTD_NO_MUTABLE);
481 PRINT_MACRO(_RWSTD_NO_NAME_INJECTION);
482 PRINT_MACRO(_RWSTD_NO_NAMESPACE);
483 PRINT_MACRO(_RWSTD_NO_NESTING_TEMPLATES);
484 PRINT_MACRO(_RWSTD_NO_NEW_BRACKETS);
485 PRINT_MACRO(_RWSTD_NO_NEW_DECL);
486 PRINT_MACRO(_RWSTD_NO_NEW_HEADER);
487 PRINT_MACRO(_RWSTD_NO_NEW_TEMPLATE_SYNTAX);
488 PRINT_MACRO(_RWSTD_NO_NONCLASS_ARROW_RETURN);
489 PRINT_MACRO(_RWSTD_NO_NONTYPE_ARGS);
490 PRINT_MACRO(_RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
491 PRINT_MACRO(_RWSTD_NO_OVERLOAD_C_POW);
492 PRINT_MACRO(_RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
493 PRINT_MACRO(_RWSTD_NO_OVERLOAD_WCHAR);
494 PRINT_MACRO(_RWSTD_NO_PART_SPEC_OVERLOAD);
495 PRINT_MACRO(_RWSTD_NO_RET_TEMPLATE);
496 PRINT_MACRO(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
497 PRINT_MACRO(_RWSTD_NO_STATIC_CAST);
498 PRINT_MACRO(_RWSTD_NO_STATIC_DEF);
499 PRINT_MACRO(_RWSTD_NO_STATIC_DEF2);
500 PRINT_MACRO(_RWSTD_NO_STATIC_DEF3);
501 PRINT_MACRO(_RWSTD_NO_STATIC_MEM_DEF);
502 PRINT_MACRO(_RWSTD_NO_STI_SIMPLE);
503 PRINT_MACRO(_RWSTD_NO_STI_TEMPLATE);
504 PRINT_MACRO(_RWSTD_NO_STREAM_LONG_DOUBLE);
505 PRINT_MACRO(_RWSTD_NO_STRFTIME_CAPC);
506 PRINT_MACRO(_RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
507 PRINT_MACRO(_RWSTD_NO_SWPRINTF);
508 PRINT_MACRO(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
509 PRINT_MACRO(_RWSTD_NO_TEMPLATE_TEMPLATE);
510 PRINT_MACRO(_RWSTD_NO_THREADS);
511 PRINT_MACRO(_RWSTD_NO_THROW_SPEC_ON_NEW);
512 PRINT_MACRO(_RWSTD_NO_THROW_WITH_SHARED);
513 PRINT_MACRO(_RWSTD_NO_TYPEDEF_INST);
514 PRINT_MACRO(_RWSTD_NO_TYPEDEF_OVERLOAD);
515 PRINT_MACRO(_RWSTD_NO_TYPENAME);
516 PRINT_MACRO(_RWSTD_NO_UNDEFINED_FRIEND);
517 PRINT_MACRO(_RWSTD_NO_UNINITIALIZED_STATIC_DEF);
518 PRINT_MACRO(_RWSTD_NO_WCHAR_H);
519 PRINT_MACRO(_RWSTD_NO_WCTYPE_H);
520 PRINT_MACRO(_RWSTD_NO_WIDE_CHAR);
521 PRINT_MACRO(_RWSTD_NO_WINT_TYPE);
522 PRINT_MACRO(_RWSTD_NO_WSTR);
523 PRINT_MACRO(_RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
524 PRINT_MACRO(_RWSTD_POSIX_D10_THREADS);
525 PRINT_MACRO(_RWSTD_POSIX_THREADS);
526 PRINT_MACRO(_RWSTD_REQUIRES_IEEEFP);
527 PRINT_MACRO(_RWSTD_SOLARIS_THREADS);
528 PRINT_MACRO(_RWSTD_STRUCT_TM_TZ);
529 PRINT_MACRO(_RWSTD_WIDE_STRING_NULL_PROBLEM);
530 #elif defined(__STD_RWCOMPILER_H__)
531 // Rogue Wave 1.x std lib:
532 PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
533 PRINT_MACRO(RWSTD_ALLOCATOR);
534 PRINT_MACRO(RWSTD_BAD_ALLOC_DEFINED);
535 PRINT_MACRO(RWSTD_BAD_EXCEPTION_DEFINED);
536 PRINT_MACRO(RWSTD_BOUNDS_CHECKING);
537 PRINT_MACRO(RWSTD_COMPILE_INSTANTIATE);
538 PRINT_MACRO(RWSTD_DEFAULT_PRECISION);
539 PRINT_MACRO(RWSTD_EXCEPTION_DEFINED);
540 PRINT_MACRO(RWSTD_EXCEPTION_HANDLER_IN_STD);
541 PRINT_MACRO(RWSTD_EXCEPTION_PREDEFINED);
542 PRINT_MACRO(RWSTD_FLT_ROUNDS_IS_CONSTANT);
543 PRINT_MACRO(RWSTD_LOCALIZED_ERRORS);
544 PRINT_MACRO(RWSTD_MESSAGE);
545 PRINT_MACRO(RWSTD_MUTEXATTR_DEFAULT);
546 PRINT_MACRO(RWSTD_NO_ANSI_SPRINTF);
547 PRINT_MACRO(RWSTD_NO_ARG_MATCH);
548 PRINT_MACRO(RWSTD_NO_BAD_CAST);
549 PRINT_MACRO(RWSTD_NO_BASE_CLASS_MATCH);
550 PRINT_MACRO(RWSTD_NO_BOOL);
551 PRINT_MACRO(RWSTD_NO_BUILTIN_CTOR);
552 PRINT_MACRO(RWSTD_NO_CATOPEN_CATGETS);
553 PRINT_MACRO(RWSTD_NO_CLASS_PARTIAL_SPEC);
554 PRINT_MACRO(RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
555 PRINT_MACRO(RWSTD_NO_COMPLICATED_EXCEPTIONS);
556 PRINT_MACRO(RWSTD_NO_COMPLICATED_TYPEDEF);
557 PRINT_MACRO(RWSTD_NO_CONST_INST);
558 PRINT_MACRO(RWSTD_NO_CTOR_RETURN);
559 PRINT_MACRO(RWSTD_NO_DEFAULT_FOR_TPARAM);
560 PRINT_MACRO(RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
561 PRINT_MACRO(RWSTD_NO_DESTROY_BUILTIN);
562 PRINT_MACRO(RWSTD_NO_DESTROY_NONBUILTIN);
563 PRINT_MACRO(RWSTD_NO_EMBEDDED_TYPEDEF);
564 PRINT_MACRO(RWSTD_NO_EX_SPEC);
565 PRINT_MACRO(RWSTD_NO_EXCEPTIONS);
566 PRINT_MACRO(RWSTD_NO_EXPLICIT);
567 PRINT_MACRO(RWSTD_NO_EXPLICIT_ARG);
568 PRINT_MACRO(RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
569 PRINT_MACRO(RWSTD_NO_EXPLICIT_INSTANTIATION);
570 PRINT_MACRO(RWSTD_NO_EXTENSION);
571 PRINT_MACRO(RWSTD_NO_FORWARD_SPECIALIZATIONS);
572 PRINT_MACRO(RWSTD_NO_FPOS_T);
573 PRINT_MACRO(RWSTD_NO_FRIEND_TEMPLATES);
574 PRINT_MACRO(RWSTD_NO_FUNC_PARTIAL_SPEC);
575 PRINT_MACRO(RWSTD_NO_GETTIMEOFDAY);
576 PRINT_MACRO(RWSTD_NO_GLOBAL_TZ);
577 PRINT_MACRO(RWSTD_NO_INHERITED_TYPEDEFS);
578 PRINT_MACRO(RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
579 PRINT_MACRO(RWSTD_NO_INT_TYPEDEF);
580 PRINT_MACRO(RWSTD_NO_LDIV);
581 PRINT_MACRO(RWSTD_NO_LEADING_UNDERSCORE);
582 PRINT_MACRO(RWSTD_NO_LOCALE);
583 PRINT_MACRO(RWSTD_NO_LONG_NAME);
584 PRINT_MACRO(RWSTD_NO_LONGDOUBLE);
585 PRINT_MACRO(RWSTD_NO_MBSTATE_T);
586 PRINT_MACRO(RWSTD_NO_MEM_CLASS_TEMPLATES);
587 PRINT_MACRO(RWSTD_NO_MEMBER_TEMPLATES);
588 PRINT_MACRO(RWSTD_NO_MEMBER_TYPE_TPARAM);
589 PRINT_MACRO(RWSTD_NO_MEMBER_WO_DEF_CTOR);
590 PRINT_MACRO(RWSTD_NO_MEMMOVE);
591 PRINT_MACRO(RWSTD_NO_MULTI_DIM_ARRAY);
592 PRINT_MACRO(RWSTD_NO_MUTABLE);
593 PRINT_MACRO(RWSTD_NO_NAME_INJECTION);
594 PRINT_MACRO(RWSTD_NO_NAMESPACE);
595 PRINT_MACRO(RWSTD_NO_NESTING_TEMPLATES);
596 PRINT_MACRO(RWSTD_NO_NEW_BRACKETS);
597 PRINT_MACRO(RWSTD_NO_NEW_DECL);
598 PRINT_MACRO(RWSTD_NO_NEW_HEADER);
599 PRINT_MACRO(RWSTD_NO_NEW_TEMPLATE_SYNTAX);
600 PRINT_MACRO(RWSTD_NO_NONCLASS_ARROW_RETURN);
601 PRINT_MACRO(RWSTD_NO_NONTYPE_ARGS);
602 PRINT_MACRO(RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
603 PRINT_MACRO(RWSTD_NO_OVERLOAD_C_POW);
604 PRINT_MACRO(RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
605 PRINT_MACRO(RWSTD_NO_OVERLOAD_WCHAR);
606 PRINT_MACRO(RWSTD_NO_PART_SPEC_OVERLOAD);
607 PRINT_MACRO(RWSTD_NO_RET_TEMPLATE);
608 PRINT_MACRO(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
609 PRINT_MACRO(RWSTD_NO_STATIC_CAST);
610 PRINT_MACRO(RWSTD_NO_STATIC_DEF);
611 PRINT_MACRO(RWSTD_NO_STATIC_DEF2);
612 PRINT_MACRO(RWSTD_NO_STATIC_DEF3);
613 PRINT_MACRO(RWSTD_NO_STATIC_MEM_DEF);
614 PRINT_MACRO(RWSTD_NO_STI_SIMPLE);
615 PRINT_MACRO(RWSTD_NO_STI_TEMPLATE);
616 PRINT_MACRO(RWSTD_NO_STREAM_LONG_DOUBLE);
617 PRINT_MACRO(RWSTD_NO_STRFTIME_CAPC);
618 PRINT_MACRO(RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
619 PRINT_MACRO(RWSTD_NO_SWPRINTF);
620 PRINT_MACRO(RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
621 PRINT_MACRO(RWSTD_NO_TEMPLATE_TEMPLATE);
622 PRINT_MACRO(RWSTD_NO_THREADS);
623 PRINT_MACRO(RWSTD_NO_THROW_SPEC_ON_NEW);
624 PRINT_MACRO(RWSTD_NO_THROW_WITH_SHARED);
625 PRINT_MACRO(RWSTD_NO_TYPEDEF_INST);
626 PRINT_MACRO(RWSTD_NO_TYPEDEF_OVERLOAD);
627 PRINT_MACRO(RWSTD_NO_TYPENAME);
628 PRINT_MACRO(RWSTD_NO_UNDEFINED_FRIEND);
629 PRINT_MACRO(RWSTD_NO_UNINITIALIZED_STATIC_DEF);
630 PRINT_MACRO(RWSTD_NO_WCHAR_H);
631 PRINT_MACRO(RWSTD_NO_WCTYPE_H);
632 PRINT_MACRO(RWSTD_NO_WIDE_CHAR);
633 PRINT_MACRO(RWSTD_NO_WINT_TYPE);
634 PRINT_MACRO(RWSTD_NO_WSTR);
635 PRINT_MACRO(RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
636 PRINT_MACRO(RWSTD_POSIX_D10_THREADS);
637 PRINT_MACRO(RWSTD_POSIX_THREADS);
638 PRINT_MACRO(RWSTD_REQUIRES_IEEEFP);
639 PRINT_MACRO(RWSTD_SOLARIS_THREADS);
640 PRINT_MACRO(RWSTD_STRUCT_TM_TZ);
641 PRINT_MACRO(RWSTD_WIDE_STRING_NULL_PROBLEM);
642 #endif
643 // Dinkumware options:
644 PRINT_MACRO(_CPPLIB_VER);
11fdf7f2
TL
645 PRINT_MACRO(_MSVC_STL_VERSION); // VS2017 15.5+
646 PRINT_MACRO(_MSVC_STL_UPDATE); // VS2017 15.5+
7c673cae
FG
647 PRINT_MACRO(_GLOBAL_USING);
648 PRINT_MACRO(_HAS_EXCEPTIONS);
649 PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
650 PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
11fdf7f2
TL
651 // https://blogs.msdn.microsoft.com/vcblog/2016/08/12/stl-fixes-in-vs-2015-update-3/
652 PRINT_MACRO(_HAS_CXX17);
653 PRINT_MACRO(_HAS_AUTO_PTR_ETC);
654 PRINT_MACRO(_HAS_OLD_IOSTREAMS_MEMBERS);
655 PRINT_MACRO(_HAS_FUNCTION_ASSIGN);
656 PRINT_MACRO(_HAS_TR1_NAMESPACE);
657 PRINT_MACRO(_HAS_IDENTITY_STRUCT);
658 // VS2017 15.5+
659 PRINT_MACRO(_HAS_STATIC_RTTI);
660 PRINT_MACRO(_HAS_UNEXPECTED);
661 PRINT_MACRO(_HAS_STD_BYTE);
662 PRINT_MACRO(_HAS_FUNCTION_ALLOCATOR_SUPPORT);
663 PRINT_MACRO(_HAS_TR2_SYS_NAMESPACE);
664 PRINT_MACRO(_ENFORCE_MATCHING_ALLOCATORS);
665 PRINT_MACRO(_HAS_HAS_UNIQUE_OBJECT_REPRESENTATIONS);
666 PRINT_MACRO(_HAS_INLINE_VARIABLES);
667 PRINT_MACRO(_HAS_ALIGNED_NEW);
668 PRINT_MACRO(_HAS_NOEXCEPT_FUNCTION_TYPES);
669 PRINT_MACRO(_ITERATOR_DEBUG_LEVEL);
670 PRINT_MACRO(_HAS_ITERATOR_DEBUGGING);
671 PRINT_MACRO(_ITERATOR_DEBUG_ARRAY_OVERLOADS);
7c673cae
FG
672 // Libc++:
673 PRINT_MACRO(_LIBCPP_VERSION);
674 // STLPort and generic SGI STL options:
675 PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
676 PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
677 PRINT_MACRO(__SGI_STL_PORT);
678 PRINT_MACRO(__STL_AUTOMATIC_TYPE_TRAITS);
679 PRINT_MACRO(__STL_BASE_MATCH_BUG);
680 PRINT_MACRO(__STL_BASE_TYPEDEF_BUG);
681 PRINT_MACRO(__STL_BASE_TYPEDEF_OUTSIDE_BUG);
682 PRINT_MACRO(__STL_BROKEN_USING_DIRECTIVE);
683 PRINT_MACRO(__STL_CONST_CONSTRUCTOR_BUG);
684 PRINT_MACRO(__STL_DEBUG);
685 PRINT_MACRO(__STL_DEBUG_ALLOC);
686 PRINT_MACRO(__STL_DEFAULT_CONSTRUCTOR_BUG);
687 PRINT_MACRO(__STL_DEFAULT_TYPE_PARAM);
688 PRINT_MACRO(__STL_DONT_REDEFINE_STD);
689 PRINT_MACRO(__STL_DONT_USE_BOOL_TYPEDEF);
690 PRINT_MACRO(__STL_HAS_NO_EXCEPTIONS);
691 PRINT_MACRO(__STL_HAS_NO_NAMESPACES);
692 PRINT_MACRO(__STL_HAS_NO_NEW_C_HEADERS);
693 PRINT_MACRO(__STL_HAS_NO_NEW_IOSTREAMS);
694 PRINT_MACRO(__STL_IMPORT_VENDOR_CSTD);
695 PRINT_MACRO(__STL_LIMITED_DEFAULT_TEMPLATES);
696 PRINT_MACRO(__STL_LINK_TIME_INSTANTIATION);
697 PRINT_MACRO(__STL_LONG_LONG);
698 PRINT_MACRO(__STL_LOOP_INLINE_PROBLEMS);
699 PRINT_MACRO(__STL_MEMBER_POINTER_PARAM_BUG);
700 PRINT_MACRO(__STL_NEED_EXPLICIT);
701 PRINT_MACRO(__STL_NEED_MUTABLE);
702 PRINT_MACRO(__STL_NEED_TYPENAME);
703 PRINT_MACRO(__STL_NESTED_TYPE_PARAM_BUG);
704 PRINT_MACRO(__STL_NO_BAD_ALLOC);
705 PRINT_MACRO(__STL_NO_BOOL);
706 PRINT_MACRO(__STL_NO_CLASS_PARTIAL_SPECIALIZATION);
707 PRINT_MACRO(__STL_NO_CSTD_FUNCTION_IMPORTS);
708 PRINT_MACRO(__STL_NO_DEFAULT_NON_TYPE_PARAM);
709 PRINT_MACRO(__STL_NO_EXCEPTION_HEADER);
710 PRINT_MACRO(__STL_NO_EXCEPTION_SPEC);
711 PRINT_MACRO(__STL_NO_EXCEPTIONS);
712 PRINT_MACRO(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
713 PRINT_MACRO(__STL_NO_FRIEND_TEMPLATES);
714 PRINT_MACRO(__STL_NO_FUNCTION_TMPL_PARTIAL_ORDER);
715 PRINT_MACRO(__STL_NO_IOSTREAMS);
716 PRINT_MACRO(__STL_NO_LONG_DOUBLE);
717 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_CLASSES);
718 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_KEYWORD);
719 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATES);
720 PRINT_MACRO(__STL_NO_METHOD_SPECIALIZATION);
721 PRINT_MACRO(__STL_NO_NAMESPACES);
722 PRINT_MACRO(__STL_NO_NEW_IOSTREAMS);
723 PRINT_MACRO(__STL_NO_NEW_NEW_HEADER);
724 PRINT_MACRO(__STL_NO_NEW_STYLE_CASTS);
725 PRINT_MACRO(__STL_NO_PARTIAL_SPECIALIZATION_SYNTAX);
726 PRINT_MACRO(__STL_NO_QUALIFIED_FRIENDS);
727 PRINT_MACRO(__STL_NO_RELOPS_NAMESPACE);
728 PRINT_MACRO(__STL_NO_SGI_IOSTREAMS);
729 PRINT_MACRO(__STL_NO_STATIC_TEMPLATE_DATA);
730 PRINT_MACRO(__STL_NO_TEMPLATE_CONVERSIONS);
731 PRINT_MACRO(__STL_NO_WCHAR_T);
732 PRINT_MACRO(__STL_NON_TYPE_TMPL_PARAM_BUG);
733 PRINT_MACRO(__STL_NONTEMPL_BASE_MATCH_BUG);
734 PRINT_MACRO(__STL_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
735 PRINT_MACRO(__STL_RAND48);
736 PRINT_MACRO(__STL_STATIC_ARRAY_BUG);
737 PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
738 PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
739 PRINT_MACRO(__STL_THROW_RETURN_BUG);
740 PRINT_MACRO(__STL_TRIVIAL_CONSTRUCTOR_BUG);
741 PRINT_MACRO(__STL_TRIVIAL_DESTRUCTOR_BUG);
742 PRINT_MACRO(__STL_UNINITIALIZABLE_PRIVATE);
743 PRINT_MACRO(__STL_USE_ABBREVS);
744 PRINT_MACRO(__STL_USE_DEFALLOC);
745 PRINT_MACRO(__STL_USE_MALLOC);
746 PRINT_MACRO(__STL_USE_NEW_C_HEADERS);
747 PRINT_MACRO(__STL_USE_NEW_IOSTREAMS);
748 PRINT_MACRO(__STL_USE_NEWALLOC);
749 PRINT_MACRO(__STL_USE_OWN_NAMESPACE);
750 PRINT_MACRO(__STL_USE_SGI_ALLOCATORS);
751 PRINT_MACRO(__STL_WCHAR_T_IS_USHORT);
752 PRINT_MACRO(__STL_WEAK_ATTRIBUTE);
753 PRINT_MACRO(__STL_YVALS_H);
754 PRINT_MACRO(_NOTHREADS);
755 PRINT_MACRO(_PTHREADS);
756#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT > 0x0400)
757 PRINT_MACRO(_STLP_AUTOMATIC_TYPE_TRAITS);
758 PRINT_MACRO(_STLP_BASE_MATCH_BUG);
759 PRINT_MACRO(_STLP_BASE_TYPEDEF_BUG);
760 PRINT_MACRO(_STLP_BASE_TYPEDEF_OUTSIDE_BUG);
761 PRINT_MACRO(_STLP_BROKEN_USING_DIRECTIVE);
762 PRINT_MACRO(_STLP_CONST_CONSTRUCTOR_BUG);
763 PRINT_MACRO(_STLP_DEBUG);
764 PRINT_MACRO(_STLP_DEBUG_ALLOC);
765 PRINT_MACRO(_STLP_DEFAULT_CONSTRUCTOR_BUG);
766 PRINT_MACRO(_STLP_DEFAULT_TYPE_PARAM);
767 PRINT_MACRO(_STLP_DONT_REDEFINE_STD);
768 PRINT_MACRO(_STLP_DONT_USE_BOOL_TYPEDEF);
769 PRINT_MACRO(_STLP_HAS_NO_EXCEPTIONS);
770 PRINT_MACRO(_STLP_HAS_NO_NAMESPACES);
771 PRINT_MACRO(_STLP_HAS_NO_NEW_C_HEADERS);
772 PRINT_MACRO(_STLP_HAS_NO_NEW_IOSTREAMS);
773 PRINT_MACRO(_STLP_IMPORT_VENDOR_CSTD);
774 PRINT_MACRO(_STLP_LIMITED_DEFAULT_TEMPLATES);
775 PRINT_MACRO(_STLP_LINK_TIME_INSTANTIATION);
776 PRINT_MACRO(_STLP_LONG_LONG);
777 PRINT_MACRO(_STLP_LOOP_INLINE_PROBLEMS);
778 PRINT_MACRO(_STLP_MEMBER_POINTER_PARAM_BUG);
779 PRINT_MACRO(_STLP_NEED_EXPLICIT);
780 PRINT_MACRO(_STLP_NEED_MUTABLE);
781 PRINT_MACRO(_STLP_NEED_TYPENAME);
782 PRINT_MACRO(_STLP_NESTED_TYPE_PARAM_BUG);
783 PRINT_MACRO(_STLP_NO_ARROW_OPERATOR);
784 PRINT_MACRO(_STLP_NO_BAD_ALLOC);
785 PRINT_MACRO(_STLP_NO_BOOL);
786 PRINT_MACRO(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION);
787 PRINT_MACRO(_STLP_NO_CSTD_FUNCTION_IMPORTS);
788 PRINT_MACRO(_STLP_NO_DEFAULT_NON_TYPE_PARAM);
789 PRINT_MACRO(_STLP_NO_EXCEPTION_HEADER);
790 PRINT_MACRO(_STLP_NO_EXCEPTION_SPEC);
791 PRINT_MACRO(_STLP_NO_EXCEPTIONS);
792 PRINT_MACRO(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
793 PRINT_MACRO(_STLP_NO_FRIEND_TEMPLATES);
794 PRINT_MACRO(_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER);
795 PRINT_MACRO(_STLP_NO_IOSTREAMS);
796 PRINT_MACRO(_STLP_NO_LONG_DOUBLE);
797 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_CLASSES);
798 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_KEYWORD);
799 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATES);
800 PRINT_MACRO(_STLP_NO_METHOD_SPECIALIZATION);
801 PRINT_MACRO(_STLP_NO_NAMESPACES);
802 PRINT_MACRO(_STLP_NO_NEW_IOSTREAMS);
803 PRINT_MACRO(_STLP_NO_NEW_NEW_HEADER);
804 PRINT_MACRO(_STLP_NO_NEW_STYLE_CASTS);
805 PRINT_MACRO(_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX);
806 PRINT_MACRO(_STLP_NO_QUALIFIED_FRIENDS);
807 PRINT_MACRO(_STLP_NO_RELOPS_NAMESPACE);
808 PRINT_MACRO(_STLP_NO_SGI_IOSTREAMS);
809 PRINT_MACRO(_STLP_NO_STATIC_TEMPLATE_DATA);
810 PRINT_MACRO(_STLP_NO_TEMPLATE_CONVERSIONS);
811 PRINT_MACRO(_STLP_NO_WCHAR_T);
812 PRINT_MACRO(_STLP_NON_TYPE_TMPL_PARAM_BUG);
813 PRINT_MACRO(_STLP_NONTEMPL_BASE_MATCH_BUG);
814 PRINT_MACRO(_STLP_OWN_IOSTREAMS);
815 PRINT_MACRO(_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
816 PRINT_MACRO(_STLP_RAND48);
817 PRINT_MACRO(_STLP_STATIC_ARRAY_BUG);
818 PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
819 PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
820 PRINT_MACRO(_STLP_THROW_RETURN_BUG);
821 PRINT_MACRO(_STLP_TRIVIAL_CONSTRUCTOR_BUG);
822 PRINT_MACRO(_STLP_TRIVIAL_DESTRUCTOR_BUG);
823 PRINT_MACRO(_STLP_UNINITIALIZABLE_PRIVATE);
824 PRINT_MACRO(_STLP_USE_ABBREVS);
825 PRINT_MACRO(_STLP_USE_DEFALLOC);
826 PRINT_MACRO(_STLP_USE_MALLOC);
827 PRINT_MACRO(_STLP_USE_NEW_C_HEADERS);
828 PRINT_MACRO(_STLP_USE_NEWALLOC);
829 PRINT_MACRO(_STLP_USE_OWN_NAMESPACE);
830 PRINT_MACRO(_STLP_USE_SGI_ALLOCATORS);
831 PRINT_MACRO(_STLP_WCHAR_T_IS_USHORT);
832 PRINT_MACRO(_STLP_WEAK_ATTRIBUTE);
833 PRINT_MACRO(_STLP_YVALS_H);
834#endif
835 PRINT_MACRO(__GLIBCPP__);
836 PRINT_MACRO(_GLIBCPP_USE_WCHAR_T);
837 PRINT_MACRO(_GLIBCPP_VERSION);
838 PRINT_MACRO(__GLIBCXX__);
839 PRINT_MACRO(_GLIBCXX_USE_WCHAR_T);
840 PRINT_MACRO(_GLIBCXX_VERSION);
841 PRINT_MACRO(_GLIBCXX_USE_LONG_LONG);
842 PRINT_MACRO(_GLIBCXX_USE_NLS);
843 PRINT_MACRO(_GLIBCXX_USE_C99_MATH);
844 PRINT_MACRO(_GLIBCXX_USE_C99);
845 PRINT_MACRO(_GLIBCXX_CONCEPT_CHECKS);
846 PRINT_MACRO(_GLIBCXX_USE_LFS);
847 PRINT_MACRO(_GLIBCXX_SYMVER);
848 PRINT_MACRO(_GLIBCXX_MEM_LIMITS);
849 PRINT_MACRO(_GLIBCXX_HOSTED);
850 PRINT_MACRO(_GLIBCXX_SJLJ_EXCEPTIONS);
11fdf7f2 851 PRINT_MACRO(_GLIBCXX_RELEASE);
f67539c2 852 PRINT_MACRO(_GLIBCXX_USE_FLOAT128);
7c673cae
FG
853
854 // Modena C++ standard library
855 PRINT_MACRO(MSIPL_ANSI_HEADER);
856 PRINT_MACRO(MSIPL_BOOL_BUILTIN);
857 PRINT_MACRO(MSIPL_DEF_EXPLICIT);
858 PRINT_MACRO(MSIPL_DEF_TEMPARG);
859 PRINT_MACRO(MSIPL_EXPINST_ALLOWED);
860 PRINT_MACRO(MSIPL_EXPLICIT_FUNC_TEMPLATE_ARG);
861 PRINT_MACRO(MISPL_EXPLICIT_TEMPLATE_ARGUMENT);
862 PRINT_MACRO(MSIPL_FUNC_TEMPLATE_DEFARG);
863 PRINT_MACRO(MSIPL_MEMBER_TEMPLATE);
864 PRINT_MACRO(MSIPL_MULTITHREAD);
865 PRINT_MACRO(MSIPL_NON_TYPE_TEMPARG);
866 PRINT_MACRO(MSIPL_PARTIAL_TEMPL);
867 PRINT_MACRO(MSIPL_STATIC_CONST_INIT);
868 PRINT_MACRO(MSIPL_TEMPL_NEWSPEC);
869 PRINT_MACRO(MSIPL_TYPENAME);
870 PRINT_MACRO(MSIPL_USING_NAMESPACE);
871 PRINT_MACRO(MSIPL_WCHART);
872}
873
874void print_platform_macros()
875{
876 std::cout << "Detected Platform: " << BOOST_PLATFORM << std::endl;
877 // signedness:
878 PRINT_SIGN(char);
879 PRINT_SIGN(wchar_t);
880 // byte ordering:
881 PRINT_ORDER(short);
882 PRINT_ORDER(int);
883 PRINT_ORDER(long);
884 // sizes:
885 PRINT_EXPRESSION(sizeof(wchar_t));
886 PRINT_EXPRESSION(sizeof(short));
887 PRINT_EXPRESSION(sizeof(int));
888 PRINT_EXPRESSION(sizeof(long));
889 PRINT_EXPRESSION(sizeof(size_t));
890 PRINT_EXPRESSION(sizeof(ptrdiff_t));
891 PRINT_EXPRESSION(sizeof(void*));
892 PRINT_EXPRESSION(sizeof(void(*)(void)));
893 PRINT_EXPRESSION(sizeof(float));
894 PRINT_EXPRESSION(sizeof(double));
895 PRINT_EXPRESSION(sizeof(long double));
896 // limits:
897 PRINT_MACRO(CHAR_BIT);
898 PRINT_MACRO(CHAR_MAX);
899 PRINT_MACRO(WCHAR_MAX);
900 PRINT_MACRO(SHRT_MAX);
901 PRINT_MACRO(INT_MAX);
902 PRINT_MACRO(LONG_MAX);
903 PRINT_MACRO(LLONG_MAX);
904 PRINT_MACRO(LONG_LONG_MAX);
905 PRINT_MACRO(LONGLONG_MAX);
906 PRINT_MACRO(ULLONG_MAX); // <boost/cstdint.hpp> uses these, so we need to know them
907 PRINT_MACRO(ULONG_LONG_MAX);
908 PRINT_MACRO(ULONGLONG_MAX);
909 // general C99:
910 PRINT_MACRO(__STDC_IEC_559__);
911 PRINT_MACRO(__STDC_IEC_559_COMPLEX__);
912 PRINT_MACRO(__STDC_ISO_10646__);
913 // GNU:
914 PRINT_MACRO(__GLIBC__);
915 PRINT_MACRO(__GLIBC_MINOR__);
916 PRINT_MACRO(__GNU_LIBRARY__);
917 PRINT_MACRO(_BSD_SOURCE);
918 PRINT_MACRO(_GNU_SOURCE);
919 PRINT_MACRO(_ISOC99_SOURCE);
920 PRINT_MACRO(_ISOC9X_SOURCE);
921 PRINT_MACRO(_LARGEFILE_SOURCE);
922 PRINT_MACRO(_LARGEFILE64_SOURCE);
923 PRINT_MACRO(_SVID_SOURCE);
924 PRINT_MACRO(_THREAD_SAFE);
925 PRINT_MACRO(_XOPEN_SOURCE_EXTENDED);
926 PRINT_MACRO(XPG);
927 PRINT_MACRO(__MINGW32_MAJOR_VERSION);
928 PRINT_MACRO(__MINGW32_MINOR_VERSION);
929 // POSIX:
930 PRINT_MACRO(_POSIX_ADVISORY_INFO);
931 PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO);
932 PRINT_MACRO(_POSIX_BARRIERS);
933 PRINT_MACRO(_POSIX_C_SOURCE);
934 PRINT_MACRO(_POSIX_CHOWN_RESTRICTED);
935 PRINT_MACRO(_POSIX_CLOCK_SELECTION);
936 PRINT_MACRO(_POSIX_CPUTIME);
937 PRINT_MACRO(_POSIX_FSYNC);
938 PRINT_MACRO(_POSIX_JOB_CONTROL);
939 PRINT_MACRO(_POSIX_MAPPED_FILES);
940 PRINT_MACRO(_POSIX_MEMLOCK);
941 PRINT_MACRO(_POSIX_MEMLOCK_RANGE);
942 PRINT_MACRO(_POSIX_MEMORY_PROTECTION);
943 PRINT_MACRO(_POSIX_MESSAGE_PASSING);
944 PRINT_MACRO(_POSIX_MONOTONIC_CLOCK);
945 PRINT_MACRO(_POSIX_NO_TRUNC);
946 PRINT_MACRO(_POSIX_PRIORITIZED_IO);
947 PRINT_MACRO(_POSIX_PRIORITY_SCHEDULING);
948 PRINT_MACRO(_POSIX_RAW_SOCKETS);
949 PRINT_MACRO(_POSIX_READER_WRITER_LOCKS);
950 PRINT_MACRO(_POSIX_REALTIME_SIGNALS);
951 PRINT_MACRO(_POSIX_REGEXP);
952 PRINT_MACRO(_POSIX_SAVED_IDS);
953 PRINT_MACRO(_POSIX_SEMAPHORES);
954 PRINT_MACRO(_POSIX_SHARED_MEMORY_OBJECTS);
955 PRINT_MACRO(_POSIX_SHELL);
956 PRINT_MACRO(_POSIX_SOURCE);
957 PRINT_MACRO(_POSIX_SPAWN);
958 PRINT_MACRO(_POSIX_SPIN_LOCKS);
959 PRINT_MACRO(_POSIX_SPORADIC_SERVER);
960 PRINT_MACRO(_POSIX_SYNCHRONIZED_IO);
961 PRINT_MACRO(_POSIX_THREAD_ATTR_STACKADDR);
962 PRINT_MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
963 PRINT_MACRO(_POSIX_THREAD_CPUTIME);
964 PRINT_MACRO(_POSIX_THREAD_PRIO_INHERIT);
965 PRINT_MACRO(_POSIX_THREAD_PRIO_PROTECT);
966 PRINT_MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
967 PRINT_MACRO(_POSIX_THREAD_PROCESS_SHARED);
968 PRINT_MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
969 PRINT_MACRO(_POSIX_THREAD_SPORADIC_SERVER);
970 PRINT_MACRO(_POSIX_THREADS);
971 PRINT_MACRO(_POSIX_TIMEOUTS);
972 PRINT_MACRO(_POSIX_TIMERS);
973 PRINT_MACRO(_POSIX_TRACE);
974 PRINT_MACRO(_POSIX_TRACE_EVENT_FILTER);
975 PRINT_MACRO(_POSIX_TRACE_INHERIT);
976 PRINT_MACRO(_POSIX_TRACE_LOG);
977 PRINT_MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
978 PRINT_MACRO(_POSIX_VDISABLE);
979 PRINT_MACRO(_POSIX_VERSION);
980 PRINT_MACRO(_POSIX2_C_BIND);
981 PRINT_MACRO(_POSIX2_C_DEV);
982 PRINT_MACRO(_POSIX2_CHAR_TERM);
983 PRINT_MACRO(_POSIX2_FORT_DEV);
984 PRINT_MACRO(_POSIX2_FORT_RUN);
985 PRINT_MACRO(_POSIX2_LOCALEDEF);
986 PRINT_MACRO(_POSIX2_PBS);
987 PRINT_MACRO(_POSIX2_PBS_ACCOUNTING);
988 PRINT_MACRO(_POSIX2_PBS_CHECKPOINT);
989 PRINT_MACRO(_POSIX2_PBS_LOCATE);
990 PRINT_MACRO(_POSIX2_PBS_MESSAGE);
991 PRINT_MACRO(_POSIX2_PBS_TRACK);
992 PRINT_MACRO(_POSIX2_SW_DEV);
993 PRINT_MACRO(_POSIX2_UPE);
994 PRINT_MACRO(_POSIX2_VERSION);
995 PRINT_MACRO(_V6_ILP32_OFF32);
996 PRINT_MACRO(_V6_ILP32_OFFBIG);
997 PRINT_MACRO(_V6_LP64_OFF64);
998 PRINT_MACRO(_V6_LPBIG_OFFBIG);
999 PRINT_MACRO(_XBS5_ILP32_OFF32);
1000 PRINT_MACRO(_XBS5_ILP32_OFFBIG);
1001 PRINT_MACRO(_XBS5_LP64_OFF64);
1002 PRINT_MACRO(_XBS5_LPBIG_OFFBIG);
1003 PRINT_MACRO(_XOPEN_CRYPT);
1004 PRINT_MACRO(_XOPEN_ENH_I18N);
1005 PRINT_MACRO(_XOPEN_LEGACY);
1006 PRINT_MACRO(_XOPEN_REALTIME);
1007 PRINT_MACRO(_XOPEN_REALTIME_THREADS);
1008 PRINT_MACRO(_XOPEN_SHM);
1009 PRINT_MACRO(_XOPEN_SOURCE);
1010 PRINT_MACRO(_XOPEN_STREAMS);
1011 PRINT_MACRO(_XOPEN_UNIX);
1012 PRINT_MACRO(_XOPEN_VERSION);
1013 // Misc:
1014 PRINT_MACRO(__USE_BSD);
1015 PRINT_MACRO(_FILE_OFFSET_BITS);
1016}
1017
1018void print_boost_macros()
1019{
1020 std::cout << "Boost version " << BOOST_STRINGIZE(BOOST_VERSION) << std::endl;
1021 // config setup macros first:
1022 PRINT_MACRO(BOOST_USER_CONFIG);
1023 PRINT_MACRO(BOOST_COMPILER_CONFIG);
1024 PRINT_MACRO(BOOST_STDLIB_CONFIG);
1025 PRINT_MACRO(BOOST_PLATFORM_CONFIG);
1026 PRINT_MACRO(BOOST_NO_CONFIG);
1027 PRINT_MACRO(BOOST_NO_USER_CONFIG);
1028 PRINT_MACRO(BOOST_NO_COMPILER_CONFIG);
1029 PRINT_MACRO(BOOST_NO_STDLIB_CONFIG);
1030 PRINT_MACRO(BOOST_NO_PLATFORM_CONFIG);
1031 // then defect and feature macros:
1032 PRINT_MACRO(BOOST_DISABLE_THREADS);
1033 PRINT_MACRO(BOOST_DISABLE_WIN32);
1034 PRINT_MACRO(BOOST_HAS_THREADS);
1035 PRINT_MACRO(BOOST_WINDOWS);
1036
1037 // BEGIN GENERATED BLOCK DO NOT EDIT THIS!!!!!!
1038 PRINT_MACRO(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG);
1039 PRINT_MACRO(BOOST_DEDUCED_TYPENAME);
1040 PRINT_MACRO(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL);
1041 PRINT_MACRO(BOOST_HAS_BETHREADS);
1042 PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
1043 PRINT_MACRO(BOOST_HAS_DIRENT_H);
1044 PRINT_MACRO(BOOST_HAS_EXPM1);
1045 PRINT_MACRO(BOOST_HAS_FLOAT128);
1046 PRINT_MACRO(BOOST_HAS_FTIME);
1047 PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
1048 PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
1049 PRINT_MACRO(BOOST_HAS_HASH);
1050 PRINT_MACRO(BOOST_HAS_INT128);
1051 PRINT_MACRO(BOOST_HAS_LOG1P);
1052 PRINT_MACRO(BOOST_HAS_LONG_LONG);
1053 PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
1054 PRINT_MACRO(BOOST_HAS_MS_INT64);
1055 PRINT_MACRO(BOOST_HAS_NANOSLEEP);
1056 PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
1057 PRINT_MACRO(BOOST_HAS_NRVO);
1058 PRINT_MACRO(BOOST_HAS_PARTIAL_STD_ALLOCATOR);
92f5a8d4 1059 PRINT_MACRO(BOOST_HAS_PRAGMA_DETECT_MISMATCH);
7c673cae
FG
1060 PRINT_MACRO(BOOST_HAS_PTHREADS);
1061 PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
1062 PRINT_MACRO(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE);
1063 PRINT_MACRO(BOOST_HAS_PTHREAD_YIELD);
1064 PRINT_MACRO(BOOST_HAS_RVALUE_REFS);
1065 PRINT_MACRO(BOOST_HAS_SCHED_YIELD);
1066 PRINT_MACRO(BOOST_HAS_SGI_TYPE_TRAITS);
1067 PRINT_MACRO(BOOST_HAS_SIGACTION);
1068 PRINT_MACRO(BOOST_HAS_SLIST);
1069 PRINT_MACRO(BOOST_HAS_STATIC_ASSERT);
1070 PRINT_MACRO(BOOST_HAS_STDINT_H);
1071 PRINT_MACRO(BOOST_HAS_STLP_USE_FACET);
7c673cae
FG
1072 PRINT_MACRO(BOOST_HAS_TWO_ARG_USE_FACET);
1073 PRINT_MACRO(BOOST_HAS_UNISTD_H);
1074 PRINT_MACRO(BOOST_HAS_VARIADIC_TMPL);
1075 PRINT_MACRO(BOOST_HAS_WINTHREADS);
1076 PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
1077 PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
1078 PRINT_MACRO(BOOST_NO_ADL_BARRIER);
1079 PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
1080 PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS);
1081 PRINT_MACRO(BOOST_NO_AUTO_PTR);
1082 PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
1083 PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
1084 PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
1085 PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
1086 PRINT_MACRO(BOOST_NO_CWCHAR);
1087 PRINT_MACRO(BOOST_NO_CWCTYPE);
1e59de90
TL
1088 PRINT_MACRO(BOOST_NO_CXX03);
1089 PRINT_MACRO(BOOST_NO_CXX11);
7c673cae
FG
1090 PRINT_MACRO(BOOST_NO_CXX11_ADDRESSOF);
1091 PRINT_MACRO(BOOST_NO_CXX11_ALIGNAS);
1092 PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR);
1093 PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR);
1094 PRINT_MACRO(BOOST_NO_CXX11_AUTO_DECLARATIONS);
1095 PRINT_MACRO(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS);
1096 PRINT_MACRO(BOOST_NO_CXX11_CHAR16_T);
1097 PRINT_MACRO(BOOST_NO_CXX11_CHAR32_T);
1098 PRINT_MACRO(BOOST_NO_CXX11_CONSTEXPR);
1099 PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE);
1100 PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE_N3276);
1101 PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS);
11fdf7f2 1102 PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_MOVES);
7c673cae
FG
1103 PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
1104 PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
1105 PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
1106 PRINT_MACRO(BOOST_NO_CXX11_FINAL);
1107 PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
1108 PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
1109 PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
1110 PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
1111 PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO);
1112 PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT);
1113 PRINT_MACRO(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE);
92f5a8d4 1114 PRINT_MACRO(BOOST_NO_CXX11_HDR_EXCEPTION);
7c673cae
FG
1115 PRINT_MACRO(BOOST_NO_CXX11_HDR_FORWARD_LIST);
1116 PRINT_MACRO(BOOST_NO_CXX11_HDR_FUNCTIONAL);
1117 PRINT_MACRO(BOOST_NO_CXX11_HDR_FUTURE);
1118 PRINT_MACRO(BOOST_NO_CXX11_HDR_INITIALIZER_LIST);
1119 PRINT_MACRO(BOOST_NO_CXX11_HDR_MUTEX);
1120 PRINT_MACRO(BOOST_NO_CXX11_HDR_RANDOM);
1121 PRINT_MACRO(BOOST_NO_CXX11_HDR_RATIO);
1122 PRINT_MACRO(BOOST_NO_CXX11_HDR_REGEX);
1123 PRINT_MACRO(BOOST_NO_CXX11_HDR_SYSTEM_ERROR);
1124 PRINT_MACRO(BOOST_NO_CXX11_HDR_THREAD);
1125 PRINT_MACRO(BOOST_NO_CXX11_HDR_TUPLE);
1126 PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPEINDEX);
1127 PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPE_TRAITS);
1128 PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_MAP);
1129 PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_SET);
1130 PRINT_MACRO(BOOST_NO_CXX11_INLINE_NAMESPACES);
1131 PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
1132 PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
1133 PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
1134 PRINT_MACRO(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS);
1135 PRINT_MACRO(BOOST_NO_CXX11_NULLPTR);
1136 PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
20effc67 1137 PRINT_MACRO(BOOST_NO_CXX11_OVERRIDE);
b32b8144 1138 PRINT_MACRO(BOOST_NO_CXX11_POINTER_TRAITS);
7c673cae
FG
1139 PRINT_MACRO(BOOST_NO_CXX11_RANGE_BASED_FOR);
1140 PRINT_MACRO(BOOST_NO_CXX11_RAW_LITERALS);
1141 PRINT_MACRO(BOOST_NO_CXX11_REF_QUALIFIERS);
1142 PRINT_MACRO(BOOST_NO_CXX11_RVALUE_REFERENCES);
1143 PRINT_MACRO(BOOST_NO_CXX11_SCOPED_ENUMS);
b32b8144 1144 PRINT_MACRO(BOOST_NO_CXX11_SFINAE_EXPR);
7c673cae
FG
1145 PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR);
1146 PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT);
1147 PRINT_MACRO(BOOST_NO_CXX11_STD_ALIGN);
1148 PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES);
1149 PRINT_MACRO(BOOST_NO_CXX11_THREAD_LOCAL);
1150 PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
1151 PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
1152 PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
1e59de90 1153 PRINT_MACRO(BOOST_NO_CXX11_UNRESTRICTED_UNION);
7c673cae
FG
1154 PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
1155 PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
1156 PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
1e59de90 1157 PRINT_MACRO(BOOST_NO_CXX14);
7c673cae
FG
1158 PRINT_MACRO(BOOST_NO_CXX14_AGGREGATE_NSDMI);
1159 PRINT_MACRO(BOOST_NO_CXX14_BINARY_LITERALS);
1160 PRINT_MACRO(BOOST_NO_CXX14_CONSTEXPR);
1161 PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO);
1162 PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS);
1163 PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS);
1164 PRINT_MACRO(BOOST_NO_CXX14_HDR_SHARED_MUTEX);
1165 PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES);
1166 PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION);
b32b8144 1167 PRINT_MACRO(BOOST_NO_CXX14_STD_EXCHANGE);
7c673cae 1168 PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
1e59de90 1169 PRINT_MACRO(BOOST_NO_CXX17);
b32b8144 1170 PRINT_MACRO(BOOST_NO_CXX17_FOLD_EXPRESSIONS);
1e59de90
TL
1171 PRINT_MACRO(BOOST_NO_CXX17_HDR_ANY);
1172 PRINT_MACRO(BOOST_NO_CXX17_HDR_CHARCONV);
1173 PRINT_MACRO(BOOST_NO_CXX17_HDR_EXECUTION);
1174 PRINT_MACRO(BOOST_NO_CXX17_HDR_FILESYSTEM);
1175 PRINT_MACRO(BOOST_NO_CXX17_HDR_MEMORY_RESOURCE);
92f5a8d4
TL
1176 PRINT_MACRO(BOOST_NO_CXX17_HDR_OPTIONAL);
1177 PRINT_MACRO(BOOST_NO_CXX17_HDR_STRING_VIEW);
1178 PRINT_MACRO(BOOST_NO_CXX17_HDR_VARIANT);
1179 PRINT_MACRO(BOOST_NO_CXX17_IF_CONSTEXPR);
b32b8144
FG
1180 PRINT_MACRO(BOOST_NO_CXX17_INLINE_VARIABLES);
1181 PRINT_MACRO(BOOST_NO_CXX17_ITERATOR_TRAITS);
1182 PRINT_MACRO(BOOST_NO_CXX17_STD_APPLY);
7c673cae 1183 PRINT_MACRO(BOOST_NO_CXX17_STD_INVOKE);
b32b8144 1184 PRINT_MACRO(BOOST_NO_CXX17_STRUCTURED_BINDINGS);
1e59de90
TL
1185 PRINT_MACRO(BOOST_NO_CXX20_HDR_BARRIER);
1186 PRINT_MACRO(BOOST_NO_CXX20_HDR_BIT);
1187 PRINT_MACRO(BOOST_NO_CXX20_HDR_COMPARE);
1188 PRINT_MACRO(BOOST_NO_CXX20_HDR_CONCEPTS);
1189 PRINT_MACRO(BOOST_NO_CXX20_HDR_COROUTINE);
1190 PRINT_MACRO(BOOST_NO_CXX20_HDR_FORMAT);
1191 PRINT_MACRO(BOOST_NO_CXX20_HDR_LATCH);
1192 PRINT_MACRO(BOOST_NO_CXX20_HDR_NUMBERS);
1193 PRINT_MACRO(BOOST_NO_CXX20_HDR_RANGES);
1194 PRINT_MACRO(BOOST_NO_CXX20_HDR_SEMAPHORE);
1195 PRINT_MACRO(BOOST_NO_CXX20_HDR_SOURCE_LOCATION);
1196 PRINT_MACRO(BOOST_NO_CXX20_HDR_SPAN);
1197 PRINT_MACRO(BOOST_NO_CXX20_HDR_STOP_TOKEN);
1198 PRINT_MACRO(BOOST_NO_CXX20_HDR_SYNCSTREAM);
1199 PRINT_MACRO(BOOST_NO_CXX20_HDR_VERSION);
b32b8144
FG
1200 PRINT_MACRO(BOOST_NO_CXX98_BINDERS);
1201 PRINT_MACRO(BOOST_NO_CXX98_FUNCTION_BASE);
1202 PRINT_MACRO(BOOST_NO_CXX98_RANDOM_SHUFFLE);
7c673cae
FG
1203 PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
1204 PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
1205 PRINT_MACRO(BOOST_NO_EXCEPTIONS);
1206 PRINT_MACRO(BOOST_NO_EXCEPTION_STD_NAMESPACE);
1207 PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
1208 PRINT_MACRO(BOOST_NO_FENV_H);
1209 PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
1210 PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
1211 PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
1212 PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
1213 PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
1214 PRINT_MACRO(BOOST_NO_IOSFWD);
1215 PRINT_MACRO(BOOST_NO_IOSTREAM);
1216 PRINT_MACRO(BOOST_NO_IS_ABSTRACT);
1217 PRINT_MACRO(BOOST_NO_LIMITS);
1218 PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
1219 PRINT_MACRO(BOOST_NO_LONG_LONG);
1220 PRINT_MACRO(BOOST_NO_LONG_LONG_NUMERIC_LIMITS);
1221 PRINT_MACRO(BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS);
1222 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATES);
1223 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS);
1224 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
1225 PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
1226 PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP);
1227 PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
1228 PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
1229 PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
1230 PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS);
1231 PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE);
b32b8144 1232 PRINT_MACRO(BOOST_NO_RESTRICT_REFERENCES);
7c673cae
FG
1233 PRINT_MACRO(BOOST_NO_RTTI);
1234 PRINT_MACRO(BOOST_NO_SFINAE);
1235 PRINT_MACRO(BOOST_NO_SFINAE_EXPR);
1236 PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
1237 PRINT_MACRO(BOOST_NO_STD_ALLOCATOR);
1238 PRINT_MACRO(BOOST_NO_STD_DISTANCE);
1239 PRINT_MACRO(BOOST_NO_STD_ITERATOR);
1240 PRINT_MACRO(BOOST_NO_STD_ITERATOR_TRAITS);
1241 PRINT_MACRO(BOOST_NO_STD_LOCALE);
1242 PRINT_MACRO(BOOST_NO_STD_MESSAGES);
1243 PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
1244 PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
1245 PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
1246 PRINT_MACRO(BOOST_NO_STD_USE_FACET);
1247 PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
1248 PRINT_MACRO(BOOST_NO_STD_WSTRING);
1249 PRINT_MACRO(BOOST_NO_STRINGSTREAM);
1250 PRINT_MACRO(BOOST_NO_SWPRINTF);
1251 PRINT_MACRO(BOOST_NO_TEMPLATED_IOSTREAMS);
1252 PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
1253 PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
1254 PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
1255 PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
1256 PRINT_MACRO(BOOST_NO_TYPEID);
1257 PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR);
1258 PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
1259 PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
1260 PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
1261 PRINT_MACRO(BOOST_NO_VOID_RETURNS);
1262
1263
20effc67 1264
1e59de90
TL
1265
1266
1267
1268
7c673cae
FG
1269 // END GENERATED BLOCK
1270
1e59de90 1271 PRINT_MACRO(BOOST_CXX_VERSION);
7c673cae
FG
1272 PRINT_MACRO(BOOST_INTEL);
1273 PRINT_MACRO(BOOST_MSVC);
11fdf7f2 1274 PRINT_MACRO(BOOST_GCC);
1e59de90
TL
1275 PRINT_MACRO(BOOST_CLANG);
1276 PRINT_MACRO(BOOST_CLANG_VERSION);
11fdf7f2 1277 PRINT_MACRO(BOOST_LIBSTDCXX_VERSION);
7c673cae
FG
1278 PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
1279 PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0));
1280 PRINT_MACRO(BOOST_CONSTEXPR);
1281 PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
1282 PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
1283 PRINT_MACRO(BOOST_NOEXCEPT);
1284 PRINT_MACRO(BOOST_FORCEINLINE);
1285 PRINT_MACRO(BOOST_NOINLINE);
1286 PRINT_MACRO(BOOST_FALLTHROUGH);
b32b8144
FG
1287 PRINT_MACRO(BOOST_MAY_ALIAS);
1288 PRINT_MACRO(BOOST_NO_MAY_ALIAS);
92f5a8d4
TL
1289 PRINT_MACRO(BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS);
1290 PRINT_MACRO(BOOST_ATTRIBUTE_UNUSED);
1291 PRINT_MACRO(BOOST_UNLIKELY);
1292 PRINT_MACRO(BOOST_NORETURN);
7c673cae
FG
1293}
1294
1e59de90
TL
1295#ifdef __has_include
1296#if __has_include(<version>)
1297# include <version>
1298#endif
1299#if __has_include(<atomic>) && (BOOST_CXX_VERSION > 201100)
1300# include <atomic>
1301#endif
1302#endif
1303
11fdf7f2
TL
1304void print_sd6_macros()
1305{
1306 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0096r5.html
1307
1e59de90
TL
1308 // Library macros are only really available if we have <version> :
1309
1310 PRINT_MACRO(__cpp_lib_addressof_constexpr);
1311 PRINT_MACRO(__cpp_lib_allocator_traits_is_always_equal);
1312 PRINT_MACRO(__cpp_lib_any);
1313 PRINT_MACRO(__cpp_lib_apply);
1314 PRINT_MACRO(__cpp_lib_array_constexpr);
1315 PRINT_MACRO(__cpp_lib_as_const);
1316 PRINT_MACRO(__cpp_lib_assume_aligned);
1317 PRINT_MACRO(__cpp_lib_atomic_flag_test);
1318 PRINT_MACRO(__cpp_lib_atomic_float);
1319 PRINT_MACRO(__cpp_lib_atomic_is_always_lock_free);
1320 PRINT_MACRO(__cpp_lib_atomic_lock_free_type_aliases);
1321 PRINT_MACRO(__cpp_lib_atomic_ref);
1322 PRINT_MACRO(__cpp_lib_atomic_shared_ptr);
1323 PRINT_MACRO(__cpp_lib_atomic_value_initialization);
1324 PRINT_MACRO(__cpp_lib_atomic_wait);
1325 PRINT_MACRO(__cpp_lib_barrier);
1326 PRINT_MACRO(__cpp_lib_bind_front);
1327 PRINT_MACRO(__cpp_lib_bit_cast);
1328 PRINT_MACRO(__cpp_lib_bitops);
1329 PRINT_MACRO(__cpp_lib_bool_constant);
1330 PRINT_MACRO(__cpp_lib_bounded_array_traits);
1331 PRINT_MACRO(__cpp_lib_boyer_moore_searcher);
1332 PRINT_MACRO(__cpp_lib_byte);
1333 PRINT_MACRO(__cpp_lib_char8_t);
1334 PRINT_MACRO(__cpp_lib_chrono);
1335 PRINT_MACRO(__cpp_lib_chrono_udls);
1336 PRINT_MACRO(__cpp_lib_clamp);
1337 PRINT_MACRO(__cpp_lib_complex_udls);
1338 PRINT_MACRO(__cpp_lib_concepts);
1339 PRINT_MACRO(__cpp_lib_constexpr_algorithms);
1340 PRINT_MACRO(__cpp_lib_constexpr_complex);
1341 PRINT_MACRO(__cpp_lib_constexpr_dynamic_alloc);
1342 PRINT_MACRO(__cpp_lib_constexpr_functional);
1343 PRINT_MACRO(__cpp_lib_constexpr_iterator);
1344 PRINT_MACRO(__cpp_lib_constexpr_memory);
1345 PRINT_MACRO(__cpp_lib_constexpr_numeric);
1346 PRINT_MACRO(__cpp_lib_constexpr_string);
1347 PRINT_MACRO(__cpp_lib_constexpr_string_view);
1348 PRINT_MACRO(__cpp_lib_constexpr_tuple);
1349 PRINT_MACRO(__cpp_lib_constexpr_utility);
1350 PRINT_MACRO(__cpp_lib_constexpr_vector);
1351 PRINT_MACRO(__cpp_lib_coroutine);
1352 PRINT_MACRO(__cpp_lib_destroying_delete);
1353 PRINT_MACRO(__cpp_lib_enable_shared_from_this);
1354 PRINT_MACRO(__cpp_lib_endian);
1355 PRINT_MACRO(__cpp_lib_erase_if);
1356 PRINT_MACRO(__cpp_lib_exchange_function);
1357 PRINT_MACRO(__cpp_lib_execution);
1358 PRINT_MACRO(__cpp_lib_filesystem);
1359 PRINT_MACRO(__cpp_lib_format);
1360 PRINT_MACRO(__cpp_lib_gcd_lcm);
1361 PRINT_MACRO(__cpp_lib_generic_associative_lookup);
1362 PRINT_MACRO(__cpp_lib_generic_unordered_lookup);
1363 PRINT_MACRO(__cpp_lib_hardware_interference_size);
1364 PRINT_MACRO(__cpp_lib_has_unique_object_representations);
1365 PRINT_MACRO(__cpp_lib_hypot);
1366 PRINT_MACRO(__cpp_lib_incomplete_container_elements);
1367 PRINT_MACRO(__cpp_lib_int_pow2);
1368 PRINT_MACRO(__cpp_lib_integer_comparison_functions);
1369 PRINT_MACRO(__cpp_lib_integer_sequence);
1370 PRINT_MACRO(__cpp_lib_integral_constant_callable);
1371 PRINT_MACRO(__cpp_lib_interpolate);
1372 PRINT_MACRO(__cpp_lib_invoke);
1373 PRINT_MACRO(__cpp_lib_is_aggregate);
1374 PRINT_MACRO(__cpp_lib_is_constant_evaluated);
1375 PRINT_MACRO(__cpp_lib_is_final);
1376 PRINT_MACRO(__cpp_lib_is_invocable);
1377 PRINT_MACRO(__cpp_lib_is_layout_compatible);
1378 PRINT_MACRO(__cpp_lib_is_nothrow_convertible);
1379 PRINT_MACRO(__cpp_lib_is_null_pointer);
1380 PRINT_MACRO(__cpp_lib_is_pointer_interconvertible);
1381 PRINT_MACRO(__cpp_lib_is_swappable);
1382 PRINT_MACRO(__cpp_lib_jthread);
1383 PRINT_MACRO(__cpp_lib_latch);
1384 PRINT_MACRO(__cpp_lib_launder);
1385 PRINT_MACRO(__cpp_lib_list_remove_return_type);
1386 PRINT_MACRO(__cpp_lib_logical_traits);
1387 PRINT_MACRO(__cpp_lib_make_from_tuple);
1388 PRINT_MACRO(__cpp_lib_make_reverse_iterator);
1389 PRINT_MACRO(__cpp_lib_make_unique);
1390 PRINT_MACRO(__cpp_lib_map_try_emplace);
1391 PRINT_MACRO(__cpp_lib_math_constants);
1392 PRINT_MACRO(__cpp_lib_math_special_functions);
1393 PRINT_MACRO(__cpp_lib_memory_resource);
1394 PRINT_MACRO(__cpp_lib_node_extract);
1395 PRINT_MACRO(__cpp_lib_nonmember_container_access);
1396 PRINT_MACRO(__cpp_lib_not_fn);
1397 PRINT_MACRO(__cpp_lib_null_iterators);
1398 PRINT_MACRO(__cpp_lib_optional);
1399 PRINT_MACRO(__cpp_lib_parallel_algorithm);
1400 PRINT_MACRO(__cpp_lib_polymorphic_allocator);
1401 PRINT_MACRO(__cpp_lib_quoted_string_io);
1402 PRINT_MACRO(__cpp_lib_ranges);
1403 PRINT_MACRO(__cpp_lib_raw_memory_algorithms);
1404 PRINT_MACRO(__cpp_lib_remove_cvref);
1405 PRINT_MACRO(__cpp_lib_result_of_sfinae);
1406 PRINT_MACRO(__cpp_lib_robust_nonmodifying_seq_ops);
1407 PRINT_MACRO(__cpp_lib_sample);
1408 PRINT_MACRO(__cpp_lib_scoped_lock);
1409 PRINT_MACRO(__cpp_lib_semaphore);
1410 PRINT_MACRO(__cpp_lib_shared_mutex);
1411 PRINT_MACRO(__cpp_lib_shared_ptr_arrays);
1412 PRINT_MACRO(__cpp_lib_shared_ptr_weak_type);
1413 PRINT_MACRO(__cpp_lib_shared_timed_mutex);
1414 PRINT_MACRO(__cpp_lib_shift);
1415 PRINT_MACRO(__cpp_lib_smart_ptr_for_overwrite);
1416 PRINT_MACRO(__cpp_lib_source_location);
1417 PRINT_MACRO(__cpp_lib_span);
1418 PRINT_MACRO(__cpp_lib_ssize);
1419 PRINT_MACRO(__cpp_lib_starts_ends_with);
1420 PRINT_MACRO(__cpp_lib_string_udls);
1421 PRINT_MACRO(__cpp_lib_string_view);
1422 PRINT_MACRO(__cpp_lib_syncbuf);
1423 PRINT_MACRO(__cpp_lib_three_way_comparison);
1424 PRINT_MACRO(__cpp_lib_to_address);
1425 PRINT_MACRO(__cpp_lib_to_array);
1426 PRINT_MACRO(__cpp_lib_to_chars);
1427 PRINT_MACRO(__cpp_lib_transformation_trait_aliases);
1428 PRINT_MACRO(__cpp_lib_transparent_operators);
1429 PRINT_MACRO(__cpp_lib_tuple_element_t);
1430 PRINT_MACRO(__cpp_lib_tuples_by_type);
1431 PRINT_MACRO(__cpp_lib_type_identity);
1432 PRINT_MACRO(__cpp_lib_type_trait_variable_templates);
1433 PRINT_MACRO(__cpp_lib_uncaught_exceptions);
1434 PRINT_MACRO(__cpp_lib_unordered_map_try_emplace);
1435 PRINT_MACRO(__cpp_lib_unwrap_ref);
1436 PRINT_MACRO(__cpp_lib_variant);
1437 PRINT_MACRO(__cpp_lib_void_t);
1438
92f5a8d4
TL
1439 // C++20:
1440 PRINT_MACRO(__cpp_aggregate_paren_init);
1441 PRINT_MACRO(__cpp_char8_t);
1442 PRINT_MACRO(__cpp_char8_type);
1443 PRINT_MACRO(__cpp_conditional_explicit);
1444 PRINT_MACRO(__cpp_coroutines);
1445 PRINT_MACRO(__cpp_impl_destroying_delete);
1446 PRINT_MACRO(__cpp_impl_three_way_comparison);
1447 PRINT_MACRO(__cpp_nontype_template_parameter_class);
1448
11fdf7f2
TL
1449 // C++17:
1450 PRINT_MACRO(__cpp_hex_float);
1451 PRINT_MACRO(__cpp_inline_variables);
1452 PRINT_MACRO(__cpp_aligned_new);
1453 PRINT_MACRO(__cpp_guaranteed_copy_elision);
1454 PRINT_MACRO(__cpp_noexcept_function_type);
1455 PRINT_MACRO(__cpp_fold_expressions);
1456 PRINT_MACRO(__cpp_capture_star_this);
1457 PRINT_MACRO(__cpp_constexpr);
1458 PRINT_MACRO(__cpp_if_constexpr);
1459 PRINT_MACRO(__cpp_range_based_for);
1460 PRINT_MACRO(__cpp_static_assert);
1461 PRINT_MACRO(__cpp_deduction_guides);
1462 PRINT_MACRO(__cpp_nontype_template_parameter_auto);
1463 PRINT_MACRO(__cpp_namespace_attributes);
1464 PRINT_MACRO(__cpp_enumerator_attributes);
1465 PRINT_MACRO(__cpp_inheriting_constructors);
1466 PRINT_MACRO(__cpp_variadic_using);
1467 PRINT_MACRO(__cpp_structured_bindings);
1468 PRINT_MACRO(__cpp_aggregate_bases);
1469 PRINT_MACRO(__cpp_nontype_template_args);
1470 PRINT_MACRO(__cpp_template_template_args);
1471
1472 // C++14:
1473 PRINT_MACRO(__cpp_binary_literals);
1474 PRINT_MACRO(__cpp_init_captures);
1475 PRINT_MACRO(__cpp_generic_lambdas);
1476 PRINT_MACRO(__cpp_sized_deallocation);
1477 PRINT_MACRO(__cpp_decltype_auto);
1478 PRINT_MACRO(__cpp_return_type_deduction);
1479 PRINT_MACRO(__cpp_aggregate_nsdmi);
1480 PRINT_MACRO(__cpp_variable_templates);
1481
1482 // C++11:
1483 PRINT_MACRO(__cpp_unicode_characters);
1484 PRINT_MACRO(__cpp_raw_strings);
1485 PRINT_MACRO(__cpp_unicode_literals);
1486 PRINT_MACRO(__cpp_user_defined_literals);
1487 PRINT_MACRO(__cpp_threadsafe_static_init);
1488 PRINT_MACRO(__cpp_lambdas);
1489 PRINT_MACRO(__cpp_decltype);
1490 PRINT_MACRO(__cpp_attributes);
1491 PRINT_MACRO(__cpp_rvalue_references);
1492 PRINT_MACRO(__cpp_variadic_templates);
1493 PRINT_MACRO(__cpp_initializer_lists);
1494 PRINT_MACRO(__cpp_delegating_constructors);
1495 PRINT_MACRO(__cpp_nsdmi);
1496 PRINT_MACRO(__cpp_ref_qualifiers);
1497 PRINT_MACRO(__cpp_alias_templates);
1498
1499 // C++98:
1500 PRINT_MACRO(__cpp_rtti);
1501 PRINT_MACRO(__cpp_exceptions);
1e59de90
TL
1502
1503 // <atomic>:
1504 PRINT_MACRO(ATOMIC_INT_LOCK_FREE);
1505 PRINT_MACRO(ATOMIC_SHORT_LOCK_FREE);
1506 PRINT_MACRO(ATOMIC_LONG_LOCK_FREE);
1507 PRINT_MACRO(ATOMIC_LLONG_LOCK_FREE);
1508 PRINT_MACRO(ATOMIC_POINTER_LOCK_FREE);
1509 PRINT_MACRO(ATOMIC_CHAR_LOCK_FREE);
1510 PRINT_MACRO(ATOMIC_WCHAR_T_LOCK_FREE);
1511 PRINT_MACRO(ATOMIC_CHAR8_T_LOCK_FREE);
1512 PRINT_MACRO(ATOMIC_CHAR16_T_LOCK_FREE);
1513 PRINT_MACRO(ATOMIC_CHAR32_T_LOCK_FREE);
11fdf7f2
TL
1514}
1515
7c673cae
FG
1516void print_separator()
1517{
1518 std::cout <<
1519"\n\n*********************************************************************\n\n";
1520}
1521
1522int main()
1523{
1524
1525 // boost compiler workaround defines
1526 print_compiler_macros();
1527 print_separator();
1528 print_stdlib_macros();
1529 print_separator();
1530 print_platform_macros();
1531 print_separator();
1532 print_boost_macros();
11fdf7f2
TL
1533 print_separator();
1534 print_sd6_macros();
7c673cae
FG
1535
1536 return 0;
1537}