mirror of
https://github.com/boostorg/predef.git
synced 2025-06-25 11:51:34 +02:00
Completed all changes from review.
This commit is contained in:
@ -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_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_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
|
||||
macros</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="predef/acknoledgements.html">Acknoledgements</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="warning"><table border="0" summary="Warning">
|
||||
@ -57,7 +59,7 @@
|
||||
</table></div>
|
||||
</div>
|
||||
<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>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -48,6 +48,13 @@
|
||||
<li class="listitem">
|
||||
If possible, the predef will be defined as the version number detected.
|
||||
</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">
|
||||
The predef must declare itself, after being defined, for the testing system.
|
||||
</li>
|
||||
@ -127,14 +134,24 @@ Documentation about what is detected.
|
||||
that the predef was detected:
|
||||
</p>
|
||||
<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">#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">#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">#endif</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"># 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"># 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>
|
||||
</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>
|
||||
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
|
||||
@ -142,7 +159,7 @@ Documentation about what is detected.
|
||||
the test programs they expand out specially to create informational output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
<p>
|
||||
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
|
||||
(M,N,P). It can be decomesed and defined as:
|
||||
</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>
|
||||
<p>
|
||||
The decomposition macros are split into three types: decimal decomposition,
|
||||
|
@ -18,12 +18,12 @@
|
||||
<a name="predef.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
This library defines a set of compiler, architecture, operating system, and
|
||||
library version numbers from the information it can gather of C++ predefined
|
||||
macros or those defined in generally available headers. The idea for this library
|
||||
grew out of a proposal to extend the Boost Config library to provide more,
|
||||
and consistent, information than the feature definitions it supports. What
|
||||
follows is an edited version of that brief proposal.
|
||||
This library defines a set of compiler, architecture, operating system, library,
|
||||
and other version numbers from the information it can gather of C, C++, Objective
|
||||
C, and Objective C++ predefined macros or those defined in generally available
|
||||
headers. The idea for this library grew out of a proposal to extend the Boost
|
||||
Config library to provide more, and consistent, information than the feature
|
||||
definitions it supports. What follows is an edited version of that brief proposal.
|
||||
</p>
|
||||
<h4>
|
||||
<a name="predef.introduction.h0"></a>
|
||||
@ -63,18 +63,27 @@
|
||||
<p>
|
||||
The current Predef library is now, both an independent library, and expanded
|
||||
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>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Version numbers that are always defined so that one doesn't have to guard
|
||||
with <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>.
|
||||
</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">
|
||||
All possible definitions are included with the single <code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</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">></span></code>
|
||||
so that it's friendly to precompiled header usage.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Specific definitions can be included, ex. <code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</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">></span></code>
|
||||
for single checks.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Predefs can be directly used in both preprocessor and compiler expressions
|
||||
for comparison to other similarly defined values.
|
||||
@ -155,7 +164,9 @@
|
||||
</li>
|
||||
<li class="listitem">
|
||||
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 class="listitem">
|
||||
Additionally, even if there is no auto-configure style option.. It would
|
||||
|
@ -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_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_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
|
||||
macros</a></span></dt>
|
||||
</dl></div>
|
||||
|
@ -19,9 +19,11 @@
|
||||
</h3></div></div></div>
|
||||
<h5>
|
||||
<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
|
||||
Alpha</a>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
<a href="http://en.wikipedia.org/wiki/DEC_Alpha" target="_top">DEC Alpha</a> architecture.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -116,91 +118,6 @@
|
||||
</table></div>
|
||||
<h5>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -299,6 +216,81 @@
|
||||
</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_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>
|
||||
<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>
|
||||
@ -400,105 +392,6 @@
|
||||
</table></div>
|
||||
<h5>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -765,7 +658,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -949,7 +842,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1109,7 +1002,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1316,7 +1209,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1353,7 +1246,7 @@
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1440,7 +1333,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1515,7 +1408,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1627,7 +1520,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1678,7 +1571,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1729,9 +1622,56 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</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>
|
||||
<a href="http://en.wikipedia.org/wiki/X86" target="_top">Intel x86</a> architecture:
|
||||
If available versions [3-6] are specifically detected.
|
||||
@ -1961,12 +1901,11 @@
|
||||
</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_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>
|
||||
<a name="predef.reference.boost_arch_architecture_macros.h17"></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>
|
||||
<p>
|
||||
<a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_top">z/Architecture</a>
|
||||
architecture.
|
||||
<a href="http://en.wikipedia.org/wiki/Ia64" target="_top">Intel IA-64</a> architecture.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
@ -1985,10 +1924,11 @@
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody><tr>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">__SYSC_ZARCH__</span></code>
|
||||
<code class="computeroutput"><span class="identifier">__x86_64</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
@ -1996,7 +1936,128 @@
|
||||
<span class="bold"><strong>detection</strong></span>
|
||||
</p>
|
||||
</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>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
|
@ -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>
|
||||
</h5>
|
||||
<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>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
@ -1279,84 +1279,6 @@
|
||||
</table></div>
|
||||
<h5>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1432,7 +1354,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1483,7 +1405,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1535,7 +1457,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1611,7 +1533,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1687,7 +1609,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1725,7 +1647,7 @@
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1789,7 +1711,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<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>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<link rel="home" href="../../index.html" title="Predef 1.0">
|
||||
<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="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>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<div class="spirit-nav">
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,11 +6,12 @@
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.0">
|
||||
<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>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<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 class="section predef_reference_version_definition_macros">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
@ -177,7 +178,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -32,25 +32,29 @@
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code>for
|
||||
system/CPU architecture one is compiling for.
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ARCH_</span></code>for system/CPU
|
||||
architecture one is compiling for.
|
||||
</li>
|
||||
<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.
|
||||
</li>
|
||||
<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.
|
||||
</li>
|
||||
<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.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> for the operating
|
||||
system we are compiling to.
|
||||
</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>
|
||||
<div class="note"><table border="0" summary="Note">
|
||||
<tr>
|
||||
@ -74,7 +78,7 @@
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</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="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">>=</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"><<</span> <span class="string">"GCC compiler is at least version 4.0.0"</span> <span class="special"><<</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="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
||||
@ -84,7 +88,7 @@
|
||||
<p>
|
||||
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.
|
||||
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
|
||||
the detection with a natural single condition. For example:
|
||||
</p>
|
||||
@ -93,7 +97,7 @@
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</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"><<</span> <span class="string">"This is GNU GCC!"</span> <span class="special"><<</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="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Not GNU GCC."</span> <span class="special"><<</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"><</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">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
|
||||
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span>
|
||||
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span> <span class="special">>=</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="preprocessor">#if</span> <span class="identifier">BOOST_COMP_GNUC</span> <span class="special">>=</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="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>
|
||||
@ -123,6 +127,18 @@
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</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>
|
||||
<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
|
||||
|
113
doc/predef.qbk
113
doc/predef.qbk
@ -18,12 +18,12 @@ Boost C++ Libraries.]
|
||||
[section Introduction]
|
||||
|
||||
This library defines a set of compiler, architecture, operating system,
|
||||
and library version numbers from the information it can gather of C++
|
||||
predefined macros or those defined in generally available headers. The
|
||||
idea for this library grew out of a proposal to extend the Boost Config
|
||||
library to provide more, and consistent, information than the feature
|
||||
definitions it supports. What follows is an edited version of that brief
|
||||
proposal.
|
||||
library, and other version numbers from the information it can gather of
|
||||
C, C++, Objective C, and Objective C++ predefined macros or those defined
|
||||
in generally available headers. The idea for this library grew out of a
|
||||
proposal to extend the Boost Config library to provide more, and consistent,
|
||||
information than the feature definitions it supports. What follows is
|
||||
an edited version of that brief 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
|
||||
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
|
||||
with `#ifdef`.
|
||||
* Guard macros that can be used for `#ifdef` checks.
|
||||
* All possible definitions are included with the single `#include <boost/predef.h>`
|
||||
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
|
||||
for comparison to other similarly defined values.
|
||||
* 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
|
||||
add definitions for user specific libraries and features.
|
||||
* 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
|
||||
good to add optionally included headers so that user can get consistent
|
||||
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
|
||||
macros of a particular prefix:
|
||||
|
||||
* `BOOST_ARCHITECTURE_`for system/CPU architecture one is compiling for.
|
||||
* `BOOST_CXX_` for the compiler one is using.
|
||||
* `BOOST_LANGUAGE_` for language standards one is compiling against.
|
||||
* `BOOST_LIBC_` and `BOOST_LIBSTD_` for the C and C++ standard library
|
||||
* `BOOST_ARCH_`for system/CPU architecture one is compiling for.
|
||||
* `BOOST_COMP_` for the compiler one is using.
|
||||
* `BOOST_LANG_` for language standards one is compiling against.
|
||||
* `BOOST_LIB_C_` and `BOOST_LIB_STD_` for the C and C++ standard library
|
||||
in use.
|
||||
* `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
|
||||
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()
|
||||
{
|
||||
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;
|
||||
else
|
||||
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
|
||||
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
|
||||
detection with a natural single condition. For example:
|
||||
|
||||
@ -174,7 +180,7 @@ detection with a natural single condition. For example:
|
||||
|
||||
int main()
|
||||
{
|
||||
if (BOOST_CXX_GNUC)
|
||||
if (BOOST_COMP_GNUC)
|
||||
std::cout << "This is GNU GCC!" << std::endl;
|
||||
else
|
||||
std::cout << "Not GNU GCC." << std::endl;
|
||||
@ -189,8 +195,8 @@ from the preprocessor:
|
||||
#include <boost/predef.h>
|
||||
#include <iostream>
|
||||
|
||||
#if BOOST_CXX_GNUC
|
||||
#if BOOST_CXX_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
|
||||
#if BOOST_COMP_GNUC
|
||||
#if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
|
||||
const char * the_compiler = "GNU GCC, of at least version 4."
|
||||
#else
|
||||
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]
|
||||
|
||||
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)`
|
||||
when the predef is 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
|
||||
system.
|
||||
|
||||
@ -335,15 +356,26 @@ to minimally indicate that the predef was detected:
|
||||
|
||||
``
|
||||
#if (condition_a)
|
||||
#undef BOOST_category_tag
|
||||
#if (condition_b)
|
||||
#define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
|
||||
#else
|
||||
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
|
||||
#endif
|
||||
# undef BOOST_category_tag
|
||||
# if (condition_b)
|
||||
# define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
|
||||
# else
|
||||
# define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
|
||||
# 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 defined predefs, whether detected or not. To do this we need to
|
||||
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>
|
||||
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:
|
||||
@ -375,7 +407,7 @@ uses a simple 3-digit version macro (M,N,P). It can be decomesed
|
||||
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
|
||||
@ -393,6 +425,7 @@ and "Y", "M", "D" for dates.
|
||||
|
||||
[section `BOOST_ARCH` architecture macros]
|
||||
[include ../include/boost/predef/architecture/*.h]
|
||||
[include ../include/boost/predef/architecture/x86/*.h]
|
||||
[endsect]
|
||||
|
||||
[section `BOOST_COMP` compiler macros]
|
||||
@ -404,12 +437,17 @@ and "Y", "M", "D" for dates.
|
||||
[endsect]
|
||||
|
||||
[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]
|
||||
|
||||
[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/bsd/*.h]
|
||||
[endsect]
|
||||
|
||||
[section Other macros]
|
||||
[include ../include/boost/predef/other/*.h]
|
||||
[endsect]
|
||||
|
||||
[section Version definition macros]
|
||||
@ -418,3 +456,22 @@ and "Y", "M", "D" for dates.
|
||||
[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]
|
@ -13,6 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#include <boost/predef/compiler.h>
|
||||
#include <boost/predef/library.h>
|
||||
#include <boost/predef/os.h>
|
||||
#include <boost/predef/endian.h>
|
||||
#include <boost/predef/other.h>
|
||||
|
||||
#endif
|
||||
|
@ -9,11 +9,9 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#define BOOST_PREDEF_ARCHITECTURE_H
|
||||
|
||||
#include <boost/predef/architecture/alpha.h>
|
||||
#include <boost/predef/architecture/amd64.h>
|
||||
#include <boost/predef/architecture/arm.h>
|
||||
#include <boost/predef/architecture/blackfin.h>
|
||||
#include <boost/predef/architecture/convex.h>
|
||||
#include <boost/predef/architecture/ia64.h>
|
||||
#include <boost/predef/architecture/m68k.h>
|
||||
#include <boost/predef/architecture/mips.h>
|
||||
#include <boost/predef/architecture/parisc.h>
|
||||
|
@ -12,7 +12,9 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#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
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
@ -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
|
@ -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
|
@ -8,69 +8,22 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H
|
||||
#define BOOST_PREDEF_ARCHITECTURE_X86_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/make.h>
|
||||
|
||||
#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#include <boost/predef/architecture/x86/32.h>
|
||||
#include <boost/predef/architecture/x86/64.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_ARCH_X86`]
|
||||
|
||||
[@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]]
|
||||
]
|
||||
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is
|
||||
a category to indicate that either `BOOST_ARCH_X86_32` or
|
||||
`BOOST_ARCH_X86_64` is detected.
|
||||
*/
|
||||
|
||||
#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__)
|
||||
#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#if BOOST_ARCH_X86_32 || BOOST_ARCH_X86_64
|
||||
# undef BOOST_ARCH_X86
|
||||
# if !defined(BOOST_ARCH_X86) && defined(__I86__)
|
||||
# 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
|
||||
# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE
|
||||
#endif
|
||||
|
||||
#if BOOST_ARCH_X86
|
||||
@ -82,5 +35,4 @@ If available versions \[3-6\] are specifically detected.
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME)
|
||||
|
||||
|
||||
#endif
|
||||
|
87
include/boost/predef/architecture/x86/32.h
Normal file
87
include/boost/predef/architecture/x86/32.h
Normal 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
|
59
include/boost/predef/architecture/x86/64.h
Normal file
59
include/boost/predef/architecture/x86/64.h
Normal 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
|
@ -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.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
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/metrowerks.h>
|
||||
#include <boost/predef/compiler/microtec.h>
|
||||
#include <boost/predef/compiler/mingw.h>
|
||||
#include <boost/predef/compiler/mpw.h>
|
||||
#include <boost/predef/compiler/palm.h>
|
||||
#include <boost/predef/compiler/pgi.h>
|
||||
|
@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
/*`
|
||||
[heading `BOOST_COMP_GCCXML`]
|
||||
|
||||
[@http://en.wikipedia.org/wiki/XXX GCC XML] compiler.
|
||||
[@http://www.gccxml.org/ GCC XML] compiler.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
@ -39,5 +39,4 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML,BOOST_COMP_GCCXML_NAME)
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -10,11 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/predef/endian.h>
|
||||
|
||||
#if BOOST_PREDEF_ENDIAN_BIG_BYTE
|
||||
#if BOOST_ENDIAN_BIG_BYTE
|
||||
# define BOOST_BIG_ENDIAN
|
||||
# define BOOST_BYTE_ORDER 4321
|
||||
#endif
|
||||
#if BOOST_PREDEF_ENDIAN_LITTLE_BYTE
|
||||
#if BOOST_ENDIAN_LITTLE_BYTE
|
||||
# define BOOST_LITTLE_ENDIAN
|
||||
# define BOOST_BYTE_ORDER 1234
|
||||
#endif
|
||||
|
15
include/boost/predef/other.h
Normal file
15
include/boost/predef/other.h
Normal 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
|
@ -12,9 +12,9 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#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.
|
||||
|
||||
[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__)
|
||||
# include <_mingw.h>
|
||||
# undef BOOST_COMP_MINGW
|
||||
# if !defined(BOOST_COMP_MINGW) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
|
||||
# define BOOST_COMP_MINGW \
|
||||
# undef BOOST_PLAT_MINGW
|
||||
# if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
|
||||
# define BOOST_PLAT_MINGW \
|
||||
BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
|
||||
# endif
|
||||
# if !defined(BOOST_COMP_MINGW) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
|
||||
# define BOOST_COMP_MINGW \
|
||||
# if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
|
||||
# define BOOST_PLAT_MINGW \
|
||||
BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
|
||||
# endif
|
||||
# if !defined(BOOST_COMP_MINGW)
|
||||
# define BOOST_COMP_MINGW BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# if !defined(BOOST_PLAT_MINGW)
|
||||
# define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if BOOST_COMP_MINGW
|
||||
# define BOOST_COMP_MINGW_AVAILABLE
|
||||
#if BOOST_PLAT_MINGW
|
||||
# define BOOST_PLAT_MINGW_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_COMP_MINGW_NAME "MinGW"
|
||||
#define BOOST_PLAT_MINGW_NAME "MinGW"
|
||||
|
||||
#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
|
Reference in New Issue
Block a user