]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/config/test/config_info.cpp
import quincy beta 17.1.0
[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__);
383
7c673cae
FG
384 // misc compilers not covered so far:
385 PRINT_MACRO(__USLC__);
386 PRINT_MACRO(__DECCXX);
387 PRINT_MACRO(__IBMCPP__);
388 PRINT_MACRO(_REENTRANT);
389 PRINT_MACRO(_PTHREADS);
390 PRINT_MACRO(__STDC_HOSTED__);
391 PRINT_MACRO(__COMO__);
392 PRINT_MACRO(__COMO_VERSION__);
393 PRINT_MACRO(__DM__);
394 PRINT_MACRO(__osf__);
395 PRINT_MACRO(__OSF__);
396 PRINT_MACRO(__QNXNTO__);
397 PRINT_MACRO(__QNX__);
398 PRINT_MACRO(_NTO_VERSION);
399 PRINT_MACRO(__OPEN64__);
400 PRINT_MACRO(__open64);
401 PRINT_MACRO(__NVCC__);
402 PRINT_MACRO(__CUDACC__);
403 PRINT_MACRO(__CUDACC_RDC__);
404 PRINT_MACRO(__CUDACC_VER_MAJOR__);
405 PRINT_MACRO(__CUDACC_VER_MINOR__);
406 PRINT_MACRO(__CUDACC_VER_BUILD__);
407 PRINT_MACRO(__CUDACC_VER__);
b32b8144
FG
408
409 // Android:
410 PRINT_MACRO(ANDROID);
411 PRINT_MACRO(__ANDROID__);
7c673cae
FG
412}
413
414void print_stdlib_macros()
415{
416 std::cout << BOOST_STDLIB << std::endl;
417 #ifdef _RWSTD_VER
418 // Rogue Wave 2.x config options:
419 PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
420 PRINT_MACRO(_RWSTD_ALLOCATOR);
421 PRINT_MACRO(_RWSTD_BAD_ALLOC_DEFINED);
422 PRINT_MACRO(_RWSTD_BAD_EXCEPTION_DEFINED);
423 PRINT_MACRO(_RWSTD_BOUNDS_CHECKING);
424 PRINT_MACRO(_RWSTD_COMPILE_INSTANTIATE);
425 PRINT_MACRO(_RWSTD_DEFAULT_PRECISION);
426 PRINT_MACRO(_RWSTD_EXCEPTION_DEFINED);
427 PRINT_MACRO(_RWSTD_EXCEPTION_HANDLER_IN_STD);
428 PRINT_MACRO(_RWSTD_EXCEPTION_PREDEFINED);
429 PRINT_MACRO(_RWSTD_FLT_ROUNDS_IS_CONSTANT);
430 PRINT_MACRO(_RWSTD_LOCALIZED_ERRORS);
431 PRINT_MACRO(_RWSTD_MESSAGE);
432 PRINT_MACRO(_RWSTD_MUTEXATTR_DEFAULT);
433 PRINT_MACRO(_RWSTD_NO_ANSI_SPRINTF);
434 PRINT_MACRO(_RWSTD_NO_ARG_MATCH);
435 PRINT_MACRO(_RWSTD_NO_BAD_CAST);
436 PRINT_MACRO(_RWSTD_NO_BASE_CLASS_MATCH);
437 PRINT_MACRO(_RWSTD_NO_BOOL);
438 PRINT_MACRO(_RWSTD_NO_BUILTIN_CTOR);
439 PRINT_MACRO(_RWSTD_NO_CATOPEN_CATGETS);
440 PRINT_MACRO(_RWSTD_NO_CLASS_PARTIAL_SPEC);
441 PRINT_MACRO(_RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
442 PRINT_MACRO(_RWSTD_NO_COMPLICATED_EXCEPTIONS);
443 PRINT_MACRO(_RWSTD_NO_COMPLICATED_TYPEDEF);
444 PRINT_MACRO(_RWSTD_NO_CONST_INST);
445 PRINT_MACRO(_RWSTD_NO_CTOR_RETURN);
446 PRINT_MACRO(_RWSTD_NO_DEFAULT_FOR_TPARAM);
447 PRINT_MACRO(_RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
448 PRINT_MACRO(_RWSTD_NO_DESTROY_BUILTIN);
449 PRINT_MACRO(_RWSTD_NO_DESTROY_NONBUILTIN);
450 PRINT_MACRO(_RWSTD_NO_EMBEDDED_TYPEDEF);
451 PRINT_MACRO(_RWSTD_NO_EX_SPEC);
452 PRINT_MACRO(_RWSTD_NO_EXCEPTIONS);
453 PRINT_MACRO(_RWSTD_NO_EXPLICIT);
454 PRINT_MACRO(_RWSTD_NO_EXPLICIT_ARG);
455 PRINT_MACRO(_RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
456 PRINT_MACRO(_RWSTD_NO_EXPLICIT_INSTANTIATION);
457 PRINT_MACRO(_RWSTD_NO_EXTENSION);
458 PRINT_MACRO(_RWSTD_NO_FORWARD_SPECIALIZATIONS);
459 PRINT_MACRO(_RWSTD_NO_FPOS_T);
460 PRINT_MACRO(_RWSTD_NO_FRIEND_TEMPLATES);
461 PRINT_MACRO(_RWSTD_NO_FUNC_PARTIAL_SPEC);
462 PRINT_MACRO(_RWSTD_NO_GETTIMEOFDAY);
463 PRINT_MACRO(_RWSTD_NO_GLOBAL_TZ);
464 PRINT_MACRO(_RWSTD_NO_INHERITED_TYPEDEFS);
465 PRINT_MACRO(_RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
466 PRINT_MACRO(_RWSTD_NO_INT_TYPEDEF);
467 PRINT_MACRO(_RWSTD_NO_LDIV);
468 PRINT_MACRO(_RWSTD_NO_LEADING_UNDERSCORE);
469 PRINT_MACRO(_RWSTD_NO_LOCALE);
470 PRINT_MACRO(_RWSTD_NO_LONG_NAME);
471 PRINT_MACRO(_RWSTD_NO_LONGDOUBLE);
472 PRINT_MACRO(_RWSTD_NO_MBSTATE_T);
473 PRINT_MACRO(_RWSTD_NO_MEM_CLASS_TEMPLATES);
474 PRINT_MACRO(_RWSTD_NO_MEMBER_TEMPLATES);
475 PRINT_MACRO(_RWSTD_NO_MEMBER_TYPE_TPARAM);
476 PRINT_MACRO(_RWSTD_NO_MEMBER_WO_DEF_CTOR);
477 PRINT_MACRO(_RWSTD_NO_MEMMOVE);
478 PRINT_MACRO(_RWSTD_NO_MULTI_DIM_ARRAY);
479 PRINT_MACRO(_RWSTD_NO_MUTABLE);
480 PRINT_MACRO(_RWSTD_NO_NAME_INJECTION);
481 PRINT_MACRO(_RWSTD_NO_NAMESPACE);
482 PRINT_MACRO(_RWSTD_NO_NESTING_TEMPLATES);
483 PRINT_MACRO(_RWSTD_NO_NEW_BRACKETS);
484 PRINT_MACRO(_RWSTD_NO_NEW_DECL);
485 PRINT_MACRO(_RWSTD_NO_NEW_HEADER);
486 PRINT_MACRO(_RWSTD_NO_NEW_TEMPLATE_SYNTAX);
487 PRINT_MACRO(_RWSTD_NO_NONCLASS_ARROW_RETURN);
488 PRINT_MACRO(_RWSTD_NO_NONTYPE_ARGS);
489 PRINT_MACRO(_RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
490 PRINT_MACRO(_RWSTD_NO_OVERLOAD_C_POW);
491 PRINT_MACRO(_RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
492 PRINT_MACRO(_RWSTD_NO_OVERLOAD_WCHAR);
493 PRINT_MACRO(_RWSTD_NO_PART_SPEC_OVERLOAD);
494 PRINT_MACRO(_RWSTD_NO_RET_TEMPLATE);
495 PRINT_MACRO(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
496 PRINT_MACRO(_RWSTD_NO_STATIC_CAST);
497 PRINT_MACRO(_RWSTD_NO_STATIC_DEF);
498 PRINT_MACRO(_RWSTD_NO_STATIC_DEF2);
499 PRINT_MACRO(_RWSTD_NO_STATIC_DEF3);
500 PRINT_MACRO(_RWSTD_NO_STATIC_MEM_DEF);
501 PRINT_MACRO(_RWSTD_NO_STI_SIMPLE);
502 PRINT_MACRO(_RWSTD_NO_STI_TEMPLATE);
503 PRINT_MACRO(_RWSTD_NO_STREAM_LONG_DOUBLE);
504 PRINT_MACRO(_RWSTD_NO_STRFTIME_CAPC);
505 PRINT_MACRO(_RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
506 PRINT_MACRO(_RWSTD_NO_SWPRINTF);
507 PRINT_MACRO(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
508 PRINT_MACRO(_RWSTD_NO_TEMPLATE_TEMPLATE);
509 PRINT_MACRO(_RWSTD_NO_THREADS);
510 PRINT_MACRO(_RWSTD_NO_THROW_SPEC_ON_NEW);
511 PRINT_MACRO(_RWSTD_NO_THROW_WITH_SHARED);
512 PRINT_MACRO(_RWSTD_NO_TYPEDEF_INST);
513 PRINT_MACRO(_RWSTD_NO_TYPEDEF_OVERLOAD);
514 PRINT_MACRO(_RWSTD_NO_TYPENAME);
515 PRINT_MACRO(_RWSTD_NO_UNDEFINED_FRIEND);
516 PRINT_MACRO(_RWSTD_NO_UNINITIALIZED_STATIC_DEF);
517 PRINT_MACRO(_RWSTD_NO_WCHAR_H);
518 PRINT_MACRO(_RWSTD_NO_WCTYPE_H);
519 PRINT_MACRO(_RWSTD_NO_WIDE_CHAR);
520 PRINT_MACRO(_RWSTD_NO_WINT_TYPE);
521 PRINT_MACRO(_RWSTD_NO_WSTR);
522 PRINT_MACRO(_RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
523 PRINT_MACRO(_RWSTD_POSIX_D10_THREADS);
524 PRINT_MACRO(_RWSTD_POSIX_THREADS);
525 PRINT_MACRO(_RWSTD_REQUIRES_IEEEFP);
526 PRINT_MACRO(_RWSTD_SOLARIS_THREADS);
527 PRINT_MACRO(_RWSTD_STRUCT_TM_TZ);
528 PRINT_MACRO(_RWSTD_WIDE_STRING_NULL_PROBLEM);
529 #elif defined(__STD_RWCOMPILER_H__)
530 // Rogue Wave 1.x std lib:
531 PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
532 PRINT_MACRO(RWSTD_ALLOCATOR);
533 PRINT_MACRO(RWSTD_BAD_ALLOC_DEFINED);
534 PRINT_MACRO(RWSTD_BAD_EXCEPTION_DEFINED);
535 PRINT_MACRO(RWSTD_BOUNDS_CHECKING);
536 PRINT_MACRO(RWSTD_COMPILE_INSTANTIATE);
537 PRINT_MACRO(RWSTD_DEFAULT_PRECISION);
538 PRINT_MACRO(RWSTD_EXCEPTION_DEFINED);
539 PRINT_MACRO(RWSTD_EXCEPTION_HANDLER_IN_STD);
540 PRINT_MACRO(RWSTD_EXCEPTION_PREDEFINED);
541 PRINT_MACRO(RWSTD_FLT_ROUNDS_IS_CONSTANT);
542 PRINT_MACRO(RWSTD_LOCALIZED_ERRORS);
543 PRINT_MACRO(RWSTD_MESSAGE);
544 PRINT_MACRO(RWSTD_MUTEXATTR_DEFAULT);
545 PRINT_MACRO(RWSTD_NO_ANSI_SPRINTF);
546 PRINT_MACRO(RWSTD_NO_ARG_MATCH);
547 PRINT_MACRO(RWSTD_NO_BAD_CAST);
548 PRINT_MACRO(RWSTD_NO_BASE_CLASS_MATCH);
549 PRINT_MACRO(RWSTD_NO_BOOL);
550 PRINT_MACRO(RWSTD_NO_BUILTIN_CTOR);
551 PRINT_MACRO(RWSTD_NO_CATOPEN_CATGETS);
552 PRINT_MACRO(RWSTD_NO_CLASS_PARTIAL_SPEC);
553 PRINT_MACRO(RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
554 PRINT_MACRO(RWSTD_NO_COMPLICATED_EXCEPTIONS);
555 PRINT_MACRO(RWSTD_NO_COMPLICATED_TYPEDEF);
556 PRINT_MACRO(RWSTD_NO_CONST_INST);
557 PRINT_MACRO(RWSTD_NO_CTOR_RETURN);
558 PRINT_MACRO(RWSTD_NO_DEFAULT_FOR_TPARAM);
559 PRINT_MACRO(RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
560 PRINT_MACRO(RWSTD_NO_DESTROY_BUILTIN);
561 PRINT_MACRO(RWSTD_NO_DESTROY_NONBUILTIN);
562 PRINT_MACRO(RWSTD_NO_EMBEDDED_TYPEDEF);
563 PRINT_MACRO(RWSTD_NO_EX_SPEC);
564 PRINT_MACRO(RWSTD_NO_EXCEPTIONS);
565 PRINT_MACRO(RWSTD_NO_EXPLICIT);
566 PRINT_MACRO(RWSTD_NO_EXPLICIT_ARG);
567 PRINT_MACRO(RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
568 PRINT_MACRO(RWSTD_NO_EXPLICIT_INSTANTIATION);
569 PRINT_MACRO(RWSTD_NO_EXTENSION);
570 PRINT_MACRO(RWSTD_NO_FORWARD_SPECIALIZATIONS);
571 PRINT_MACRO(RWSTD_NO_FPOS_T);
572 PRINT_MACRO(RWSTD_NO_FRIEND_TEMPLATES);
573 PRINT_MACRO(RWSTD_NO_FUNC_PARTIAL_SPEC);
574 PRINT_MACRO(RWSTD_NO_GETTIMEOFDAY);
575 PRINT_MACRO(RWSTD_NO_GLOBAL_TZ);
576 PRINT_MACRO(RWSTD_NO_INHERITED_TYPEDEFS);
577 PRINT_MACRO(RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
578 PRINT_MACRO(RWSTD_NO_INT_TYPEDEF);
579 PRINT_MACRO(RWSTD_NO_LDIV);
580 PRINT_MACRO(RWSTD_NO_LEADING_UNDERSCORE);
581 PRINT_MACRO(RWSTD_NO_LOCALE);
582 PRINT_MACRO(RWSTD_NO_LONG_NAME);
583 PRINT_MACRO(RWSTD_NO_LONGDOUBLE);
584 PRINT_MACRO(RWSTD_NO_MBSTATE_T);
585 PRINT_MACRO(RWSTD_NO_MEM_CLASS_TEMPLATES);
586 PRINT_MACRO(RWSTD_NO_MEMBER_TEMPLATES);
587 PRINT_MACRO(RWSTD_NO_MEMBER_TYPE_TPARAM);
588 PRINT_MACRO(RWSTD_NO_MEMBER_WO_DEF_CTOR);
589 PRINT_MACRO(RWSTD_NO_MEMMOVE);
590 PRINT_MACRO(RWSTD_NO_MULTI_DIM_ARRAY);
591 PRINT_MACRO(RWSTD_NO_MUTABLE);
592 PRINT_MACRO(RWSTD_NO_NAME_INJECTION);
593 PRINT_MACRO(RWSTD_NO_NAMESPACE);
594 PRINT_MACRO(RWSTD_NO_NESTING_TEMPLATES);
595 PRINT_MACRO(RWSTD_NO_NEW_BRACKETS);
596 PRINT_MACRO(RWSTD_NO_NEW_DECL);
597 PRINT_MACRO(RWSTD_NO_NEW_HEADER);
598 PRINT_MACRO(RWSTD_NO_NEW_TEMPLATE_SYNTAX);
599 PRINT_MACRO(RWSTD_NO_NONCLASS_ARROW_RETURN);
600 PRINT_MACRO(RWSTD_NO_NONTYPE_ARGS);
601 PRINT_MACRO(RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
602 PRINT_MACRO(RWSTD_NO_OVERLOAD_C_POW);
603 PRINT_MACRO(RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
604 PRINT_MACRO(RWSTD_NO_OVERLOAD_WCHAR);
605 PRINT_MACRO(RWSTD_NO_PART_SPEC_OVERLOAD);
606 PRINT_MACRO(RWSTD_NO_RET_TEMPLATE);
607 PRINT_MACRO(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
608 PRINT_MACRO(RWSTD_NO_STATIC_CAST);
609 PRINT_MACRO(RWSTD_NO_STATIC_DEF);
610 PRINT_MACRO(RWSTD_NO_STATIC_DEF2);
611 PRINT_MACRO(RWSTD_NO_STATIC_DEF3);
612 PRINT_MACRO(RWSTD_NO_STATIC_MEM_DEF);
613 PRINT_MACRO(RWSTD_NO_STI_SIMPLE);
614 PRINT_MACRO(RWSTD_NO_STI_TEMPLATE);
615 PRINT_MACRO(RWSTD_NO_STREAM_LONG_DOUBLE);
616 PRINT_MACRO(RWSTD_NO_STRFTIME_CAPC);
617 PRINT_MACRO(RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
618 PRINT_MACRO(RWSTD_NO_SWPRINTF);
619 PRINT_MACRO(RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
620 PRINT_MACRO(RWSTD_NO_TEMPLATE_TEMPLATE);
621 PRINT_MACRO(RWSTD_NO_THREADS);
622 PRINT_MACRO(RWSTD_NO_THROW_SPEC_ON_NEW);
623 PRINT_MACRO(RWSTD_NO_THROW_WITH_SHARED);
624 PRINT_MACRO(RWSTD_NO_TYPEDEF_INST);
625 PRINT_MACRO(RWSTD_NO_TYPEDEF_OVERLOAD);
626 PRINT_MACRO(RWSTD_NO_TYPENAME);
627 PRINT_MACRO(RWSTD_NO_UNDEFINED_FRIEND);
628 PRINT_MACRO(RWSTD_NO_UNINITIALIZED_STATIC_DEF);
629 PRINT_MACRO(RWSTD_NO_WCHAR_H);
630 PRINT_MACRO(RWSTD_NO_WCTYPE_H);
631 PRINT_MACRO(RWSTD_NO_WIDE_CHAR);
632 PRINT_MACRO(RWSTD_NO_WINT_TYPE);
633 PRINT_MACRO(RWSTD_NO_WSTR);
634 PRINT_MACRO(RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
635 PRINT_MACRO(RWSTD_POSIX_D10_THREADS);
636 PRINT_MACRO(RWSTD_POSIX_THREADS);
637 PRINT_MACRO(RWSTD_REQUIRES_IEEEFP);
638 PRINT_MACRO(RWSTD_SOLARIS_THREADS);
639 PRINT_MACRO(RWSTD_STRUCT_TM_TZ);
640 PRINT_MACRO(RWSTD_WIDE_STRING_NULL_PROBLEM);
641 #endif
642 // Dinkumware options:
643 PRINT_MACRO(_CPPLIB_VER);
11fdf7f2
TL
644 PRINT_MACRO(_MSVC_STL_VERSION); // VS2017 15.5+
645 PRINT_MACRO(_MSVC_STL_UPDATE); // VS2017 15.5+
7c673cae
FG
646 PRINT_MACRO(_GLOBAL_USING);
647 PRINT_MACRO(_HAS_EXCEPTIONS);
648 PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
649 PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
11fdf7f2
TL
650 // https://blogs.msdn.microsoft.com/vcblog/2016/08/12/stl-fixes-in-vs-2015-update-3/
651 PRINT_MACRO(_HAS_CXX17);
652 PRINT_MACRO(_HAS_AUTO_PTR_ETC);
653 PRINT_MACRO(_HAS_OLD_IOSTREAMS_MEMBERS);
654 PRINT_MACRO(_HAS_FUNCTION_ASSIGN);
655 PRINT_MACRO(_HAS_TR1_NAMESPACE);
656 PRINT_MACRO(_HAS_IDENTITY_STRUCT);
657 // VS2017 15.5+
658 PRINT_MACRO(_HAS_STATIC_RTTI);
659 PRINT_MACRO(_HAS_UNEXPECTED);
660 PRINT_MACRO(_HAS_STD_BYTE);
661 PRINT_MACRO(_HAS_FUNCTION_ALLOCATOR_SUPPORT);
662 PRINT_MACRO(_HAS_TR2_SYS_NAMESPACE);
663 PRINT_MACRO(_ENFORCE_MATCHING_ALLOCATORS);
664 PRINT_MACRO(_HAS_HAS_UNIQUE_OBJECT_REPRESENTATIONS);
665 PRINT_MACRO(_HAS_INLINE_VARIABLES);
666 PRINT_MACRO(_HAS_ALIGNED_NEW);
667 PRINT_MACRO(_HAS_NOEXCEPT_FUNCTION_TYPES);
668 PRINT_MACRO(_ITERATOR_DEBUG_LEVEL);
669 PRINT_MACRO(_HAS_ITERATOR_DEBUGGING);
670 PRINT_MACRO(_ITERATOR_DEBUG_ARRAY_OVERLOADS);
7c673cae
FG
671 // Libc++:
672 PRINT_MACRO(_LIBCPP_VERSION);
673 // STLPort and generic SGI STL options:
674 PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
675 PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
676 PRINT_MACRO(__SGI_STL_PORT);
677 PRINT_MACRO(__STL_AUTOMATIC_TYPE_TRAITS);
678 PRINT_MACRO(__STL_BASE_MATCH_BUG);
679 PRINT_MACRO(__STL_BASE_TYPEDEF_BUG);
680 PRINT_MACRO(__STL_BASE_TYPEDEF_OUTSIDE_BUG);
681 PRINT_MACRO(__STL_BROKEN_USING_DIRECTIVE);
682 PRINT_MACRO(__STL_CONST_CONSTRUCTOR_BUG);
683 PRINT_MACRO(__STL_DEBUG);
684 PRINT_MACRO(__STL_DEBUG_ALLOC);
685 PRINT_MACRO(__STL_DEFAULT_CONSTRUCTOR_BUG);
686 PRINT_MACRO(__STL_DEFAULT_TYPE_PARAM);
687 PRINT_MACRO(__STL_DONT_REDEFINE_STD);
688 PRINT_MACRO(__STL_DONT_USE_BOOL_TYPEDEF);
689 PRINT_MACRO(__STL_HAS_NO_EXCEPTIONS);
690 PRINT_MACRO(__STL_HAS_NO_NAMESPACES);
691 PRINT_MACRO(__STL_HAS_NO_NEW_C_HEADERS);
692 PRINT_MACRO(__STL_HAS_NO_NEW_IOSTREAMS);
693 PRINT_MACRO(__STL_IMPORT_VENDOR_CSTD);
694 PRINT_MACRO(__STL_LIMITED_DEFAULT_TEMPLATES);
695 PRINT_MACRO(__STL_LINK_TIME_INSTANTIATION);
696 PRINT_MACRO(__STL_LONG_LONG);
697 PRINT_MACRO(__STL_LOOP_INLINE_PROBLEMS);
698 PRINT_MACRO(__STL_MEMBER_POINTER_PARAM_BUG);
699 PRINT_MACRO(__STL_NEED_EXPLICIT);
700 PRINT_MACRO(__STL_NEED_MUTABLE);
701 PRINT_MACRO(__STL_NEED_TYPENAME);
702 PRINT_MACRO(__STL_NESTED_TYPE_PARAM_BUG);
703 PRINT_MACRO(__STL_NO_BAD_ALLOC);
704 PRINT_MACRO(__STL_NO_BOOL);
705 PRINT_MACRO(__STL_NO_CLASS_PARTIAL_SPECIALIZATION);
706 PRINT_MACRO(__STL_NO_CSTD_FUNCTION_IMPORTS);
707 PRINT_MACRO(__STL_NO_DEFAULT_NON_TYPE_PARAM);
708 PRINT_MACRO(__STL_NO_EXCEPTION_HEADER);
709 PRINT_MACRO(__STL_NO_EXCEPTION_SPEC);
710 PRINT_MACRO(__STL_NO_EXCEPTIONS);
711 PRINT_MACRO(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
712 PRINT_MACRO(__STL_NO_FRIEND_TEMPLATES);
713 PRINT_MACRO(__STL_NO_FUNCTION_TMPL_PARTIAL_ORDER);
714 PRINT_MACRO(__STL_NO_IOSTREAMS);
715 PRINT_MACRO(__STL_NO_LONG_DOUBLE);
716 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_CLASSES);
717 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_KEYWORD);
718 PRINT_MACRO(__STL_NO_MEMBER_TEMPLATES);
719 PRINT_MACRO(__STL_NO_METHOD_SPECIALIZATION);
720 PRINT_MACRO(__STL_NO_NAMESPACES);
721 PRINT_MACRO(__STL_NO_NEW_IOSTREAMS);
722 PRINT_MACRO(__STL_NO_NEW_NEW_HEADER);
723 PRINT_MACRO(__STL_NO_NEW_STYLE_CASTS);
724 PRINT_MACRO(__STL_NO_PARTIAL_SPECIALIZATION_SYNTAX);
725 PRINT_MACRO(__STL_NO_QUALIFIED_FRIENDS);
726 PRINT_MACRO(__STL_NO_RELOPS_NAMESPACE);
727 PRINT_MACRO(__STL_NO_SGI_IOSTREAMS);
728 PRINT_MACRO(__STL_NO_STATIC_TEMPLATE_DATA);
729 PRINT_MACRO(__STL_NO_TEMPLATE_CONVERSIONS);
730 PRINT_MACRO(__STL_NO_WCHAR_T);
731 PRINT_MACRO(__STL_NON_TYPE_TMPL_PARAM_BUG);
732 PRINT_MACRO(__STL_NONTEMPL_BASE_MATCH_BUG);
733 PRINT_MACRO(__STL_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
734 PRINT_MACRO(__STL_RAND48);
735 PRINT_MACRO(__STL_STATIC_ARRAY_BUG);
736 PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
737 PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
738 PRINT_MACRO(__STL_THROW_RETURN_BUG);
739 PRINT_MACRO(__STL_TRIVIAL_CONSTRUCTOR_BUG);
740 PRINT_MACRO(__STL_TRIVIAL_DESTRUCTOR_BUG);
741 PRINT_MACRO(__STL_UNINITIALIZABLE_PRIVATE);
742 PRINT_MACRO(__STL_USE_ABBREVS);
743 PRINT_MACRO(__STL_USE_DEFALLOC);
744 PRINT_MACRO(__STL_USE_MALLOC);
745 PRINT_MACRO(__STL_USE_NEW_C_HEADERS);
746 PRINT_MACRO(__STL_USE_NEW_IOSTREAMS);
747 PRINT_MACRO(__STL_USE_NEWALLOC);
748 PRINT_MACRO(__STL_USE_OWN_NAMESPACE);
749 PRINT_MACRO(__STL_USE_SGI_ALLOCATORS);
750 PRINT_MACRO(__STL_WCHAR_T_IS_USHORT);
751 PRINT_MACRO(__STL_WEAK_ATTRIBUTE);
752 PRINT_MACRO(__STL_YVALS_H);
753 PRINT_MACRO(_NOTHREADS);
754 PRINT_MACRO(_PTHREADS);
755#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT > 0x0400)
756 PRINT_MACRO(_STLP_AUTOMATIC_TYPE_TRAITS);
757 PRINT_MACRO(_STLP_BASE_MATCH_BUG);
758 PRINT_MACRO(_STLP_BASE_TYPEDEF_BUG);
759 PRINT_MACRO(_STLP_BASE_TYPEDEF_OUTSIDE_BUG);
760 PRINT_MACRO(_STLP_BROKEN_USING_DIRECTIVE);
761 PRINT_MACRO(_STLP_CONST_CONSTRUCTOR_BUG);
762 PRINT_MACRO(_STLP_DEBUG);
763 PRINT_MACRO(_STLP_DEBUG_ALLOC);
764 PRINT_MACRO(_STLP_DEFAULT_CONSTRUCTOR_BUG);
765 PRINT_MACRO(_STLP_DEFAULT_TYPE_PARAM);
766 PRINT_MACRO(_STLP_DONT_REDEFINE_STD);
767 PRINT_MACRO(_STLP_DONT_USE_BOOL_TYPEDEF);
768 PRINT_MACRO(_STLP_HAS_NO_EXCEPTIONS);
769 PRINT_MACRO(_STLP_HAS_NO_NAMESPACES);
770 PRINT_MACRO(_STLP_HAS_NO_NEW_C_HEADERS);
771 PRINT_MACRO(_STLP_HAS_NO_NEW_IOSTREAMS);
772 PRINT_MACRO(_STLP_IMPORT_VENDOR_CSTD);
773 PRINT_MACRO(_STLP_LIMITED_DEFAULT_TEMPLATES);
774 PRINT_MACRO(_STLP_LINK_TIME_INSTANTIATION);
775 PRINT_MACRO(_STLP_LONG_LONG);
776 PRINT_MACRO(_STLP_LOOP_INLINE_PROBLEMS);
777 PRINT_MACRO(_STLP_MEMBER_POINTER_PARAM_BUG);
778 PRINT_MACRO(_STLP_NEED_EXPLICIT);
779 PRINT_MACRO(_STLP_NEED_MUTABLE);
780 PRINT_MACRO(_STLP_NEED_TYPENAME);
781 PRINT_MACRO(_STLP_NESTED_TYPE_PARAM_BUG);
782 PRINT_MACRO(_STLP_NO_ARROW_OPERATOR);
783 PRINT_MACRO(_STLP_NO_BAD_ALLOC);
784 PRINT_MACRO(_STLP_NO_BOOL);
785 PRINT_MACRO(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION);
786 PRINT_MACRO(_STLP_NO_CSTD_FUNCTION_IMPORTS);
787 PRINT_MACRO(_STLP_NO_DEFAULT_NON_TYPE_PARAM);
788 PRINT_MACRO(_STLP_NO_EXCEPTION_HEADER);
789 PRINT_MACRO(_STLP_NO_EXCEPTION_SPEC);
790 PRINT_MACRO(_STLP_NO_EXCEPTIONS);
791 PRINT_MACRO(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
792 PRINT_MACRO(_STLP_NO_FRIEND_TEMPLATES);
793 PRINT_MACRO(_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER);
794 PRINT_MACRO(_STLP_NO_IOSTREAMS);
795 PRINT_MACRO(_STLP_NO_LONG_DOUBLE);
796 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_CLASSES);
797 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_KEYWORD);
798 PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATES);
799 PRINT_MACRO(_STLP_NO_METHOD_SPECIALIZATION);
800 PRINT_MACRO(_STLP_NO_NAMESPACES);
801 PRINT_MACRO(_STLP_NO_NEW_IOSTREAMS);
802 PRINT_MACRO(_STLP_NO_NEW_NEW_HEADER);
803 PRINT_MACRO(_STLP_NO_NEW_STYLE_CASTS);
804 PRINT_MACRO(_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX);
805 PRINT_MACRO(_STLP_NO_QUALIFIED_FRIENDS);
806 PRINT_MACRO(_STLP_NO_RELOPS_NAMESPACE);
807 PRINT_MACRO(_STLP_NO_SGI_IOSTREAMS);
808 PRINT_MACRO(_STLP_NO_STATIC_TEMPLATE_DATA);
809 PRINT_MACRO(_STLP_NO_TEMPLATE_CONVERSIONS);
810 PRINT_MACRO(_STLP_NO_WCHAR_T);
811 PRINT_MACRO(_STLP_NON_TYPE_TMPL_PARAM_BUG);
812 PRINT_MACRO(_STLP_NONTEMPL_BASE_MATCH_BUG);
813 PRINT_MACRO(_STLP_OWN_IOSTREAMS);
814 PRINT_MACRO(_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
815 PRINT_MACRO(_STLP_RAND48);
816 PRINT_MACRO(_STLP_STATIC_ARRAY_BUG);
817 PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
818 PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
819 PRINT_MACRO(_STLP_THROW_RETURN_BUG);
820 PRINT_MACRO(_STLP_TRIVIAL_CONSTRUCTOR_BUG);
821 PRINT_MACRO(_STLP_TRIVIAL_DESTRUCTOR_BUG);
822 PRINT_MACRO(_STLP_UNINITIALIZABLE_PRIVATE);
823 PRINT_MACRO(_STLP_USE_ABBREVS);
824 PRINT_MACRO(_STLP_USE_DEFALLOC);
825 PRINT_MACRO(_STLP_USE_MALLOC);
826 PRINT_MACRO(_STLP_USE_NEW_C_HEADERS);
827 PRINT_MACRO(_STLP_USE_NEWALLOC);
828 PRINT_MACRO(_STLP_USE_OWN_NAMESPACE);
829 PRINT_MACRO(_STLP_USE_SGI_ALLOCATORS);
830 PRINT_MACRO(_STLP_WCHAR_T_IS_USHORT);
831 PRINT_MACRO(_STLP_WEAK_ATTRIBUTE);
832 PRINT_MACRO(_STLP_YVALS_H);
833#endif
834 PRINT_MACRO(__GLIBCPP__);
835 PRINT_MACRO(_GLIBCPP_USE_WCHAR_T);
836 PRINT_MACRO(_GLIBCPP_VERSION);
837 PRINT_MACRO(__GLIBCXX__);
838 PRINT_MACRO(_GLIBCXX_USE_WCHAR_T);
839 PRINT_MACRO(_GLIBCXX_VERSION);
840 PRINT_MACRO(_GLIBCXX_USE_LONG_LONG);
841 PRINT_MACRO(_GLIBCXX_USE_NLS);
842 PRINT_MACRO(_GLIBCXX_USE_C99_MATH);
843 PRINT_MACRO(_GLIBCXX_USE_C99);
844 PRINT_MACRO(_GLIBCXX_CONCEPT_CHECKS);
845 PRINT_MACRO(_GLIBCXX_USE_LFS);
846 PRINT_MACRO(_GLIBCXX_SYMVER);
847 PRINT_MACRO(_GLIBCXX_MEM_LIMITS);
848 PRINT_MACRO(_GLIBCXX_HOSTED);
849 PRINT_MACRO(_GLIBCXX_SJLJ_EXCEPTIONS);
11fdf7f2 850 PRINT_MACRO(_GLIBCXX_RELEASE);
f67539c2 851 PRINT_MACRO(_GLIBCXX_USE_FLOAT128);
7c673cae
FG
852
853 // Modena C++ standard library
854 PRINT_MACRO(MSIPL_ANSI_HEADER);
855 PRINT_MACRO(MSIPL_BOOL_BUILTIN);
856 PRINT_MACRO(MSIPL_DEF_EXPLICIT);
857 PRINT_MACRO(MSIPL_DEF_TEMPARG);
858 PRINT_MACRO(MSIPL_EXPINST_ALLOWED);
859 PRINT_MACRO(MSIPL_EXPLICIT_FUNC_TEMPLATE_ARG);
860 PRINT_MACRO(MISPL_EXPLICIT_TEMPLATE_ARGUMENT);
861 PRINT_MACRO(MSIPL_FUNC_TEMPLATE_DEFARG);
862 PRINT_MACRO(MSIPL_MEMBER_TEMPLATE);
863 PRINT_MACRO(MSIPL_MULTITHREAD);
864 PRINT_MACRO(MSIPL_NON_TYPE_TEMPARG);
865 PRINT_MACRO(MSIPL_PARTIAL_TEMPL);
866 PRINT_MACRO(MSIPL_STATIC_CONST_INIT);
867 PRINT_MACRO(MSIPL_TEMPL_NEWSPEC);
868 PRINT_MACRO(MSIPL_TYPENAME);
869 PRINT_MACRO(MSIPL_USING_NAMESPACE);
870 PRINT_MACRO(MSIPL_WCHART);
871}
872
873void print_platform_macros()
874{
875 std::cout << "Detected Platform: " << BOOST_PLATFORM << std::endl;
876 // signedness:
877 PRINT_SIGN(char);
878 PRINT_SIGN(wchar_t);
879 // byte ordering:
880 PRINT_ORDER(short);
881 PRINT_ORDER(int);
882 PRINT_ORDER(long);
883 // sizes:
884 PRINT_EXPRESSION(sizeof(wchar_t));
885 PRINT_EXPRESSION(sizeof(short));
886 PRINT_EXPRESSION(sizeof(int));
887 PRINT_EXPRESSION(sizeof(long));
888 PRINT_EXPRESSION(sizeof(size_t));
889 PRINT_EXPRESSION(sizeof(ptrdiff_t));
890 PRINT_EXPRESSION(sizeof(void*));
891 PRINT_EXPRESSION(sizeof(void(*)(void)));
892 PRINT_EXPRESSION(sizeof(float));
893 PRINT_EXPRESSION(sizeof(double));
894 PRINT_EXPRESSION(sizeof(long double));
895 // limits:
896 PRINT_MACRO(CHAR_BIT);
897 PRINT_MACRO(CHAR_MAX);
898 PRINT_MACRO(WCHAR_MAX);
899 PRINT_MACRO(SHRT_MAX);
900 PRINT_MACRO(INT_MAX);
901 PRINT_MACRO(LONG_MAX);
902 PRINT_MACRO(LLONG_MAX);
903 PRINT_MACRO(LONG_LONG_MAX);
904 PRINT_MACRO(LONGLONG_MAX);
905 PRINT_MACRO(ULLONG_MAX); // <boost/cstdint.hpp> uses these, so we need to know them
906 PRINT_MACRO(ULONG_LONG_MAX);
907 PRINT_MACRO(ULONGLONG_MAX);
908 // general C99:
909 PRINT_MACRO(__STDC_IEC_559__);
910 PRINT_MACRO(__STDC_IEC_559_COMPLEX__);
911 PRINT_MACRO(__STDC_ISO_10646__);
912 // GNU:
913 PRINT_MACRO(__GLIBC__);
914 PRINT_MACRO(__GLIBC_MINOR__);
915 PRINT_MACRO(__GNU_LIBRARY__);
916 PRINT_MACRO(_BSD_SOURCE);
917 PRINT_MACRO(_GNU_SOURCE);
918 PRINT_MACRO(_ISOC99_SOURCE);
919 PRINT_MACRO(_ISOC9X_SOURCE);
920 PRINT_MACRO(_LARGEFILE_SOURCE);
921 PRINT_MACRO(_LARGEFILE64_SOURCE);
922 PRINT_MACRO(_SVID_SOURCE);
923 PRINT_MACRO(_THREAD_SAFE);
924 PRINT_MACRO(_XOPEN_SOURCE_EXTENDED);
925 PRINT_MACRO(XPG);
926 PRINT_MACRO(__MINGW32_MAJOR_VERSION);
927 PRINT_MACRO(__MINGW32_MINOR_VERSION);
928 // POSIX:
929 PRINT_MACRO(_POSIX_ADVISORY_INFO);
930 PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO);
931 PRINT_MACRO(_POSIX_BARRIERS);
932 PRINT_MACRO(_POSIX_C_SOURCE);
933 PRINT_MACRO(_POSIX_CHOWN_RESTRICTED);
934 PRINT_MACRO(_POSIX_CLOCK_SELECTION);
935 PRINT_MACRO(_POSIX_CPUTIME);
936 PRINT_MACRO(_POSIX_FSYNC);
937 PRINT_MACRO(_POSIX_JOB_CONTROL);
938 PRINT_MACRO(_POSIX_MAPPED_FILES);
939 PRINT_MACRO(_POSIX_MEMLOCK);
940 PRINT_MACRO(_POSIX_MEMLOCK_RANGE);
941 PRINT_MACRO(_POSIX_MEMORY_PROTECTION);
942 PRINT_MACRO(_POSIX_MESSAGE_PASSING);
943 PRINT_MACRO(_POSIX_MONOTONIC_CLOCK);
944 PRINT_MACRO(_POSIX_NO_TRUNC);
945 PRINT_MACRO(_POSIX_PRIORITIZED_IO);
946 PRINT_MACRO(_POSIX_PRIORITY_SCHEDULING);
947 PRINT_MACRO(_POSIX_RAW_SOCKETS);
948 PRINT_MACRO(_POSIX_READER_WRITER_LOCKS);
949 PRINT_MACRO(_POSIX_REALTIME_SIGNALS);
950 PRINT_MACRO(_POSIX_REGEXP);
951 PRINT_MACRO(_POSIX_SAVED_IDS);
952 PRINT_MACRO(_POSIX_SEMAPHORES);
953 PRINT_MACRO(_POSIX_SHARED_MEMORY_OBJECTS);
954 PRINT_MACRO(_POSIX_SHELL);
955 PRINT_MACRO(_POSIX_SOURCE);
956 PRINT_MACRO(_POSIX_SPAWN);
957 PRINT_MACRO(_POSIX_SPIN_LOCKS);
958 PRINT_MACRO(_POSIX_SPORADIC_SERVER);
959 PRINT_MACRO(_POSIX_SYNCHRONIZED_IO);
960 PRINT_MACRO(_POSIX_THREAD_ATTR_STACKADDR);
961 PRINT_MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
962 PRINT_MACRO(_POSIX_THREAD_CPUTIME);
963 PRINT_MACRO(_POSIX_THREAD_PRIO_INHERIT);
964 PRINT_MACRO(_POSIX_THREAD_PRIO_PROTECT);
965 PRINT_MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
966 PRINT_MACRO(_POSIX_THREAD_PROCESS_SHARED);
967 PRINT_MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
968 PRINT_MACRO(_POSIX_THREAD_SPORADIC_SERVER);
969 PRINT_MACRO(_POSIX_THREADS);
970 PRINT_MACRO(_POSIX_TIMEOUTS);
971 PRINT_MACRO(_POSIX_TIMERS);
972 PRINT_MACRO(_POSIX_TRACE);
973 PRINT_MACRO(_POSIX_TRACE_EVENT_FILTER);
974 PRINT_MACRO(_POSIX_TRACE_INHERIT);
975 PRINT_MACRO(_POSIX_TRACE_LOG);
976 PRINT_MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
977 PRINT_MACRO(_POSIX_VDISABLE);
978 PRINT_MACRO(_POSIX_VERSION);
979 PRINT_MACRO(_POSIX2_C_BIND);
980 PRINT_MACRO(_POSIX2_C_DEV);
981 PRINT_MACRO(_POSIX2_CHAR_TERM);
982 PRINT_MACRO(_POSIX2_FORT_DEV);
983 PRINT_MACRO(_POSIX2_FORT_RUN);
984 PRINT_MACRO(_POSIX2_LOCALEDEF);
985 PRINT_MACRO(_POSIX2_PBS);
986 PRINT_MACRO(_POSIX2_PBS_ACCOUNTING);
987 PRINT_MACRO(_POSIX2_PBS_CHECKPOINT);
988 PRINT_MACRO(_POSIX2_PBS_LOCATE);
989 PRINT_MACRO(_POSIX2_PBS_MESSAGE);
990 PRINT_MACRO(_POSIX2_PBS_TRACK);
991 PRINT_MACRO(_POSIX2_SW_DEV);
992 PRINT_MACRO(_POSIX2_UPE);
993 PRINT_MACRO(_POSIX2_VERSION);
994 PRINT_MACRO(_V6_ILP32_OFF32);
995 PRINT_MACRO(_V6_ILP32_OFFBIG);
996 PRINT_MACRO(_V6_LP64_OFF64);
997 PRINT_MACRO(_V6_LPBIG_OFFBIG);
998 PRINT_MACRO(_XBS5_ILP32_OFF32);
999 PRINT_MACRO(_XBS5_ILP32_OFFBIG);
1000 PRINT_MACRO(_XBS5_LP64_OFF64);
1001 PRINT_MACRO(_XBS5_LPBIG_OFFBIG);
1002 PRINT_MACRO(_XOPEN_CRYPT);
1003 PRINT_MACRO(_XOPEN_ENH_I18N);
1004 PRINT_MACRO(_XOPEN_LEGACY);
1005 PRINT_MACRO(_XOPEN_REALTIME);
1006 PRINT_MACRO(_XOPEN_REALTIME_THREADS);
1007 PRINT_MACRO(_XOPEN_SHM);
1008 PRINT_MACRO(_XOPEN_SOURCE);
1009 PRINT_MACRO(_XOPEN_STREAMS);
1010 PRINT_MACRO(_XOPEN_UNIX);
1011 PRINT_MACRO(_XOPEN_VERSION);
1012 // Misc:
1013 PRINT_MACRO(__USE_BSD);
1014 PRINT_MACRO(_FILE_OFFSET_BITS);
1015}
1016
1017void print_boost_macros()
1018{
1019 std::cout << "Boost version " << BOOST_STRINGIZE(BOOST_VERSION) << std::endl;
1020 // config setup macros first:
1021 PRINT_MACRO(BOOST_USER_CONFIG);
1022 PRINT_MACRO(BOOST_COMPILER_CONFIG);
1023 PRINT_MACRO(BOOST_STDLIB_CONFIG);
1024 PRINT_MACRO(BOOST_PLATFORM_CONFIG);
1025 PRINT_MACRO(BOOST_NO_CONFIG);
1026 PRINT_MACRO(BOOST_NO_USER_CONFIG);
1027 PRINT_MACRO(BOOST_NO_COMPILER_CONFIG);
1028 PRINT_MACRO(BOOST_NO_STDLIB_CONFIG);
1029 PRINT_MACRO(BOOST_NO_PLATFORM_CONFIG);
1030 // then defect and feature macros:
1031 PRINT_MACRO(BOOST_DISABLE_THREADS);
1032 PRINT_MACRO(BOOST_DISABLE_WIN32);
1033 PRINT_MACRO(BOOST_HAS_THREADS);
1034 PRINT_MACRO(BOOST_WINDOWS);
1035
1036 // BEGIN GENERATED BLOCK DO NOT EDIT THIS!!!!!!
1037 PRINT_MACRO(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG);
1038 PRINT_MACRO(BOOST_DEDUCED_TYPENAME);
1039 PRINT_MACRO(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL);
1040 PRINT_MACRO(BOOST_HAS_BETHREADS);
1041 PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
1042 PRINT_MACRO(BOOST_HAS_DIRENT_H);
1043 PRINT_MACRO(BOOST_HAS_EXPM1);
1044 PRINT_MACRO(BOOST_HAS_FLOAT128);
1045 PRINT_MACRO(BOOST_HAS_FTIME);
1046 PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
1047 PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
1048 PRINT_MACRO(BOOST_HAS_HASH);
1049 PRINT_MACRO(BOOST_HAS_INT128);
1050 PRINT_MACRO(BOOST_HAS_LOG1P);
1051 PRINT_MACRO(BOOST_HAS_LONG_LONG);
1052 PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
1053 PRINT_MACRO(BOOST_HAS_MS_INT64);
1054 PRINT_MACRO(BOOST_HAS_NANOSLEEP);
1055 PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
1056 PRINT_MACRO(BOOST_HAS_NRVO);
1057 PRINT_MACRO(BOOST_HAS_PARTIAL_STD_ALLOCATOR);
92f5a8d4 1058 PRINT_MACRO(BOOST_HAS_PRAGMA_DETECT_MISMATCH);
7c673cae
FG
1059 PRINT_MACRO(BOOST_HAS_PTHREADS);
1060 PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
1061 PRINT_MACRO(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE);
1062 PRINT_MACRO(BOOST_HAS_PTHREAD_YIELD);
1063 PRINT_MACRO(BOOST_HAS_RVALUE_REFS);
1064 PRINT_MACRO(BOOST_HAS_SCHED_YIELD);
1065 PRINT_MACRO(BOOST_HAS_SGI_TYPE_TRAITS);
1066 PRINT_MACRO(BOOST_HAS_SIGACTION);
1067 PRINT_MACRO(BOOST_HAS_SLIST);
1068 PRINT_MACRO(BOOST_HAS_STATIC_ASSERT);
1069 PRINT_MACRO(BOOST_HAS_STDINT_H);
1070 PRINT_MACRO(BOOST_HAS_STLP_USE_FACET);
7c673cae
FG
1071 PRINT_MACRO(BOOST_HAS_TWO_ARG_USE_FACET);
1072 PRINT_MACRO(BOOST_HAS_UNISTD_H);
1073 PRINT_MACRO(BOOST_HAS_VARIADIC_TMPL);
1074 PRINT_MACRO(BOOST_HAS_WINTHREADS);
1075 PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
1076 PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
1077 PRINT_MACRO(BOOST_NO_ADL_BARRIER);
1078 PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
1079 PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS);
1080 PRINT_MACRO(BOOST_NO_AUTO_PTR);
1081 PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
1082 PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
1083 PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
1084 PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
1085 PRINT_MACRO(BOOST_NO_CWCHAR);
1086 PRINT_MACRO(BOOST_NO_CWCTYPE);
1087 PRINT_MACRO(BOOST_NO_CXX11_ADDRESSOF);
1088 PRINT_MACRO(BOOST_NO_CXX11_ALIGNAS);
1089 PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR);
1090 PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR);
1091 PRINT_MACRO(BOOST_NO_CXX11_AUTO_DECLARATIONS);
1092 PRINT_MACRO(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS);
1093 PRINT_MACRO(BOOST_NO_CXX11_CHAR16_T);
1094 PRINT_MACRO(BOOST_NO_CXX11_CHAR32_T);
1095 PRINT_MACRO(BOOST_NO_CXX11_CONSTEXPR);
1096 PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE);
1097 PRINT_MACRO(BOOST_NO_CXX11_DECLTYPE_N3276);
1098 PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS);
11fdf7f2 1099 PRINT_MACRO(BOOST_NO_CXX11_DEFAULTED_MOVES);
7c673cae
FG
1100 PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
1101 PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
1102 PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
1103 PRINT_MACRO(BOOST_NO_CXX11_FINAL);
1104 PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
1105 PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
1106 PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
1107 PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
1108 PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO);
1109 PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT);
1110 PRINT_MACRO(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE);
92f5a8d4 1111 PRINT_MACRO(BOOST_NO_CXX11_HDR_EXCEPTION);
7c673cae
FG
1112 PRINT_MACRO(BOOST_NO_CXX11_HDR_FORWARD_LIST);
1113 PRINT_MACRO(BOOST_NO_CXX11_HDR_FUNCTIONAL);
1114 PRINT_MACRO(BOOST_NO_CXX11_HDR_FUTURE);
1115 PRINT_MACRO(BOOST_NO_CXX11_HDR_INITIALIZER_LIST);
1116 PRINT_MACRO(BOOST_NO_CXX11_HDR_MUTEX);
1117 PRINT_MACRO(BOOST_NO_CXX11_HDR_RANDOM);
1118 PRINT_MACRO(BOOST_NO_CXX11_HDR_RATIO);
1119 PRINT_MACRO(BOOST_NO_CXX11_HDR_REGEX);
1120 PRINT_MACRO(BOOST_NO_CXX11_HDR_SYSTEM_ERROR);
1121 PRINT_MACRO(BOOST_NO_CXX11_HDR_THREAD);
1122 PRINT_MACRO(BOOST_NO_CXX11_HDR_TUPLE);
1123 PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPEINDEX);
1124 PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPE_TRAITS);
1125 PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_MAP);
1126 PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_SET);
1127 PRINT_MACRO(BOOST_NO_CXX11_INLINE_NAMESPACES);
1128 PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
1129 PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
1130 PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
1131 PRINT_MACRO(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS);
1132 PRINT_MACRO(BOOST_NO_CXX11_NULLPTR);
1133 PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
20effc67 1134 PRINT_MACRO(BOOST_NO_CXX11_OVERRIDE);
b32b8144 1135 PRINT_MACRO(BOOST_NO_CXX11_POINTER_TRAITS);
7c673cae
FG
1136 PRINT_MACRO(BOOST_NO_CXX11_RANGE_BASED_FOR);
1137 PRINT_MACRO(BOOST_NO_CXX11_RAW_LITERALS);
1138 PRINT_MACRO(BOOST_NO_CXX11_REF_QUALIFIERS);
1139 PRINT_MACRO(BOOST_NO_CXX11_RVALUE_REFERENCES);
1140 PRINT_MACRO(BOOST_NO_CXX11_SCOPED_ENUMS);
b32b8144 1141 PRINT_MACRO(BOOST_NO_CXX11_SFINAE_EXPR);
7c673cae
FG
1142 PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR);
1143 PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT);
1144 PRINT_MACRO(BOOST_NO_CXX11_STD_ALIGN);
1145 PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES);
1146 PRINT_MACRO(BOOST_NO_CXX11_THREAD_LOCAL);
1147 PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
1148 PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
1149 PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
1150 PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
1151 PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
1152 PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
1153 PRINT_MACRO(BOOST_NO_CXX14_AGGREGATE_NSDMI);
1154 PRINT_MACRO(BOOST_NO_CXX14_BINARY_LITERALS);
1155 PRINT_MACRO(BOOST_NO_CXX14_CONSTEXPR);
1156 PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO);
1157 PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS);
1158 PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS);
1159 PRINT_MACRO(BOOST_NO_CXX14_HDR_SHARED_MUTEX);
1160 PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES);
1161 PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION);
b32b8144 1162 PRINT_MACRO(BOOST_NO_CXX14_STD_EXCHANGE);
7c673cae 1163 PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
b32b8144 1164 PRINT_MACRO(BOOST_NO_CXX17_FOLD_EXPRESSIONS);
92f5a8d4
TL
1165 PRINT_MACRO(BOOST_NO_CXX17_HDR_OPTIONAL);
1166 PRINT_MACRO(BOOST_NO_CXX17_HDR_STRING_VIEW);
1167 PRINT_MACRO(BOOST_NO_CXX17_HDR_VARIANT);
1168 PRINT_MACRO(BOOST_NO_CXX17_IF_CONSTEXPR);
b32b8144
FG
1169 PRINT_MACRO(BOOST_NO_CXX17_INLINE_VARIABLES);
1170 PRINT_MACRO(BOOST_NO_CXX17_ITERATOR_TRAITS);
1171 PRINT_MACRO(BOOST_NO_CXX17_STD_APPLY);
7c673cae 1172 PRINT_MACRO(BOOST_NO_CXX17_STD_INVOKE);
b32b8144
FG
1173 PRINT_MACRO(BOOST_NO_CXX17_STRUCTURED_BINDINGS);
1174 PRINT_MACRO(BOOST_NO_CXX98_BINDERS);
1175 PRINT_MACRO(BOOST_NO_CXX98_FUNCTION_BASE);
1176 PRINT_MACRO(BOOST_NO_CXX98_RANDOM_SHUFFLE);
7c673cae
FG
1177 PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
1178 PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
1179 PRINT_MACRO(BOOST_NO_EXCEPTIONS);
1180 PRINT_MACRO(BOOST_NO_EXCEPTION_STD_NAMESPACE);
1181 PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
1182 PRINT_MACRO(BOOST_NO_FENV_H);
1183 PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
1184 PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
1185 PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
1186 PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
1187 PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
1188 PRINT_MACRO(BOOST_NO_IOSFWD);
1189 PRINT_MACRO(BOOST_NO_IOSTREAM);
1190 PRINT_MACRO(BOOST_NO_IS_ABSTRACT);
1191 PRINT_MACRO(BOOST_NO_LIMITS);
1192 PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
1193 PRINT_MACRO(BOOST_NO_LONG_LONG);
1194 PRINT_MACRO(BOOST_NO_LONG_LONG_NUMERIC_LIMITS);
1195 PRINT_MACRO(BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS);
1196 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATES);
1197 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS);
1198 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
1199 PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
1200 PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP);
1201 PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
1202 PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
1203 PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
1204 PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS);
1205 PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE);
b32b8144 1206 PRINT_MACRO(BOOST_NO_RESTRICT_REFERENCES);
7c673cae
FG
1207 PRINT_MACRO(BOOST_NO_RTTI);
1208 PRINT_MACRO(BOOST_NO_SFINAE);
1209 PRINT_MACRO(BOOST_NO_SFINAE_EXPR);
1210 PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
1211 PRINT_MACRO(BOOST_NO_STD_ALLOCATOR);
1212 PRINT_MACRO(BOOST_NO_STD_DISTANCE);
1213 PRINT_MACRO(BOOST_NO_STD_ITERATOR);
1214 PRINT_MACRO(BOOST_NO_STD_ITERATOR_TRAITS);
1215 PRINT_MACRO(BOOST_NO_STD_LOCALE);
1216 PRINT_MACRO(BOOST_NO_STD_MESSAGES);
1217 PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
1218 PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
1219 PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
1220 PRINT_MACRO(BOOST_NO_STD_USE_FACET);
1221 PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
1222 PRINT_MACRO(BOOST_NO_STD_WSTRING);
1223 PRINT_MACRO(BOOST_NO_STRINGSTREAM);
1224 PRINT_MACRO(BOOST_NO_SWPRINTF);
1225 PRINT_MACRO(BOOST_NO_TEMPLATED_IOSTREAMS);
1226 PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
1227 PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
1228 PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
1229 PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
1230 PRINT_MACRO(BOOST_NO_TYPEID);
1231 PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR);
1232 PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
1233 PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
1234 PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
1235 PRINT_MACRO(BOOST_NO_VOID_RETURNS);
1236
1237
20effc67 1238
7c673cae
FG
1239 // END GENERATED BLOCK
1240
1241 PRINT_MACRO(BOOST_INTEL);
1242 PRINT_MACRO(BOOST_MSVC);
11fdf7f2
TL
1243 PRINT_MACRO(BOOST_GCC);
1244 PRINT_MACRO(BOOST_LIBSTDCXX_VERSION);
7c673cae
FG
1245 PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
1246 PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0));
1247 PRINT_MACRO(BOOST_CONSTEXPR);
1248 PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
1249 PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
1250 PRINT_MACRO(BOOST_NOEXCEPT);
1251 PRINT_MACRO(BOOST_FORCEINLINE);
1252 PRINT_MACRO(BOOST_NOINLINE);
1253 PRINT_MACRO(BOOST_FALLTHROUGH);
b32b8144
FG
1254 PRINT_MACRO(BOOST_MAY_ALIAS);
1255 PRINT_MACRO(BOOST_NO_MAY_ALIAS);
92f5a8d4
TL
1256 PRINT_MACRO(BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS);
1257 PRINT_MACRO(BOOST_ATTRIBUTE_UNUSED);
1258 PRINT_MACRO(BOOST_UNLIKELY);
1259 PRINT_MACRO(BOOST_NORETURN);
7c673cae
FG
1260}
1261
11fdf7f2
TL
1262void print_sd6_macros()
1263{
1264 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0096r5.html
1265
92f5a8d4
TL
1266 // C++20:
1267 PRINT_MACRO(__cpp_aggregate_paren_init);
1268 PRINT_MACRO(__cpp_char8_t);
1269 PRINT_MACRO(__cpp_char8_type);
1270 PRINT_MACRO(__cpp_conditional_explicit);
1271 PRINT_MACRO(__cpp_coroutines);
1272 PRINT_MACRO(__cpp_impl_destroying_delete);
1273 PRINT_MACRO(__cpp_impl_three_way_comparison);
1274 PRINT_MACRO(__cpp_nontype_template_parameter_class);
1275
11fdf7f2
TL
1276 // C++17:
1277 PRINT_MACRO(__cpp_hex_float);
1278 PRINT_MACRO(__cpp_inline_variables);
1279 PRINT_MACRO(__cpp_aligned_new);
1280 PRINT_MACRO(__cpp_guaranteed_copy_elision);
1281 PRINT_MACRO(__cpp_noexcept_function_type);
1282 PRINT_MACRO(__cpp_fold_expressions);
1283 PRINT_MACRO(__cpp_capture_star_this);
1284 PRINT_MACRO(__cpp_constexpr);
1285 PRINT_MACRO(__cpp_if_constexpr);
1286 PRINT_MACRO(__cpp_range_based_for);
1287 PRINT_MACRO(__cpp_static_assert);
1288 PRINT_MACRO(__cpp_deduction_guides);
1289 PRINT_MACRO(__cpp_nontype_template_parameter_auto);
1290 PRINT_MACRO(__cpp_namespace_attributes);
1291 PRINT_MACRO(__cpp_enumerator_attributes);
1292 PRINT_MACRO(__cpp_inheriting_constructors);
1293 PRINT_MACRO(__cpp_variadic_using);
1294 PRINT_MACRO(__cpp_structured_bindings);
1295 PRINT_MACRO(__cpp_aggregate_bases);
1296 PRINT_MACRO(__cpp_nontype_template_args);
1297 PRINT_MACRO(__cpp_template_template_args);
1298
1299 // C++14:
1300 PRINT_MACRO(__cpp_binary_literals);
1301 PRINT_MACRO(__cpp_init_captures);
1302 PRINT_MACRO(__cpp_generic_lambdas);
1303 PRINT_MACRO(__cpp_sized_deallocation);
1304 PRINT_MACRO(__cpp_decltype_auto);
1305 PRINT_MACRO(__cpp_return_type_deduction);
1306 PRINT_MACRO(__cpp_aggregate_nsdmi);
1307 PRINT_MACRO(__cpp_variable_templates);
1308
1309 // C++11:
1310 PRINT_MACRO(__cpp_unicode_characters);
1311 PRINT_MACRO(__cpp_raw_strings);
1312 PRINT_MACRO(__cpp_unicode_literals);
1313 PRINT_MACRO(__cpp_user_defined_literals);
1314 PRINT_MACRO(__cpp_threadsafe_static_init);
1315 PRINT_MACRO(__cpp_lambdas);
1316 PRINT_MACRO(__cpp_decltype);
1317 PRINT_MACRO(__cpp_attributes);
1318 PRINT_MACRO(__cpp_rvalue_references);
1319 PRINT_MACRO(__cpp_variadic_templates);
1320 PRINT_MACRO(__cpp_initializer_lists);
1321 PRINT_MACRO(__cpp_delegating_constructors);
1322 PRINT_MACRO(__cpp_nsdmi);
1323 PRINT_MACRO(__cpp_ref_qualifiers);
1324 PRINT_MACRO(__cpp_alias_templates);
1325
1326 // C++98:
1327 PRINT_MACRO(__cpp_rtti);
1328 PRINT_MACRO(__cpp_exceptions);
1329}
1330
7c673cae
FG
1331void print_separator()
1332{
1333 std::cout <<
1334"\n\n*********************************************************************\n\n";
1335}
1336
1337int main()
1338{
1339
1340 // boost compiler workaround defines
1341 print_compiler_macros();
1342 print_separator();
1343 print_stdlib_macros();
1344 print_separator();
1345 print_platform_macros();
1346 print_separator();
1347 print_boost_macros();
11fdf7f2
TL
1348 print_separator();
1349 print_sd6_macros();
7c673cae
FG
1350
1351 return 0;
1352}