1 # /* **************************************************************************
3 # * (C) Copyright Edward Diener 2014,2019.
4 # * Distributed under the Boost Software License, Version 1.0. (See
5 # * accompanying file LICENSE_1_0.txt or copy at
6 # * http://www.boost.org/LICENSE_1_0.txt)
8 # ************************************************************************** */
10 # /* See http://www.boost.org for most recent version. */
15 #include <boost/preprocessor/stringize.hpp>
16 #include <boost/preprocessor/variadic/has_opt.hpp>
18 static unsigned int indent
= 4;
19 static unsigned int width
= 40;
24 void print_separator()
27 "\n\n*********************************************************************\n\n";
30 void print_macro(const char* name
, const char* value
)
32 // if name == value+1 then then macro is not defined,
33 // in which case we don't print anything:
34 if(0 != strcmp(name
, value
+1))
36 for(unsigned i
= 0; i
< indent
; ++i
) std::cout
.put(' ');
37 std::cout
<< std::setw(width
);
38 cout
.setf(istream::left
, istream::adjustfield
);
43 std::cout
<< value
<< "\n";
47 // macro is defined but has no value:
48 std::cout
<< " [no value]\n";
53 #define PRINT_MACRO(X) print_macro(#X, BOOST_PP_STRINGIZE(=X))
60 PRINT_MACRO(__GCCXML__
);
61 PRINT_MACRO(__WAVE__
);
62 PRINT_MACRO(__MWERKS__
);
64 PRINT_MACRO(_MSC_VER
);
65 PRINT_MACRO(__clang__
);
67 PRINT_MACRO(__BORLANDC__
);
68 PRINT_MACRO(__IBMC__
);
69 PRINT_MACRO(__IBMCPP__
);
70 PRINT_MACRO(__SUNPRO_CC
);
71 PRINT_MACRO(__CUDACC__
);
72 PRINT_MACRO(__PATHSCALE__
);
73 PRINT_MACRO(__CODEGEARC__
);
74 PRINT_MACRO(__HP_aCC
);
78 PRINT_MACRO(__INTEL_COMPILER
);
79 PRINT_MACRO(__GNUC__
);
80 PRINT_MACRO(__GXX_EXPERIMENTAL_CXX0X__
);
84 PRINT_MACRO(__cplusplus
);
85 PRINT_MACRO(__STDC_VERSION__
);
86 PRINT_MACRO(__EDG_VERSION__
);
87 PRINT_MACRO(__INTELLISENSE__
);
88 PRINT_MACRO(__WAVE_HAS_VARIADICS__
);
92 PRINT_MACRO(BOOST_PP_CONFIG_ERRORS
);
93 PRINT_MACRO(BOOST_PP_CONFIG_EXTENDED_LINE_INFO
);
94 PRINT_MACRO(BOOST_PP_CONFIG_FLAGS());
95 PRINT_MACRO(BOOST_PP_VARIADICS_MSVC
);
96 PRINT_MACRO(BOOST_PP_VARIADIC_HAS_OPT());