Completed all changes from review.

This commit is contained in:
Rene Rivera
2013-04-02 21:40:46 -05:00
parent c22d44d0ce
commit b10e3490ec
25 changed files with 639 additions and 1670 deletions

View File

@ -40,10 +40,12 @@
<dt><span class="section"><a href="predef/reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt> <dt><span class="section"><a href="predef/reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt>
<dt><span class="section"><a href="predef/reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt> <dt><span class="section"><a href="predef/reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt>
<dt><span class="section"><a href="predef/reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt> <dt><span class="section"><a href="predef/reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
<dt><span class="section"><a href="predef/reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> operating system macros</a></span></dt> <dt><span class="section"><a href="predef/reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
<dt><span class="section"><a href="predef/reference/other_macros.html">Other macros</a></span></dt>
<dt><span class="section"><a href="predef/reference/version_definition_macros.html">Version definition <dt><span class="section"><a href="predef/reference/version_definition_macros.html">Version definition
macros</a></span></dt> macros</a></span></dt>
</dl></dd> </dl></dd>
<dt><span class="section"><a href="predef/acknoledgements.html">Acknoledgements</a></span></dt>
</dl> </dl>
</div> </div>
<div class="warning"><table border="0" summary="Warning"> <div class="warning"><table border="0" summary="Warning">
@ -57,7 +59,7 @@
</table></div> </table></div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: March 20, 2013 at 04:42:44 GMT</small></p></td> <td align="left"><p><small>Last revised: April 03, 2013 at 02:20:25 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -48,6 +48,13 @@
<li class="listitem"> <li class="listitem">
If possible, the predef will be defined as the version number detected. If possible, the predef will be defined as the version number detected.
</li> </li>
<li class="listitem">
The predef must define <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code>
macros.
</li>
<li class="listitem">
The predef must define a symbolic constant string name macro.
</li>
<li class="listitem"> <li class="listitem">
The predef must declare itself, after being defined, for the testing system. The predef must declare itself, after being defined, for the testing system.
</li> </li>
@ -127,14 +134,24 @@ Documentation about what is detected.
that the predef was detected: that the predef was detected:
</p> </p>
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span> <pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span>
<span class="preprocessor">#undef</span> <span class="identifier">BOOST_category_tag</span> <span class="preprocessor"># undef</span> <span class="identifier">BOOST_category_tag</span>
<span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span> <span class="preprocessor"># if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span> <span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
<span class="preprocessor">#else</span> <span class="preprocessor"># else</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span> <span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span>
<span class="preprocessor">#endif</span> <span class="preprocessor"># endif</span>
<span class="preprocessor">#endif</span> <span class="preprocessor">#endif</span>
</pre> </pre>
<p>
We also need to provide the <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code> versions of the predef. And for
convenience we also want to provide a <code class="computeroutput"><span class="special">*</span><span class="identifier">_NAME</span></code> macro:
</p>
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_category_tag</span>
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag_AVAILABLE</span>
<span class="preprocessor">#endif</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_catagory_tag_NAME</span> <span class="string">"Name"</span>
</pre>
<p> <p>
The testing of the predef macros is automated to generate checks for all the The testing of the predef macros is automated to generate checks for all the
defined predefs, whether detected or not. To do this we need to declare the defined predefs, whether detected or not. To do this we need to declare the
@ -142,7 +159,7 @@ Documentation about what is detected.
the test programs they expand out specially to create informational output: the test programs they expand out specially to create informational output:
</p> </p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span> <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="identifier">BOOST_PREDEF_DECLARE_TEST</span><span class="special">(</span><span class="identifier">BOOST_category_tag</span><span class="special">,</span><span class="string">"Name"</span><span class="special">)</span> <span class="identifier">BOOST_PREDEF_DECLARE_TEST</span><span class="special">(</span><span class="identifier">BOOST_category_tag</span><span class="special">,</span><span class="identifier">BOOST_category_tag_NAME</span><span class="special">)</span>
</pre> </pre>
<p> <p>
And, of course, we last need to close out the include guard: And, of course, we last need to close out the include guard:
@ -164,7 +181,7 @@ Documentation about what is detected.
by compilers. For example the EDG compiler uses a simple 3-digit version macro by compilers. For example the EDG compiler uses a simple 3-digit version macro
(M,N,P). It can be decomesed and defined as: (M,N,P). It can be decomesed and defined as:
</p> </p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CXX_EDG</span> <span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">__EDG_VERSION__</span><span class="special">)</span> <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CCOMP_EDG</span> <span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">__EDG_VERSION__</span><span class="special">)</span>
</pre> </pre>
<p> <p>
The decomposition macros are split into three types: decimal decomposition, The decomposition macros are split into three types: decimal decomposition,

View File

@ -18,12 +18,12 @@
<a name="predef.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a> <a name="predef.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
</h2></div></div></div> </h2></div></div></div>
<p> <p>
This library defines a set of compiler, architecture, operating system, and This library defines a set of compiler, architecture, operating system, library,
library version numbers from the information it can gather of C++ predefined and other version numbers from the information it can gather of C, C++, Objective
macros or those defined in generally available headers. The idea for this library C, and Objective C++ predefined macros or those defined in generally available
grew out of a proposal to extend the Boost Config library to provide more, headers. The idea for this library grew out of a proposal to extend the Boost
and consistent, information than the feature definitions it supports. What Config library to provide more, and consistent, information than the feature
follows is an edited version of that brief proposal. definitions it supports. What follows is an edited version of that brief proposal.
</p> </p>
<h4> <h4>
<a name="predef.introduction.h0"></a> <a name="predef.introduction.h0"></a>
@ -63,18 +63,27 @@
<p> <p>
The current Predef library is now, both an independent library, and expanded The current Predef library is now, both an independent library, and expanded
in scope. It includes detection and definition of architectures, compilers, in scope. It includes detection and definition of architectures, compilers,
languages, libraries, and operating systems. The key benefits are: languages, libraries, operating systems, and endianness. The key benefits are:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"> <li class="listitem">
Version numbers that are always defined so that one doesn't have to guard Version numbers that are always defined so that one doesn't have to guard
with <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>. with <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>.
</li> </li>
<li class="listitem">
Guard macros that can be used for <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>
checks.
</li>
<li class="listitem"> <li class="listitem">
All possible definitions are included with the single <code class="computeroutput"><span class="preprocessor">#include</span> All possible definitions are included with the single <code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
so that it's friendly to precompiled header usage. so that it's friendly to precompiled header usage.
</li> </li>
<li class="listitem">
Specific definitions can be included, ex. <code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">os</span><span class="special">/</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
for single checks.
</li>
<li class="listitem"> <li class="listitem">
Predefs can be directly used in both preprocessor and compiler expressions Predefs can be directly used in both preprocessor and compiler expressions
for comparison to other similarly defined values. for comparison to other similarly defined values.
@ -155,7 +164,9 @@
</li> </li>
<li class="listitem"> <li class="listitem">
Along with the above, it might be good to add some user control as to which Along with the above, it might be good to add some user control as to which
headers are included with the top-level header. headers are included with the top-level header. Although in the current
form of the library this is less of an issue as one can include the specific
headers one needs.
</li> </li>
<li class="listitem"> <li class="listitem">
Additionally, even if there is no auto-configure style option.. It would Additionally, even if there is no auto-configure style option.. It would

View File

@ -22,7 +22,8 @@
<dt><span class="section"><a href="reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt> <dt><span class="section"><a href="reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt>
<dt><span class="section"><a href="reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt> <dt><span class="section"><a href="reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt>
<dt><span class="section"><a href="reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt> <dt><span class="section"><a href="reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
<dt><span class="section"><a href="reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> operating system macros</a></span></dt> <dt><span class="section"><a href="reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
<dt><span class="section"><a href="reference/other_macros.html">Other macros</a></span></dt>
<dt><span class="section"><a href="reference/version_definition_macros.html">Version definition <dt><span class="section"><a href="reference/version_definition_macros.html">Version definition
macros</a></span></dt> macros</a></span></dt>
</dl></div> </dl></div>

View File

@ -19,9 +19,11 @@
</h3></div></div></div> </h3></div></div></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h0"></a> <a name="predef.reference.boost_arch_architecture_macros.h0"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_alpha_http_en_wikiped"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_alpha_http_en_wikiped"><code class="computeroutput"><span class="identifier">BOOST_ARCH_ALPHA</span></code>, DEC <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_alpha"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_alpha"><code class="computeroutput"><span class="identifier">BOOST_ARCH_ALPHA</span></code></a>
Alpha</a>
</h5> </h5>
<p>
<a href="http://en.wikipedia.org/wiki/DEC_Alpha" target="_top">DEC Alpha</a> architecture.
</p>
<div class="informaltable"><table class="table"> <div class="informaltable"><table class="table">
<colgroup> <colgroup>
<col> <col>
@ -116,91 +118,6 @@
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h1"></a> <a name="predef.reference.boost_arch_architecture_macros.h1"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_amd64_http_en_wikiped"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_amd64_http_en_wikiped"><code class="computeroutput"><span class="identifier">BOOST_ARCH_AMD64</span></code>, Advanced
Micro Devices AMD 64 architecture.</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Symbol
</p>
</th>
<th>
<p>
Version
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__amd64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__amd64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__x86_64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__x86_64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_M_X64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="predef.reference.boost_arch_architecture_macros.h2"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_arm"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_arm"><code class="computeroutput"><span class="identifier">BOOST_ARCH_ARM</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_arm"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_arm"><code class="computeroutput"><span class="identifier">BOOST_ARCH_ARM</span></code></a>
</h5> </h5>
<p> <p>
@ -299,6 +216,81 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h2"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_blackfin"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_blackfin"><code class="computeroutput"><span class="identifier">BOOST_ARCH_BLACKFIN</span></code></a>
</h5>
<p>
Blackfin Processors from Analog Devices.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Symbol
</p>
</th>
<th>
<p>
Version
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__bfin__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__BFIN__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">bfin</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BFIN</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="predef.reference.boost_arch_architecture_macros.h3"></a> <a name="predef.reference.boost_arch_architecture_macros.h3"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_convex"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_convex"><code class="computeroutput"><span class="identifier">BOOST_ARCH_CONVEX</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_convex"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_convex"><code class="computeroutput"><span class="identifier">BOOST_ARCH_CONVEX</span></code></a>
</h5> </h5>
@ -400,105 +392,6 @@
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h4"></a> <a name="predef.reference.boost_arch_architecture_macros.h4"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_ia64"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_ia64"><code class="computeroutput"><span class="identifier">BOOST_ARCH_IA64</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Ia64" target="_top">Intel IA-64</a> architecture.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Symbol
</p>
</th>
<th>
<p>
Version
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__ia64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_IA64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__IA64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__ia64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_M_IA64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__itanium__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="predef.reference.boost_arch_architecture_macros.h5"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_m68k"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_m68k"><code class="computeroutput"><span class="identifier">BOOST_ARCH_M68K</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_m68k"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_m68k"><code class="computeroutput"><span class="identifier">BOOST_ARCH_M68K</span></code></a>
</h5> </h5>
<p> <p>
@ -765,7 +658,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h6"></a> <a name="predef.reference.boost_arch_architecture_macros.h5"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_mips"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_mips"><code class="computeroutput"><span class="identifier">BOOST_ARCH_MIPS</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_mips"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_mips"><code class="computeroutput"><span class="identifier">BOOST_ARCH_MIPS</span></code></a>
</h5> </h5>
<p> <p>
@ -949,7 +842,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h7"></a> <a name="predef.reference.boost_arch_architecture_macros.h6"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_parisk"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_parisk"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PARISK</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_parisk"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_parisk"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PARISK</span></code></a>
</h5> </h5>
<p> <p>
@ -1109,7 +1002,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h8"></a> <a name="predef.reference.boost_arch_architecture_macros.h7"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_ppc"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_ppc"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PPC</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_ppc"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_ppc"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PPC</span></code></a>
</h5> </h5>
<p> <p>
@ -1316,7 +1209,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h9"></a> <a name="predef.reference.boost_arch_architecture_macros.h8"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_pyramid"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_pyramid"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PYRAMID</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_pyramid"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_pyramid"><code class="computeroutput"><span class="identifier">BOOST_ARCH_PYRAMID</span></code></a>
</h5> </h5>
<p> <p>
@ -1353,7 +1246,7 @@
</tr></tbody> </tr></tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h10"></a> <a name="predef.reference.boost_arch_architecture_macros.h9"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_rs6000"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_rs6000"><code class="computeroutput"><span class="identifier">BOOST_ARCH_RS6000</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_rs6000"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_rs6000"><code class="computeroutput"><span class="identifier">BOOST_ARCH_RS6000</span></code></a>
</h5> </h5>
<p> <p>
@ -1440,7 +1333,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h11"></a> <a name="predef.reference.boost_arch_architecture_macros.h10"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sparc"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sparc"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SPARC</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sparc"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sparc"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SPARC</span></code></a>
</h5> </h5>
<p> <p>
@ -1515,7 +1408,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h12"></a> <a name="predef.reference.boost_arch_architecture_macros.h11"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sh"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sh"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SH</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sh"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sh"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SH</span></code></a>
</h5> </h5>
<p> <p>
@ -1627,7 +1520,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h13"></a> <a name="predef.reference.boost_arch_architecture_macros.h12"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sys370"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sys370"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SYS370</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sys370"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sys370"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SYS370</span></code></a>
</h5> </h5>
<p> <p>
@ -1678,7 +1571,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h14"></a> <a name="predef.reference.boost_arch_architecture_macros.h13"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sys390"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sys390"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SYS390</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_sys390"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_sys390"><code class="computeroutput"><span class="identifier">BOOST_ARCH_SYS390</span></code></a>
</h5> </h5>
<p> <p>
@ -1729,9 +1622,56 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h15"></a> <a name="predef.reference.boost_arch_architecture_macros.h14"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_x86"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_x86"><code class="computeroutput"><span class="identifier">BOOST_ARCH_X86</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_x86"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_x86"><code class="computeroutput"><span class="identifier">BOOST_ARCH_X86</span></code></a>
</h5> </h5>
<p>
<a href="http://en.wikipedia.org/wiki/X86" target="_top">Intel x86</a> architecture.
This is a category to indicate that either <code class="computeroutput"><span class="identifier">BOOST_ARCH_X86_32</span></code>
or <code class="computeroutput"><span class="identifier">BOOST_ARCH_X86_64</span></code> is detected.
</p>
<h5>
<a name="predef.reference.boost_arch_architecture_macros.h15"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_z"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_z"><code class="computeroutput"><span class="identifier">BOOST_ARCH_Z</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_top">z/Architecture</a>
architecture.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Symbol
</p>
</th>
<th>
<p>
Version
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__SYSC_ZARCH__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr></tbody>
</table></div>
<h5>
<a name="predef.reference.boost_arch_architecture_macros.h16"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_x86_32"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_x86_32"><code class="computeroutput"><span class="identifier">BOOST_ARCH_X86_32</span></code></a>
</h5>
<p> <p>
<a href="http://en.wikipedia.org/wiki/X86" target="_top">Intel x86</a> architecture: <a href="http://en.wikipedia.org/wiki/X86" target="_top">Intel x86</a> architecture:
If available versions [3-6] are specifically detected. If available versions [3-6] are specifically detected.
@ -1961,12 +1901,11 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_arch_architecture_macros.h16"></a> <a name="predef.reference.boost_arch_architecture_macros.h17"></a>
<span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_z"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_z"><code class="computeroutput"><span class="identifier">BOOST_ARCH_Z</span></code></a> <span class="phrase"><a name="predef.reference.boost_arch_architecture_macros.boost_arch_x86_64"></a></span><a class="link" href="boost_arch_architecture_macros.html#predef.reference.boost_arch_architecture_macros.boost_arch_x86_64"><code class="computeroutput"><span class="identifier">BOOST_ARCH_X86_64</span></code></a>
</h5> </h5>
<p> <p>
<a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_top">z/Architecture</a> <a href="http://en.wikipedia.org/wiki/Ia64" target="_top">Intel IA-64</a> architecture.
architecture.
</p> </p>
<div class="informaltable"><table class="table"> <div class="informaltable"><table class="table">
<colgroup> <colgroup>
@ -1985,10 +1924,11 @@
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody><tr> <tbody>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">__SYSC_ZARCH__</span></code> <code class="computeroutput"><span class="identifier">__x86_64</span></code>
</p> </p>
</td> </td>
<td> <td>
@ -1996,7 +1936,128 @@
<span class="bold"><strong>detection</strong></span> <span class="bold"><strong>detection</strong></span>
</p> </p>
</td> </td>
</tr></tbody> </tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__x86_64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__ia64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_IA64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__IA64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__ia64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_M_IA64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__itanium__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__amd64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__amd64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">_M_X64</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
</tbody>
</table></div> </table></div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

View File

@ -605,7 +605,7 @@
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_gccxml"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_gccxml"><code class="computeroutput"><span class="identifier">BOOST_COMP_GCCXML</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_gccxml"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_gccxml"><code class="computeroutput"><span class="identifier">BOOST_COMP_GCCXML</span></code></a>
</h5> </h5>
<p> <p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">GCC XML</a> compiler. <a href="http://www.gccxml.org/" target="_top">GCC XML</a> compiler.
</p> </p>
<div class="informaltable"><table class="table"> <div class="informaltable"><table class="table">
<colgroup> <colgroup>
@ -1279,84 +1279,6 @@
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h21"></a> <a name="predef.reference.boost_comp_compiler_macros.h21"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_mingw"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_mingw"><code class="computeroutput"><span class="identifier">BOOST_COMP_MINGW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/MinGW" target="_top">MinGW</a> compiler. Version
number available as major, minor, and patch.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Symbol
</p>
</th>
<th>
<p>
Version
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__MINGW32__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__MINGW64__</span></code>
</p>
</td>
<td>
<p>
<span class="bold"><strong>detection</strong></span>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__MINGW64_VERSION_MAJOR</span></code>,
<code class="computeroutput"><span class="identifier">__MINGW64_VERSION_MINOR</span></code>
</p>
</td>
<td>
<p>
V.R.0
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">__MINGW32_VERSION_MAJOR</span></code>,
<code class="computeroutput"><span class="identifier">__MINGW32_VERSION_MINOR</span></code>
</p>
</td>
<td>
<p>
V.R.0
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="predef.reference.boost_comp_compiler_macros.h22"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_mpw"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_mpw"><code class="computeroutput"><span class="identifier">BOOST_COMP_MPW</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_mpw"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_mpw"><code class="computeroutput"><span class="identifier">BOOST_COMP_MPW</span></code></a>
</h5> </h5>
<p> <p>
@ -1432,7 +1354,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h23"></a> <a name="predef.reference.boost_comp_compiler_macros.h22"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_palm"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_palm"><code class="computeroutput"><span class="identifier">BOOST_COMP_PALM</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_palm"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_palm"><code class="computeroutput"><span class="identifier">BOOST_COMP_PALM</span></code></a>
</h5> </h5>
<p> <p>
@ -1483,7 +1405,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h24"></a> <a name="predef.reference.boost_comp_compiler_macros.h23"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_pgi"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_pgi"><code class="computeroutput"><span class="identifier">BOOST_COMP_PGI</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_pgi"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_pgi"><code class="computeroutput"><span class="identifier">BOOST_COMP_PGI</span></code></a>
</h5> </h5>
<p> <p>
@ -1535,7 +1457,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h25"></a> <a name="predef.reference.boost_comp_compiler_macros.h24"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_sgi"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_sgi"><code class="computeroutput"><span class="identifier">BOOST_COMP_SGI</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_sgi"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_sgi"><code class="computeroutput"><span class="identifier">BOOST_COMP_SGI</span></code></a>
</h5> </h5>
<p> <p>
@ -1611,7 +1533,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h26"></a> <a name="predef.reference.boost_comp_compiler_macros.h25"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_sunpro"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_sunpro"><code class="computeroutput"><span class="identifier">BOOST_COMP_SUNPRO</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_sunpro"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_sunpro"><code class="computeroutput"><span class="identifier">BOOST_COMP_SUNPRO</span></code></a>
</h5> </h5>
<p> <p>
@ -1687,7 +1609,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h27"></a> <a name="predef.reference.boost_comp_compiler_macros.h26"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_tendra"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_tendra"><code class="computeroutput"><span class="identifier">BOOST_COMP_TENDRA</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_tendra"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_tendra"><code class="computeroutput"><span class="identifier">BOOST_COMP_TENDRA</span></code></a>
</h5> </h5>
<p> <p>
@ -1725,7 +1647,7 @@
</tr></tbody> </tr></tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h28"></a> <a name="predef.reference.boost_comp_compiler_macros.h27"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_msvc"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_msvc"><code class="computeroutput"><span class="identifier">BOOST_COMP_MSVC</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_msvc"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_msvc"><code class="computeroutput"><span class="identifier">BOOST_COMP_MSVC</span></code></a>
</h5> </h5>
<p> <p>
@ -1789,7 +1711,7 @@
</tbody> </tbody>
</table></div> </table></div>
<h5> <h5>
<a name="predef.reference.boost_comp_compiler_macros.h29"></a> <a name="predef.reference.boost_comp_compiler_macros.h28"></a>
<span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_watcom"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_watcom"><code class="computeroutput"><span class="identifier">BOOST_COMP_WATCOM</span></code></a> <span class="phrase"><a name="predef.reference.boost_comp_compiler_macros.boost_comp_watcom"></a></span><a class="link" href="boost_comp_compiler_macros.html#predef.reference.boost_comp_compiler_macros.boost_comp_watcom"><code class="computeroutput"><span class="identifier">BOOST_COMP_WATCOM</span></code></a>
</h5> </h5>
<p> <p>

View File

@ -7,7 +7,7 @@
<link rel="home" href="../../index.html" title="Predef 1.0"> <link rel="home" href="../../index.html" title="Predef 1.0">
<link rel="up" href="../reference.html" title="Reference"> <link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros"> <link rel="prev" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
<link rel="next" href="boost_os_operating_system_macros.html" title="BOOST_OS_ operating system macros"> <link rel="next" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="spirit-nav"> <div class="spirit-nav">

File diff suppressed because it is too large Load Diff

View File

@ -6,11 +6,12 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Predef 1.0"> <link rel="home" href="../../index.html" title="Predef 1.0">
<link rel="up" href="../reference.html" title="Reference"> <link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="boost_os_operating_system_macros.html" title="BOOST_OS_ operating system macros"> <link rel="prev" href="other_macros.html" title="Other macros">
<link rel="next" href="../acknoledgements.html" title="Acknoledgements">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a> <a accesskey="p" href="other_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../acknoledgements.html"><img src="../../images/next.png" alt="Next"></a>
</div> </div>
<div class="section predef_reference_version_definition_macros"> <div class="section predef_reference_version_definition_macros">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
@ -177,7 +178,7 @@
</tr></table> </tr></table>
<hr> <hr>
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a> <a accesskey="p" href="other_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../acknoledgements.html"><img src="../../images/next.png" alt="Next"></a>
</div> </div>
</body> </body>
</html> </html>

View File

@ -32,25 +32,29 @@
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"> <li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code>for <code class="computeroutput"><span class="identifier">BOOST_ARCH_</span></code>for system/CPU
system/CPU architecture one is compiling for. architecture one is compiling for.
</li> </li>
<li class="listitem"> <li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_CXX_</span></code> for the compiler <code class="computeroutput"><span class="identifier">BOOST_COMP_</span></code> for the compiler
one is using. one is using.
</li> </li>
<li class="listitem"> <li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_</span></code> for language <code class="computeroutput"><span class="identifier">BOOST_LANG_</span></code> for language
standards one is compiling against. standards one is compiling against.
</li> </li>
<li class="listitem"> <li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_LIBC_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIBSTD_</span></code> for the C and C++ standard <code class="computeroutput"><span class="identifier">BOOST_LIB_C_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIB_STD_</span></code> for the C and C++ standard
library in use. library in use.
</li> </li>
<li class="listitem"> <li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> for the operating <code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> for the operating
system we are compiling to. system we are compiling to.
</li> </li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_</span></code> for endianness
of the os and architecture combination.
</li>
</ul></div> </ul></div>
<div class="note"><table border="0" summary="Note"> <div class="note"><table border="0" summary="Note">
<tr> <tr>
@ -74,7 +78,7 @@
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span> <span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_CXX_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">))</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_COMP_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">))</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at least version 4.0.0"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at least version 4.0.0"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">else</span> <span class="keyword">else</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@ -84,7 +88,7 @@
<p> <p>
As you might notice above the <code class="computeroutput"><span class="keyword">else</span></code> As you might notice above the <code class="computeroutput"><span class="keyword">else</span></code>
clause also covers the case where the particular compiler is not detected. clause also covers the case where the particular compiler is not detected.
But one can make the test specifically test for the detection. All predef definitions But one can make the test also test for the detection. All predef definitions
are defined as a zero (0) expression when not detected. Hence one could use are defined as a zero (0) expression when not detected. Hence one could use
the detection with a natural single condition. For example: the detection with a natural single condition. For example:
</p> </p>
@ -93,7 +97,7 @@
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span> <span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_CXX_GNUC</span><span class="special">)</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_COMP_GNUC</span><span class="special">)</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"This is GNU GCC!"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"This is GNU GCC!"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">else</span> <span class="keyword">else</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Not GNU GCC."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Not GNU GCC."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@ -107,8 +111,8 @@
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span> <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span> <span class="preprocessor">#if</span> <span class="identifier">BOOST_COMP_GNUC</span>
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span> <span class="preprocessor">#if</span> <span class="identifier">BOOST_COMP_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span>
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, of at least version 4."</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, of at least version 4."</span>
<span class="preprocessor">#else</span> <span class="preprocessor">#else</span>
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, less than version 4."</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, less than version 4."</span>
@ -123,6 +127,18 @@
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
<p>
In addition, for each version macro defined there is a <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code> macro defined only when the particular
aspect is detected. I.e. a definition equivalent to:
</p>
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_PREDEF_ABC</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_PREDEF_ABC_AVAILABLE</span>
<span class="preprocessor">#endif</span>
</pre>
<p>
Also for each aspect there is a macro defined with a descriptive name of what
the detection is.
</p>
<h4> <h4>
<a name="predef.using_the_predefs.h0"></a> <a name="predef.using_the_predefs.h0"></a>
<span class="phrase"><a name="predef.using_the_predefs.using_the_boost_version_number_m"></a></span><a class="link" href="using_the_predefs.html#predef.using_the_predefs.using_the_boost_version_number_m">Using the <span class="phrase"><a name="predef.using_the_predefs.using_the_boost_version_number_m"></a></span><a class="link" href="using_the_predefs.html#predef.using_the_predefs.using_the_boost_version_number_m">Using the

View File

@ -18,12 +18,12 @@ Boost C++ Libraries.]
[section Introduction] [section Introduction]
This library defines a set of compiler, architecture, operating system, This library defines a set of compiler, architecture, operating system,
and library version numbers from the information it can gather of C++ library, and other version numbers from the information it can gather of
predefined macros or those defined in generally available headers. The C, C++, Objective C, and Objective C++ predefined macros or those defined
idea for this library grew out of a proposal to extend the Boost Config in generally available headers. The idea for this library grew out of a
library to provide more, and consistent, information than the feature proposal to extend the Boost Config library to provide more, and consistent,
definitions it supports. What follows is an edited version of that brief information than the feature definitions it supports. What follows is
proposal. an edited version of that brief proposal.
[heading Proposal] [heading Proposal]
@ -51,12 +51,15 @@ consistently represent their version. This includes:
The current Predef library is now, both an independent library, and expanded The current Predef library is now, both an independent library, and expanded
in scope. It includes detection and definition of architectures, compilers, in scope. It includes detection and definition of architectures, compilers,
languages, libraries, and operating systems. The key benefits are: languages, libraries, operating systems, and endianness. The key benefits are:
* Version numbers that are always defined so that one doesn't have to guard * Version numbers that are always defined so that one doesn't have to guard
with `#ifdef`. with `#ifdef`.
* Guard macros that can be used for `#ifdef` checks.
* All possible definitions are included with the single `#include <boost/predef.h>` * All possible definitions are included with the single `#include <boost/predef.h>`
so that it's friendly to precompiled header usage. so that it's friendly to precompiled header usage.
* Specific definitions can be included, ex. `#include <boost/predef/os/windows.h>`
for single checks.
* Predefs can be directly used in both preprocessor and compiler expressions * Predefs can be directly used in both preprocessor and compiler expressions
for comparison to other similarly defined values. for comparison to other similarly defined values.
* The headers are usable from multiple languages, that support the C preprocessor. * The headers are usable from multiple languages, that support the C preprocessor.
@ -103,7 +106,9 @@ done:
interesting to add something like auto-configuration predefs. This way we can interesting to add something like auto-configuration predefs. This way we can
add definitions for user specific libraries and features. add definitions for user specific libraries and features.
* Along with the above, it might be good to add some user control as to which * Along with the above, it might be good to add some user control as to which
headers are included with the top-level header. headers are included with the top-level header. Although in the current
form of the library this is less of an issue as one can include the
specific headers one needs.
* Additionally, even if there is no auto-configure style option.. It would be * Additionally, even if there is no auto-configure style option.. It would be
good to add optionally included headers so that user can get consistent good to add optionally included headers so that user can get consistent
version number definitions for libraries they use. version number definitions for libraries they use.
@ -133,12 +138,13 @@ the particular item is not detected, and to a /positive/ value if it
is detected. The predef macros fall onto five categories each with is detected. The predef macros fall onto five categories each with
macros of a particular prefix: macros of a particular prefix:
* `BOOST_ARCHITECTURE_`for system/CPU architecture one is compiling for. * `BOOST_ARCH_`for system/CPU architecture one is compiling for.
* `BOOST_CXX_` for the compiler one is using. * `BOOST_COMP_` for the compiler one is using.
* `BOOST_LANGUAGE_` for language standards one is compiling against. * `BOOST_LANG_` for language standards one is compiling against.
* `BOOST_LIBC_` and `BOOST_LIBSTD_` for the C and C++ standard library * `BOOST_LIB_C_` and `BOOST_LIB_STD_` for the C and C++ standard library
in use. in use.
* `BOOST_OS_` for the operating system we are compiling to. * `BOOST_OS_` for the operating system we are compiling to.
* `BOOST_ENDIAN_` for endianness of the os and architecture combination.
[note The detected definitions are for the configuration one is targeting [note The detected definitions are for the configuration one is targeting
during the compile. In particular in a cross-compile this means the target during the compile. In particular in a cross-compile this means the target
@ -154,7 +160,7 @@ a choice based on the version of the GCC C++ compiler one would:
int main() int main()
{ {
if (BOOST_CXX_GNUC >= BOOST_VERSION_NUMBER(4,0,0)) if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0))
std::cout << "GCC compiler is at least version 4.0.0" << std::endl; std::cout << "GCC compiler is at least version 4.0.0" << std::endl;
else else
std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl; std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl;
@ -164,7 +170,7 @@ a choice based on the version of the GCC C++ compiler one would:
As you might notice above the `else` clause also covers the case where As you might notice above the `else` clause also covers the case where
the particular compiler is not detected. But one can make the test the particular compiler is not detected. But one can make the test
specifically test for the detection. All predef definitions are defined also test for the detection. All predef definitions are defined
as a zero (0) expression when not detected. Hence one could use the as a zero (0) expression when not detected. Hence one could use the
detection with a natural single condition. For example: detection with a natural single condition. For example:
@ -174,7 +180,7 @@ detection with a natural single condition. For example:
int main() int main()
{ {
if (BOOST_CXX_GNUC) if (BOOST_COMP_GNUC)
std::cout << "This is GNU GCC!" << std::endl; std::cout << "This is GNU GCC!" << std::endl;
else else
std::cout << "Not GNU GCC." << std::endl; std::cout << "Not GNU GCC." << std::endl;
@ -189,8 +195,8 @@ from the preprocessor:
#include <boost/predef.h> #include <boost/predef.h>
#include <iostream> #include <iostream>
#if BOOST_CXX_GNUC #if BOOST_COMP_GNUC
#if BOOST_CXX_GNUC >= BOOST_VERSION_NUMBER(4,0,0) #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
const char * the_compiler = "GNU GCC, of at least version 4." const char * the_compiler = "GNU GCC, of at least version 4."
#else #else
const char * the_compiler = "GNU GCC, less than version 4." const char * the_compiler = "GNU GCC, less than version 4."
@ -206,6 +212,19 @@ from the preprocessor:
} }
`` ``
In addition, for each version macro defined there is a
`*_AVAILABLE` macro defined only when the particular aspect is
detected. I.e. a definition equivalent to:
``
#if BOOST_PREDEF_ABC
#define BOOST_PREDEF_ABC_AVAILABLE
#endif
``
Also for each aspect there is a macro defined with a descriptive
name of what the detection is.
[heading Using the `BOOST_VERSION_NUMBER` macro] [heading Using the `BOOST_VERSION_NUMBER` macro]
All the predefs are defined to be a use of the `BOOST_VERSION_NUMBER` macro. All the predefs are defined to be a use of the `BOOST_VERSION_NUMBER` macro.
@ -264,6 +283,8 @@ All predefs need to follow a set of requirements:
* The predef must, by default, be defined to `BOOST_VERSION_NUMBER(0,0,1)` * The predef must, by default, be defined to `BOOST_VERSION_NUMBER(0,0,1)`
when the predef is detected. when the predef is detected.
* If possible, the predef will be defined as the version number detected. * If possible, the predef will be defined as the version number detected.
* The predef must define `*_AVAILABLE` macros.
* The predef must define a symbolic constant string name macro.
* The predef must declare itself, after being defined, for the testing * The predef must declare itself, after being defined, for the testing
system. system.
@ -335,15 +356,26 @@ to minimally indicate that the predef was detected:
`` ``
#if (condition_a) #if (condition_a)
#undef BOOST_category_tag # undef BOOST_category_tag
#if (condition_b) # if (condition_b)
#define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch) # define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
#else # else
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1) # define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
#endif # endif
#endif #endif
`` ``
We also need to provide the `*_AVAILABLE` versions of the predef. And
for convenience we also want to provide a `*_NAME` macro:
``
#if BOOST_category_tag
# define BOOST_category_tag_AVAILABLE
#endif
#define BOOST_catagory_tag_NAME "Name"
``
The testing of the predef macros is automated to generate checks for all The testing of the predef macros is automated to generate checks for all
the defined predefs, whether detected or not. To do this we need to the defined predefs, whether detected or not. To do this we need to
declare the predef to the test system. This declaration is empty for declare the predef to the test system. This declaration is empty for
@ -352,7 +384,7 @@ to create informational output:
`` ``
#include <boost/predef/detail/test.h> #include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,"Name") BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,BOOST_category_tag_NAME)
`` ``
And, of course, we last need to close out the include guard: And, of course, we last need to close out the include guard:
@ -375,7 +407,7 @@ uses a simple 3-digit version macro (M,N,P). It can be decomesed
and defined as: and defined as:
`` ``
#define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__) #define BOOST_CCOMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
`` ``
The decomposition macros are split into three types: decimal The decomposition macros are split into three types: decimal
@ -393,6 +425,7 @@ and "Y", "M", "D" for dates.
[section `BOOST_ARCH` architecture macros] [section `BOOST_ARCH` architecture macros]
[include ../include/boost/predef/architecture/*.h] [include ../include/boost/predef/architecture/*.h]
[include ../include/boost/predef/architecture/x86/*.h]
[endsect] [endsect]
[section `BOOST_COMP` compiler macros] [section `BOOST_COMP` compiler macros]
@ -404,12 +437,17 @@ and "Y", "M", "D" for dates.
[endsect] [endsect]
[section `BOOST_LIB` library macros] [section `BOOST_LIB` library macros]
[include ../include/boost/predef/library/*/*.h] [include ../include/boost/predef/library/c/*.h]
[include ../include/boost/predef/library/std/*.h]
[endsect] [endsect]
[section `BOOST_OS_` operating system macros] [section `BOOST_OS` operating system macros]
[include ../include/boost/predef/os/*.h] [include ../include/boost/predef/os/*.h]
[include ../include/boost/predef/os/*/*.h] [include ../include/boost/predef/os/bsd/*.h]
[endsect]
[section Other macros]
[include ../include/boost/predef/other/*.h]
[endsect] [endsect]
[section Version definition macros] [section Version definition macros]
@ -418,3 +456,22 @@ and "Y", "M", "D" for dates.
[endsect] [endsect]
[endsect] [endsect]
[section Acknoledgements]
The comprehensiveness of this library would not be
possible without the existance of the indispensible
resource that is the
[@http://sourceforge.net/p/predef/ Pre-defined C/C++ Compiler Macros]
Project. It was, and continues to be, the primary source
of the definitions that make up this library. Thanks
to Bjorn Reese and all the volunteers that make that
resource possible.
This library would be an incoherent mess if it weren't for
Boost community that provided invaluable feedback for the
eight years that it took to polish into a useable form.
In particular I would like to thank: ...
[endsect]

View File

@ -13,6 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/compiler.h> #include <boost/predef/compiler.h>
#include <boost/predef/library.h> #include <boost/predef/library.h>
#include <boost/predef/os.h> #include <boost/predef/os.h>
#include <boost/predef/endian.h> #include <boost/predef/other.h>
#endif #endif

View File

@ -9,11 +9,9 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_H #define BOOST_PREDEF_ARCHITECTURE_H
#include <boost/predef/architecture/alpha.h> #include <boost/predef/architecture/alpha.h>
#include <boost/predef/architecture/amd64.h>
#include <boost/predef/architecture/arm.h> #include <boost/predef/architecture/arm.h>
#include <boost/predef/architecture/blackfin.h> #include <boost/predef/architecture/blackfin.h>
#include <boost/predef/architecture/convex.h> #include <boost/predef/architecture/convex.h>
#include <boost/predef/architecture/ia64.h>
#include <boost/predef/architecture/m68k.h> #include <boost/predef/architecture/m68k.h>
#include <boost/predef/architecture/mips.h> #include <boost/predef/architecture/mips.h>
#include <boost/predef/architecture/parisc.h> #include <boost/predef/architecture/parisc.h>

View File

@ -12,7 +12,9 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/make.h> #include <boost/predef/make.h>
/*` /*`
[heading `BOOST_ARCH_ALPHA`, [@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha]] [heading `BOOST_ARCH_ALPHA`]
[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture.
[table [table
[[__predef_symbol__] [__predef_version__]] [[__predef_symbol__] [__predef_version__]]

View File

@ -1,47 +0,0 @@
/*
Copyright Redshift Software, Inc. 2008-2013
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)
*/
#ifndef BOOST_PREDEF_ARCHITECTURE_AMD64_H
#define BOOST_PREDEF_ARCHITECTURE_AMD64_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_AMD64`, [@http://en.wikipedia.org/wiki/Amd64 Advanced Micro Devices AMD 64] architecture.]
[table
[[__predef_symbol__] [__predef_version__]]
[[`__amd64__`] [__predef_detection__]]
[[`__amd64`] [__predef_detection__]]
[[`__x86_64__`] [__predef_detection__]]
[[`__x86_64`] [__predef_detection__]]
[[`_M_X64`] [__predef_detection__]]
]
*/
#define BOOST_ARCH_AMD64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__amd64__) || defined(__amd64) || \
defined(__x86_64__) || defined(__x86_64) || \
defined(_M_X64)
# undef BOOST_ARCH_AMD64
# define BOOST_ARCH_AMD64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#if BOOST_ARCH_AMD64
# define BOOST_ARCH_AMD64_AVAILABLE
#endif
#define BOOST_ARCH_AMD64_NAME "Advanced Micro Devices AMD 64"
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_AMD64,BOOST_ARCH_AMD64_NAME)
#endif

View File

@ -1,50 +0,0 @@
/*
Copyright Redshift Software, Inc. 2008-2013
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)
*/
#ifndef BOOST_PREDEF_ARCHITECTURE_IA64_H
#define BOOST_PREDEF_ARCHITECTURE_IA64_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_IA64`]
[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__ia64__`] [__predef_detection__]]
[[`_IA64`] [__predef_detection__]]
[[`__IA64__`] [__predef_detection__]]
[[`__ia64`] [__predef_detection__]]
[[`_M_IA64`] [__predef_detection__]]
[[`__itanium__`] [__predef_detection__]]
]
*/
#define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__ia64__) || defined(_IA64) || \
defined(__IA64__) || defined(__ia64) || \
defined(_M_IA64) || defined(__itanium__)
# undef BOOST_ARCH_IA64
# define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#if BOOST_ARCH_IA64
# define BOOST_ARCH_IA64_AVAILABLE
#endif
#define BOOST_ARCH_IA64_NAME "Intel IA-64"
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_IA64,BOOST_ARCH_IA64_NAME)
#endif

View File

@ -8,69 +8,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H #ifndef BOOST_PREDEF_ARCHITECTURE_X86_H
#define BOOST_PREDEF_ARCHITECTURE_X86_H #define BOOST_PREDEF_ARCHITECTURE_X86_H
#include <boost/predef/version_number.h> #include <boost/predef/architecture/x86/32.h>
#include <boost/predef/make.h> #include <boost/predef/architecture/x86/64.h>
#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
/*` /*`
[heading `BOOST_ARCH_X86`] [heading `BOOST_ARCH_X86`]
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is
If available versions \[3-6\] are specifically detected. a category to indicate that either `BOOST_ARCH_X86_32` or
`BOOST_ARCH_X86_64` is detected.
[table
[[__predef_symbol__] [__predef_version__]]
[[`i386`] [__predef_detection__]]
[[`__i386__`] [__predef_detection__]]
[[`__i486__`] [__predef_detection__]]
[[`__i586__`] [__predef_detection__]]
[[`__i686__`] [__predef_detection__]]
[[`__i386`] [__predef_detection__]]
[[`_M_IX86`] [__predef_detection__]]
[[`_X86_`] [__predef_detection__]]
[[`__THW_INTEL__`] [__predef_detection__]]
[[`__I86__`] [__predef_detection__]]
[[`__INTEL__`] [__predef_detection__]]
[[`__I86__`] [V.0.0]]
[[`_M_IX86`] [V.0.0]]
[[`__i686__`] [6.0.0]]
[[`__i586__`] [5.0.0]]
[[`__i486__`] [4.0.0]]
[[`__i386__`] [3.0.0]]
]
*/ */
#if defined(i386) || defined(__i386__) || \ #define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
defined(__i486__) || defined(__i586__) || \
defined(__i686__) || defined(__i386) || \ #if BOOST_ARCH_X86_32 || BOOST_ARCH_X86_64
defined(_M_IX86) || defined(_X86_) || \
defined(__THW_INTEL__) || defined(__I86__) || \
defined(__INTEL__)
# undef BOOST_ARCH_X86 # undef BOOST_ARCH_X86
# if !defined(BOOST_ARCH_X86) && defined(__I86__) # define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER(__I86__,0,0)
# endif
# if !defined(BOOST_ARCH_X86) && defined(_M_IX86)
# define BOOST_ARCH_X86 BOOST_PREDEF_MAKE_10_VV00(_M_IX86)
# endif
# if !defined(BOOST_ARCH_X86) && defined(__i686__)
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER(6,0,0)
# endif
# if !defined(BOOST_ARCH_X86) && defined(__i586__)
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER(5,0,0)
# endif
# if !defined(BOOST_ARCH_X86) && defined(__i486__)
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER(4,0,0)
# endif
# if !defined(BOOST_ARCH_X86) && defined(__i386__)
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER(3,0,0)
# endif
# if !defined(BOOST_ARCH_X86)
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif #endif
#if BOOST_ARCH_X86 #if BOOST_ARCH_X86
@ -82,5 +35,4 @@ If available versions \[3-6\] are specifically detected.
#include <boost/predef/detail/test.h> #include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME) BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME)
#endif #endif

View File

@ -0,0 +1,87 @@
/*
Copyright Redshift Software, Inc. 2008-2013
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)
*/
#ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H
#define BOOST_PREDEF_ARCHITECTURE_X86_32_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_X86_32`]
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
If available versions \[3-6\] are specifically detected.
[table
[[__predef_symbol__] [__predef_version__]]
[[`i386`] [__predef_detection__]]
[[`__i386__`] [__predef_detection__]]
[[`__i486__`] [__predef_detection__]]
[[`__i586__`] [__predef_detection__]]
[[`__i686__`] [__predef_detection__]]
[[`__i386`] [__predef_detection__]]
[[`_M_IX86`] [__predef_detection__]]
[[`_X86_`] [__predef_detection__]]
[[`__THW_INTEL__`] [__predef_detection__]]
[[`__I86__`] [__predef_detection__]]
[[`__INTEL__`] [__predef_detection__]]
[[`__I86__`] [V.0.0]]
[[`_M_IX86`] [V.0.0]]
[[`__i686__`] [6.0.0]]
[[`__i586__`] [5.0.0]]
[[`__i486__`] [4.0.0]]
[[`__i386__`] [3.0.0]]
]
*/
#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(i386) || defined(__i386__) || \
defined(__i486__) || defined(__i586__) || \
defined(__i686__) || defined(__i386) || \
defined(_M_IX86) || defined(_X86_) || \
defined(__THW_INTEL__) || defined(__I86__) || \
defined(__INTEL__)
# undef BOOST_ARCH_X86_32
# if !defined(BOOST_ARCH_X86_32) && defined(__I86__)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0)
# endif
# if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86)
# define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86)
# endif
# if !defined(BOOST_ARCH_X86_32) && defined(__i686__)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0)
# endif
# if !defined(BOOST_ARCH_X86_32) && defined(__i586__)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0)
# endif
# if !defined(BOOST_ARCH_X86_32) && defined(__i486__)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0)
# endif
# if !defined(BOOST_ARCH_X86_32) && defined(__i386__)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0)
# endif
# if !defined(BOOST_ARCH_X86_32)
# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#if BOOST_ARCH_X86_32
# define BOOST_ARCH_X86_32_AVAILABLE
#endif
#define BOOST_ARCH_X86_32_NAME "Intel x86-32"
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME)
#include <boost/predef/architecture/x86.h>
#endif

View File

@ -0,0 +1,59 @@
/*
Copyright Redshift Software, Inc. 2008-2013
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)
*/
#ifndef BOOST_PREDEF_ARCHITECTURE_X86_64_H
#define BOOST_PREDEF_ARCHITECTURE_X86_64_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_X86_64`]
[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__x86_64`] [__predef_detection__]]
[[`__x86_64__`] [__predef_detection__]]
[[`__ia64__`] [__predef_detection__]]
[[`_IA64`] [__predef_detection__]]
[[`__IA64__`] [__predef_detection__]]
[[`__ia64`] [__predef_detection__]]
[[`_M_IA64`] [__predef_detection__]]
[[`__itanium__`] [__predef_detection__]]
[[`__amd64__`] [__predef_detection__]]
[[`__amd64`] [__predef_detection__]]
[[`_M_X64`] [__predef_detection__]]
]
*/
#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__x86_64) || defined(__x86_64__) || \
defined(__ia64__) || defined(_IA64) || \
defined(__IA64__) || defined(__ia64) || \
defined(_M_IA64) || defined(__itanium__) || \
defined(__amd64__) || defined(__amd64) || \
defined(_M_X64)
# undef BOOST_ARCH_X86_64
# define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#if BOOST_ARCH_X86_64
# define BOOST_ARCH_X86_64_AVAILABLE
#endif
#define BOOST_ARCH_X86_64_NAME "Intel x86-64"
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME)
#include <boost/predef/architecture/x86.h>
#endif

View File

@ -1,5 +1,5 @@
/* /*
Copyright Redshift Software, Inc. 2008-2012 Copyright Redshift Software, Inc. 2008-2013
Distributed under the Boost Software License, Version 1.0. Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt) http://www.boost.org/LICENSE_1_0.txt)
@ -29,7 +29,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/compiler/metaware.h> #include <boost/predef/compiler/metaware.h>
#include <boost/predef/compiler/metrowerks.h> #include <boost/predef/compiler/metrowerks.h>
#include <boost/predef/compiler/microtec.h> #include <boost/predef/compiler/microtec.h>
#include <boost/predef/compiler/mingw.h>
#include <boost/predef/compiler/mpw.h> #include <boost/predef/compiler/mpw.h>
#include <boost/predef/compiler/palm.h> #include <boost/predef/compiler/palm.h>
#include <boost/predef/compiler/pgi.h> #include <boost/predef/compiler/pgi.h>

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*` /*`
[heading `BOOST_COMP_GCCXML`] [heading `BOOST_COMP_GCCXML`]
[@http://en.wikipedia.org/wiki/XXX GCC XML] compiler. [@http://www.gccxml.org/ GCC XML] compiler.
[table [table
[[__predef_symbol__] [__predef_version__]] [[__predef_symbol__] [__predef_version__]]
@ -39,5 +39,4 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/detail/test.h> #include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML,BOOST_COMP_GCCXML_NAME) BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML,BOOST_COMP_GCCXML_NAME)
#endif #endif

View File

@ -10,11 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/endian.h> #include <boost/predef/endian.h>
#if BOOST_PREDEF_ENDIAN_BIG_BYTE #if BOOST_ENDIAN_BIG_BYTE
# define BOOST_BIG_ENDIAN # define BOOST_BIG_ENDIAN
# define BOOST_BYTE_ORDER 4321 # define BOOST_BYTE_ORDER 4321
#endif #endif
#if BOOST_PREDEF_ENDIAN_LITTLE_BYTE #if BOOST_ENDIAN_LITTLE_BYTE
# define BOOST_LITTLE_ENDIAN # define BOOST_LITTLE_ENDIAN
# define BOOST_BYTE_ORDER 1234 # define BOOST_BYTE_ORDER 1234
#endif #endif

View File

@ -0,0 +1,15 @@
/*
Copyright Redshift Software, Inc. 2013
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)
*/
#ifndef BOOST_PREDEF_OTHER_H
#define BOOST_PREDEF_OTHER_H
#include <boost/predef/other/endian.h>
#include <boost/predef/other/mingw.h>
/*#include <boost/predef/other/.h>*/
#endif

View File

@ -12,9 +12,9 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/make.h> #include <boost/predef/make.h>
/*` /*`
[heading `BOOST_COMP_MINGW`] [heading `BOOST_PLAT_MINGW`]
[@http://en.wikipedia.org/wiki/MinGW MinGW] compiler. [@http://en.wikipedia.org/wiki/MinGW MinGW] platform.
Version number available as major, minor, and patch. Version number available as major, minor, and patch.
[table [table
@ -28,32 +28,32 @@ Version number available as major, minor, and patch.
] ]
*/ */
#define BOOST_COMP_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE #define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__MINGW32__) || defined(__MINGW64__) #if defined(__MINGW32__) || defined(__MINGW64__)
# include <_mingw.h> # include <_mingw.h>
# undef BOOST_COMP_MINGW # undef BOOST_PLAT_MINGW
# if !defined(BOOST_COMP_MINGW) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) # if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
# define BOOST_COMP_MINGW \ # define BOOST_PLAT_MINGW \
BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
# endif # endif
# if !defined(BOOST_COMP_MINGW) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) # if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
# define BOOST_COMP_MINGW \ # define BOOST_PLAT_MINGW \
BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
# endif # endif
# if !defined(BOOST_COMP_MINGW) # if !defined(BOOST_PLAT_MINGW)
# define BOOST_COMP_MINGW BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_AVAILABLE
# endif # endif
#endif #endif
#if BOOST_COMP_MINGW #if BOOST_PLAT_MINGW
# define BOOST_COMP_MINGW_AVAILABLE # define BOOST_PLAT_MINGW_AVAILABLE
#endif #endif
#define BOOST_COMP_MINGW_NAME "MinGW" #define BOOST_PLAT_MINGW_NAME "MinGW"
#include <boost/predef/detail/test.h> #include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MINGW,BOOST_COMP_MINGW_NAME) BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME)
#endif #endif