1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4<title>Predefined Macros</title> 5<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 6<link href="theme/style.css" rel="stylesheet" type="text/css"> 7</head> 8 9<body> 10<table width="100%" border="0" cellspacing="2" background="theme/bkd2.gif"> 11 <tr> 12 <td width="21"> <h1></h1></td> 13 <td width="885"> <font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="6">Predefined 14 Macros </font></b></font></td> 15 <td width="96"><a href="http://www.boost.org"><img src="theme/wave.gif" width="93" height="68" align="right" border="0"></a></td> 16 </tr> 17</table> 18<br> 19<table border="0"> 20 <tr> 21 <td width="10"></td> 22 <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td> 23 <td width="30"><a href="class_reference_inptpolcy.html"><img src="theme/l_arr.gif" width="20" height="19" border="0"></a></td> 24 <td width="30"><a href="macro_expansion_process.html"><img src="theme/r_arr.gif" border="0"></a></td> 25 </tr> 26</table> 27<p dir="ltr">The following table lists the macros, which are predefined by the 28 <tt>Wave</tt> library. Some of these (all except the <code class="keyword">__LINE__</code>, 29 <code class="keyword">__FILE__</code>, <code class="keyword">__BASE_FILE__</code>, <code class="keyword">__DATE__</code>, 30 <code class="keyword">__TIME__</code>, <code class="keyword">__STDC__, __INCLUDE_LEVEL__</code> 31 and <code class="keyword">__cplusplus</code> macros) may be undefined from the command line of the driver executable 32 (<a href="wave_driver.html">see</a> the -U option) or through the function <a href="class_reference_context.html#remove_macro_definition">remove_macro_definition()</a>.</p> 33<table width="90%" border="0" align="center"> 34 <tr> 35 <td colspan="3" class="table_title"><b>Summary of predefined macros</b></td> 36 </tr> 37 <tr class="table_title"> 38 <td width="28%"><b>Name</b></td> 39 <td width="62%"><p><code><font face="Verdana, Arial, Helvetica, sans-serif">Value</font></code></p></td> 40 <td width="10%">Undefinable</td> 41 </tr> 42 <tr> 43 <td width="28%" class="table_cells"><code>__STDC__</code></td> 44 <td width="62%" class="table_cells"><p> 1 (a decimal constant)</p></td> 45 <td width="10%" class="table_cells"><p>yes</p></td> 46 </tr> 47 <tr> 48 <td width="28%" class="table_cells"><code>__cplusplus</code></td> 49 <td width="62%" class="table_cells"> <p>199711L (a decimal constant), this 50 is defined in C++ mode only (C99 mode is off)<br> 51 In the C++0x mode this decimal constant is guaranteed to be larger than 52 199711L (the concrete value is to be defined by the C++ committee).</p></td> 53 <td width="10%" class="table_cells"><p>no</p></td> 54 </tr> 55 <tr> 56 <td class="table_cells"><code>__LINE__</code></td> 57 <td class="table_cells"><p>The line number of the current source line (a decimal 58 constant)</p></td> 59 <td class="table_cells"><p>no</p></td> 60 </tr> 61 <tr> 62 <td class="table_cells"><code>__FILE__</code></td> 63 <td class="table_cells"><p>The presumed name of the source file (a character string literal)</p></td> 64 <td class="table_cells"><p>no</p></td> 65 </tr> 66 <tr> 67 <td class="table_cells"><code>__BASE_FILE__</code></td> 68 <td class="table_cells"><p> This macro expands to the name of the main input file (a character string literal). This is the source file that was specified during construction of the <a href="class_reference_context.html"><tt>wave::context</tt></a> template.</p></td> 69 <td class="table_cells"><p>no</p></td> 70 </tr> 71 <tr> 72 <td class="table_cells"><code>__DATE__</code></td> 73 <td class="table_cells"><p>The date of translation of the source file (a character 74 string literal of the form<br> 75 "Mmm dd yyyy", where the names of the months are the same as 76 those generated by the asctime function, and the first character of dd 77 is a space character if the value is less than 10). </p></td> 78 <td class="table_cells"><p>no</p></td> 79 </tr> 80 <tr> 81 <td class="table_cells"><code>__TIME__</code></td> 82 <td class="table_cells"><p>The time of translation of the source file (a character 83 string literal of the form "hh:mm:ss"<br> 84 as in the time generated by the asctime function).</p></td> 85 <td class="table_cells"><p>no</p></td> 86 </tr> 87 <tr> 88 <td class="table_cells"><code>__INCLUDE_LEVEL__</code></td> 89 <td class="table_cells"><p>A decimal integer constant that represents the 90 depth of nesting in include <br> 91 files. The value of this macro is incremented on every <tt>#include</tt> 92 directive <br> 93 and decremented at every end of file. </p></td> 94 <td class="table_cells"><p>no</p></td> 95 </tr> 96 <tr> 97 <td class="table_cells"><code>__WAVE__</code><br> <code>__SPIRIT_PP__</code></td> 98 <td class="table_cells"><p>The version of the driver program (a hexadecinal 99 constant of the form 0xMmrr, where <span class="literal">'M'</span> is 100 the major version number, <span class="literal">'m'</span> the minor version 101 number and <span class="literal">'rr'</span> the release number).</p></td> 102 <td class="table_cells"><p>yes</p></td> 103 </tr> 104 <tr> 105 <td class="table_cells"><code>__WAVE_VERSION__</code><br> <code>__SPIRIT_PP_VERSION__</code></td> 106 <td class="table_cells"><p>The full version number of the driver program (a 107 hexadecimal constant of the form 0xMmrrbbbb, where <span class="literal">'M'</span> 108 is the major version number, <span class="literal">'m'</span> the minor 109 version number, <span class="literal">'rr'</span> the release number and 110 <span class="literal">'bbbb'</span> the build number).</p></td> 111 <td class="table_cells"><p>yes</p></td> 112 </tr> 113 <tr> 114 <td class="table_cells"><code>__WAVE_VERSION_STR__</code><br> <code>__SPIRIT_PP_VERSION_STR__</code></td> 115 <td class="table_cells"><p>The full version number of the driver program (a 116 character string literal of the form <span class="string">"M.m.rr.bbbb"</span>, 117 where <span class="literal">'M'</span> is the major version number, <span class="literal">'m'</span> 118 the minor version number, <span class="literal">'rr'</span> the release 119 number and <span class="literal">'bbbb'</span> the build number).</p></td> 120 <td class="table_cells"><p>yes</p></td> 121 </tr> 122 <tr> 123 <td class="table_cells"><code>__STDC_VERSION__</code></td> 124 <td class="table_cells"><p>199901L (a decimal constant), this is defined in C99 and C++0x modes only</p></td> 125 <td class="table_cells"><p>yes</p></td> 126 </tr> 127 <tr> 128 <td class="table_cells"><code>__STDC_HOSTED__</code></td> 129 <td class="table_cells"><p>0L (a decimal constant), this is defined in C99 and C++0x modes only</p></td> 130 <td class="table_cells"><p>yes</p></td> 131 </tr> 132 <tr> 133 <td class="table_cells"><code>__WAVE_HAS_VARIADICS__</code></td> 134 <td class="table_cells"><p>1 (a decimal constant), this is defined in C++ 135 mode only if variadics and placemarkers are enabled, and it is defined 136 in the C99, C++0x, and C++2A modes</p></td> 137 <td class="table_cells"><p>no</p></td> 138 </tr> 139 <tr> 140 <td class="table_cells"><code>__WAVE_CONFIG__</code></td> 141 <td class="table_cells"><p>The configuration information used during the compilation of the Wave library. This is a hexadecimal constant, where each of the bits represents a certain configuration option enabled/disabled during the compilation. You can query this contant using the following macro constants available in the <tt>wave_config_constant.hpp</tt> file:</p> 142 <blockquote> 143 <p> <tt>BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG</tt> (value: <span class="literal">0x1</span>) <br> 144 Variadics and placemarkers are supported</p> 145 <p><tt>BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG</tt> (value: <span class="literal">0x02</span>)<br> 146 <span class="preprocessor">#pragma once</span> (<span class="keyword">_Pragma(once))</span> is supported </p> 147 <p><tt>BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG</tt> (value: <span class="literal">0x04</span>)<br>MS Extensions are supported </p> 148 <p><tt>BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG</tt> (value: <span class="literal">0x08</span>)<br> 149 The bodies of <span class="preprocessor">#pragma</span> statements (operator <span class="keyword">_Pragma</span>) will be preprocessed 150 <p><tt>BOOST_WAVE_USE_STRICT_LEXER_CONFIG</tt> (value: <span class="literal">0x10</span>)<br> 151 The C/C++ lexers recognize the 152 strict C99/C++ basic source character set. If it is not defined or defined 153 to zero, the lexers recognize the <span class="string">'$'</span> character as part of identifiers.</p> 154 </blockquote> 155 <p><br> 156 </p></td> 157 <td class="table_cells"><p>yes</p></td> 158 </tr> 159</table> 160<br> 161<table border="0"> 162 <tr> 163 <td width="10"></td> 164 <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td> 165 <td width="30"><a href="class_reference_inptpolcy.html"><img src="theme/l_arr.gif" width="20" height="19" border="0"></a></td> 166 <td width="30"><a href="macro_expansion_process.html"><img src="theme/r_arr.gif" border="0"></a></td> 167 </tr> 168</table> 169<hr size="1"> 170<p class="copyright">Copyright © 2003-2011 Hartmut Kaiser<br> 171 <br> 172 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p> 173<span class="updated"></span> 174<p class="copyright"><span class="updated">Last updated: 175 <!-- #BeginDate format:fcAm1m -->Sunday, January 9, 2011 16:12<!-- #EndDate --> 176 </span></p> 177</body> 178</html> 179