| 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 mode 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 mode 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 mode</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-2007 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 -->Monday, March 13, 2006 13:47<!-- #EndDate --> |
|---|
| 176 | </span></p> |
|---|
| 177 | </body> |
|---|
| 178 | </html> |
|---|