Last update, for now, of the predefs. They are all now documented and checked against current knowledge of detection.

git-svn-id: http://svn.boost.org/svn/boost/sandbox/predef@75949 b8fc166d-592f-0410-95f2-cb63ce0dd405
This commit is contained in:
Rene Rivera committed 2011-12-15 03:48:37 +00:00
1 parent 8bc199d45c
commit 86cc3136ad
61 files changed
+564 -415

No files matched your search

+1 -3
View File
@@ -8,8 +8,6 @@
<link rel="next" href="predef/introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="predef/introduction.html"><img src="images/next.png" alt="Next"></a></div>
<div class="article">
<div class="titlepage">
@@ -61,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: November 30, 2011 at 23:35:32 GMT</small></p></td>
<td align="left"><p><small>Last revised: December 15, 2011 at 03:47:03 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
@@ -10,8 +10,6 @@
<link rel="next" href="reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="using_the_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="reference.html"><img src="../images/next.png" alt="Next"></a>
</div>
@@ -82,8 +80,6 @@
below, as current predef headers do. First we have the copyright and license
statement, followed by the include guard:
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">/*
Copyright Jane Doe YYYY
Distributed under the Boost Software License, Version 1.0.
@@ -94,21 +90,15 @@ http://www.boost.org/LICENSE_1_0.txt)
<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
</pre>
<p>
</p>
<p>
Depending on how you are defining the predef you will at minimum have to include
the <code class="computeroutput"><span class="identifier">version_number</span><span class="special">.</span><span class="identifier">h</span></code> header. But you might also want to include
the <code class="computeroutput"><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span></code> header for the version number decomposing
utility macros:
</p>
<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">version_number</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">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
The Predef library uses Quickbook for documentation and for the individual
predefs to appear in the reference section we add in-code documentation followed
@@ -117,8 +107,6 @@ http://www.boost.org/LICENSE_1_0.txt)
some development environments automatically interpret this and provide in-line
help for the macro. In particular this works for the popular Eclipse IDE:
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">/*`
[heading `BOOST_category_tag`]
@@ -127,8 +115,6 @@ Documentation about what is detected.
<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">0</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
Next is the detection and definition of the particular predef. The structure
for this is to do a single overall check (<code class="computeroutput"><span class="identifier">condition_a</span></code>)
@@ -140,8 +126,6 @@ Documentation about what is detected.
<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></code>" as the fallback to minimally indicate
that the predef was detected:
</p>
<p>
</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>
@@ -151,30 +135,20 @@ Documentation about what is detected.
<span class="preprocessor">#endif</span>
<span class="preprocessor">#endif</span>
</pre>
<p>
</p>
<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
predef to the test system. This declaration is empty for regular use. And during
the test programs theexpand out specially to create informational output:
</p>
<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>
<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>
</pre>
<p>
</p>
<p>
And, of course, we last need to close out the include guard:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#endif</span>
</pre>
<p>
</p>
<h4>
<a name="predef.adding_new_predefs.h2"></a>
<span><a name="predef.adding_new_predefs.using_utility_pattern_macros"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.using_utility_pattern_macros">Using utility
@@ -183,23 +157,15 @@ Documentation about what is detected.
<p>
By including:
</p>
<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">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
One will get a set utlity macros to decompose common version macros as defined
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>
<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>
<p>
</p>
<p>
The decomposition macros are split into three types: decimal decomposition,
hexadecimal decomposition, and date decomposition. They follow the format of
@@ -10,8 +10,6 @@
<link rel="next" href="using_the_predefs.html" title="Using the predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="using_the_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
+246 -205
View File
@@ -9,8 +9,6 @@
<link rel="prev" href="adding_new_predefs.html" title="Adding new predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adding_new_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
@@ -169,233 +167,240 @@
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_borland"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_borland"><code class="computeroutput"><span class="identifier">BOOST_CXX_BORLAND</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Borland</a> compiler. Version
number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/C_plus_plus_builder" target="_top">Borland C++</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h1"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_como"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_como"><code class="computeroutput"><span class="identifier">BOOST_CXX_COMO</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_clang"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_clang"><code class="computeroutput"><span class="identifier">BOOST_CXX_CLANG</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Comeau</a> compiler. Version
<a href="http://en.wikipedia.org/wiki/Clang" target="_top">Clang</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h2"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"><code class="computeroutput"><span class="identifier">BOOST_CXX_DEC</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_como"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_como"><code class="computeroutput"><span class="identifier">BOOST_CXX_COMO</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Compaq DEC</a> compiler.
Version number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B" target="_top">Comeau C++</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h3"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"><code class="computeroutput"><span class="identifier">BOOST_CXX_DEC</span></code></a>
</h5>
<p>
<a href="http://www.openvms.compaq.com/openvms/brochures/deccplus/" target="_top">Compaq
C/C++</a> compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h4"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_cygwin"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_cygwin"><code class="computeroutput"><span class="identifier">BOOST_CXX_CYGWIN</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Cygwin</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h4"></a>
<a name="predef.reference.boost_cxx_compiler_macros.h5"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_diab"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_diab"><code class="computeroutput"><span class="identifier">BOOST_CXX_DIAB</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Diab</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h5"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"><code class="computeroutput"><span class="identifier">BOOST_CXX_DMC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Digital Mars</a> compiler.
Version number available as major, minor, and patch.
<a href="http://www.windriver.com/products/development_suite/wind_river_compiler/" target="_top">Diab
C/C++</a> compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h6"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"><code class="computeroutput"><span class="identifier">BOOST_CXX_SYSC</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"><code class="computeroutput"><span class="identifier">BOOST_CXX_DMC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Dignus SysC</a> compiler.
Version number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Digital_Mars" target="_top">Digital Mars</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h7"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"><code class="computeroutput"><span class="identifier">BOOST_CXX_EDG</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"><code class="computeroutput"><span class="identifier">BOOST_CXX_SYSC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">EDG</a> compiler. Version
number available as major, minor, and patch.
<a href="http://www.dignus.com/dcxx/" target="_top">Dignus Systems/C++</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h8"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_path"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_path"><code class="computeroutput"><span class="identifier">BOOST_CXX_PATH</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"><code class="computeroutput"><span class="identifier">BOOST_CXX_EDG</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Ekopath</a> compiler. Version
number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Edison_Design_Group" target="_top">EDG C++ Frontend</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h9"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"><code class="computeroutput"><span class="identifier">BOOST_CXX_GNUC</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_path"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_path"><code class="computeroutput"><span class="identifier">BOOST_CXX_PATH</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Gnu C/C++</a> compiler.
Version number available as major, minor, and patch (if available).
<a href="http://en.wikipedia.org/wiki/PathScale" target="_top">EKOpath</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h10"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"><code class="computeroutput"><span class="identifier">BOOST_CXX_GNUC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/GNU_Compiler_Collection" target="_top">Gnu GCC
C/C++</a> compiler. Version number available as major, minor, and patch
(if available).
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h11"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_gccxml"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_gccxml"><code class="computeroutput"><span class="identifier">BOOST_CXX_GCCXML</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">GCC XML</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h11"></a>
<a name="predef.reference.boost_cxx_compiler_macros.h12"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_ghs"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_ghs"><code class="computeroutput"><span class="identifier">BOOST_CXX_GHS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Green Hills</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h12"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HPACC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">HP ACC</a> compiler. Version
number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Green_Hills_Software" target="_top">Green Hills
C/C++</a> compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h13"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"><code class="computeroutput"><span class="identifier">BOOST_CXX_IAR</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HPACC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">IAR</a> compiler. Version
number available as major, minor, and patch.
HP aC++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h14"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"><code class="computeroutput"><span class="identifier">BOOST_CXX_IBM</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"><code class="computeroutput"><span class="identifier">BOOST_CXX_IAR</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Iternational Business Mchines</a>
compiler. Version number available as major, minor, and patch.
IAR C/C++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h15"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"><code class="computeroutput"><span class="identifier">BOOST_CXX_INTEL</span></code></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"><code class="computeroutput"><span class="identifier">BOOST_CXX_IBM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Intel</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h16"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"><code class="computeroutput"><span class="identifier">BOOST_CXX_KCC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Kai</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h17"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"><code class="computeroutput"><span class="identifier">BOOST_CXX_LLVM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">LLVM</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h18"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HIGHC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Metaware HighC</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h19"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"><code class="computeroutput"><span class="identifier">BOOST_CXX_MWERKS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Metrowerks</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h20"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"><code class="computeroutput"><span class="identifier">BOOST_CXX_MRI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microtec</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h21"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"><code class="computeroutput"><span class="identifier">BOOST_CXX_MINGW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MinGW</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h22"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"><code class="computeroutput"><span class="identifier">BOOST_CXX_MPW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MPW</a> compiler. Version
number available as major, and minor.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h23"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"><code class="computeroutput"><span class="identifier">BOOST_CXX_PALM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Palm</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h24"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_PGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">PGI</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h25"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_SGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">SGI Mips-pro</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h26"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"><code class="computeroutput"><span class="identifier">BOOST_CXX_SUNPRO</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Sun Pro</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h27"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"><code class="computeroutput"><span class="identifier">BOOST_CXX_TENDRA</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Tendra</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h28"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"><code class="computeroutput"><span class="identifier">BOOST_CXX_MSVC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microsoft Visual C/C++</a>
<a href="http://en.wikipedia.org/wiki/VisualAge" target="_top">IBM XL C/C++</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h16"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"><code class="computeroutput"><span class="identifier">BOOST_CXX_INTEL</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Intel_C%2B%2B" target="_top">Intel C/C++</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h17"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"><code class="computeroutput"><span class="identifier">BOOST_CXX_KCC</span></code></a>
</h5>
<p>
Kai C++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h18"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"><code class="computeroutput"><span class="identifier">BOOST_CXX_LLVM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/LLVM" target="_top">LLVM</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h19"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HIGHC</span></code></a>
</h5>
<p>
MetaWare High C/C++ compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h20"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"><code class="computeroutput"><span class="identifier">BOOST_CXX_MWERKS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/CodeWarrior" target="_top">Metrowerks CodeWarrior</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h21"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"><code class="computeroutput"><span class="identifier">BOOST_CXX_MRI</span></code></a>
</h5>
<p>
<a href="http://www.mentor.com/microtec/" target="_top">Microtec C/C++</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h22"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"><code class="computeroutput"><span class="identifier">BOOST_CXX_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>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h23"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"><code class="computeroutput"><span class="identifier">BOOST_CXX_MPW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop" target="_top">MPW
C++</a> compiler. Version number available as major, and minor.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h24"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"><code class="computeroutput"><span class="identifier">BOOST_CXX_PALM</span></code></a>
</h5>
<p>
Palm C/C++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h25"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_PGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/The_Portland_Group" target="_top">Portland Group
C/C++</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h26"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_SGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/MIPSpro" target="_top">SGI MIPSpro</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h27"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"><code class="computeroutput"><span class="identifier">BOOST_CXX_SUNPRO</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Sun_Studio_%28software%29" target="_top">Sun Studio</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h28"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"><code class="computeroutput"><span class="identifier">BOOST_CXX_TENDRA</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/TenDRA_Compiler" target="_top">TenDRA C/C++</a>
compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h29"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"><code class="computeroutput"><span class="identifier">BOOST_CXX_MSVC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Visual_studio" target="_top">Microsoft Visual
C/C++</a> compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h30"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_watcom"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_watcom"><code class="computeroutput"><span class="identifier">BOOST_CXX_WATCOM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Watcom</a> compiler. Version
number available as major, and minor.
<a href="http://en.wikipedia.org/wiki/Watcom" target="_top">Watcom C++</a> compiler.
Version number available as major, and minor.
</p>
</div>
<div class="section">
@@ -626,15 +631,15 @@
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_rw"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_rw"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_RW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Roguewave Standard C++</a>
library. If available version number as major, minor, and patch.
<a href="http://stdcxx.apache.org/" target="_top">Roguewave</a> Standard C++ library.
If available version number as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h10"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_sgi"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_sgi"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_SGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">SGI Standard C++</a> library.
<a href="http://www.sgi.com/tech/stl/" target="_top">SGI</a> Standard C++ library.
If available version number as major, minor, and patch.
</p>
<h5>
@@ -650,7 +655,7 @@
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_stlport"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_stlport"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_STLPORT</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">STLport Standard C++</a>
<a href="http://sourceforge.net/projects/stlport/" target="_top">STLport Standard C++</a>
library. Version number available as major, minor, and patch.
</p>
<h5>
@@ -658,8 +663,8 @@
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_ibm"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_ibm"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_IBM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">IBM VACPP Standard C++</a>
library.
<a href="http://www.ibm.com/software/awdtools/xlcpp/" target="_top">IBM VACPP Standard
C++</a> library.
</p>
</div>
<div class="section">
@@ -668,32 +673,34 @@
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h0"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_aix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_aix"><code class="computeroutput"><span class="identifier">BOOST_OS_AIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">AIX</a> operating system.
Version number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/AIX_operating_system" target="_top">IBM AIX</a>
operating system. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h1"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_amigaos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_amigaos"><code class="computeroutput"><span class="identifier">BOOST_OS_AMIGAOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">AmigaOS</a> operating system.
<a href="http://en.wikipedia.org/wiki/AmigaOS" target="_top">AmigaOS</a> operating
system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h2"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_beos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_beos"><code class="computeroutput"><span class="identifier">BOOST_OS_BEOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Be</a> operating system.
<a href="http://en.wikipedia.org/wiki/BeOS" target="_top">BeOS</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h3"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_bsd"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_bsd"><code class="computeroutput"><span class="identifier">BOOST_OS_BSD</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">BSD</a> operating system.
<a href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution" target="_top">BSD</a>
operating system.
</p>
<p>
BSD has various branch operating systems possible and each detected individually.
@@ -703,19 +710,19 @@
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_DRAGONFLY_BSD</span></code>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Dragonfly BSD</a>
<a href="http://en.wikipedia.org/wiki/DragonFly_BSD" target="_top">DragonFly BSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_FREE_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Free BSD</a>
<code class="computeroutput"><span class="identifier">BOOST_OS_FREE_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Freebsd" target="_top">FreeBSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_BSDI_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">BSDI</a>
<code class="computeroutput"><span class="identifier">BOOST_OS_BSDI_BSD</span></code> <a href="http://en.wikipedia.org/wiki/BSD/OS" target="_top">BSDi BSD/OS</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_NET_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Net BSD</a>
<code class="computeroutput"><span class="identifier">BOOST_OS_NET_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Netbsd" target="_top">NetBSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_OPEN_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Open BSD</a>
<code class="computeroutput"><span class="identifier">BOOST_OS_OPEN_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Openbsd" target="_top">OpenBSD</a>
</li>
</ul></div>
<div class="note"><table border="0" summary="Note">
@@ -734,67 +741,93 @@
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_cygwin"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_cygwin"><code class="computeroutput"><span class="identifier">BOOST_OS_CYGWIN</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Cygwin</a> operating system.
<a href="http://en.wikipedia.org/wiki/Cygwin" target="_top">Cygwin</a> evironment.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h5"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_hpux"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_hpux"><code class="computeroutput"><span class="identifier">BOOST_OS_HPUX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">HP-UX</a> operating system.
<a href="http://en.wikipedia.org/wiki/HP-UX" target="_top">HP-UX</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h6"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_irix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_irix"><code class="computeroutput"><span class="identifier">BOOST_OS_IRIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Irix</a> operating system.
<a href="http://en.wikipedia.org/wiki/Irix" target="_top">IRIX</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h7"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_linux"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_linux"><code class="computeroutput"><span class="identifier">BOOST_OS_LINUX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Linux</a> operating system.
<a href="http://en.wikipedia.org/wiki/Linux" target="_top">Linux</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h8"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_macos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_macos"><code class="computeroutput"><span class="identifier">BOOST_OS_MACOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MacOS</a> operating system.
Versions [9-10] are specifically detected.
<a href="http://en.wikipedia.org/wiki/Mac_OS" target="_top">Mac OS</a> operating
system. Versions [9-10] are specifically detected.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h9"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_os400"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_os400"><code class="computeroutput"><span class="identifier">BOOST_OS_OS400</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/IBM_i" target="_top">IBM OS/400</a> operating
system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h10"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_qnx"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_qnx"><code class="computeroutput"><span class="identifier">BOOST_OS_QNX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">QNX-NTO</a> operating system.
<a href="http://en.wikipedia.org/wiki/QNX" target="_top">QNX</a> operating system.
Version number available as major, and minor if possible. And version 4 is
specifically detected.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h10"></a>
<a name="predef.reference.boost_os_operating_system_macros.h11"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_solaris"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_solaris"><code class="computeroutput"><span class="identifier">BOOST_OS_SOLARIS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Solaris</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h11"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_unix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_unix"><code class="computeroutput"><span class="identifier">BOOST_OS_UNIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Unix</a> operating system.
<a href="http://en.wikipedia.org/wiki/Solaris_Operating_Environment" target="_top">Solaris</a>
operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h12"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_unix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_unix"><code class="computeroutput"><span class="identifier">BOOST_OS_UNIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Unix" target="_top">Unix Environment</a> operating
system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h13"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_svr4"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_svr4"><code class="computeroutput"><span class="identifier">BOOST_OS_SVR4</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/UNIX_System_V" target="_top">SVR4 Environment</a>
operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h14"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_vms"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_vms"><code class="computeroutput"><span class="identifier">BOOST_OS_VMS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Vms" target="_top">VMS</a> operating system.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h15"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_windows"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_windows"><code class="computeroutput"><span class="identifier">BOOST_OS_WINDOWS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microsoft Windows</a> operating
system.
<a href="http://en.wikipedia.org/wiki/Category:Microsoft_Windows" target="_top">Microsoft
Windows</a> operating system.
</p>
</div>
<div class="section">
@@ -806,12 +839,8 @@
<a name="predef.reference.version_definition_macros.h0"></a>
<span><a name="predef.reference.version_definition_macros.boost_version_number"></a></span><a class="link" href="reference.html#predef.reference.version_definition_macros.boost_version_number"><code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code></a>
</h5>
<p>
</p>
<pre class="programlisting"><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>
</pre>
<p>
</p>
<p>
Defines standard version numbers, with these properties:
</p>
@@ -893,32 +922,44 @@
separates the major/minor/patch parts of the version number, and "<code class="computeroutput"><span class="number">0</span></code>" indicates an ignored decimal digit.
Macros are:
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N__NNN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_N_000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN_000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_00_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_0_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_0_NNNN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_00_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_YYYY_MM_DD</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
@@ -10,8 +10,6 @@
<link rel="next" href="adding_new_predefs.html" title="Adding new predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="adding_new_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
@@ -23,12 +21,8 @@
To use the automatically defined predefs one needs to only include the single
top-level header:
</p>
<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">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
This defines <span class="bold"><strong>all</strong></span> the version macros known
to the library. For each macro it will be defined to either a <span class="emphasis"><em>zero</em></span>
@@ -75,8 +69,6 @@
macro. For example, to make a choice based on the version of the GCC C++ compiler
one would:
</p>
<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">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>
@@ -89,8 +81,6 @@
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
As you might notice above the <code class="computeroutput"><span class="keyword">else</span></code>
clause also covers the case where we the particular compiler is not detected.
@@ -98,8 +88,6 @@
are defined as a zero (0) expression when not detected. Hence one could use
the detection with a natural single condition. For example:
</p>
<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">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>
@@ -112,14 +100,10 @@
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
And since the predef's are preprocessor definitions the same is possible from
the preprocessor:
</p>
<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">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>
@@ -139,8 +123,6 @@
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h4>
<a name="predef.using_the_predefs.h0"></a>
<span><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
@@ -150,12 +132,8 @@
All the predefs are defined to be a use of the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>
macro. The macro takes individual major, minor, and patch value expressions:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</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="special">...</span>
</pre>
<p>
</p>
<p>
The arguments are:
</p>
@@ -185,21 +163,13 @@
the other predef macros. This means that any allowed base is possible, i.e.
binary, octal, decimal, and hexadecimal. For example:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">0xA</span><span class="special">,</span><span class="number">015</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
Is equivalent to:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">13</span><span class="special">)</span>
</pre>
<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
+1 -1
View File
@@ -1,5 +1,5 @@
[article Predef
[quickbook 1.6]
[quickbook 1.7]
[version 1.0]
[authors [Rivera, Rene]]
[copyright 2005 Rene Rivera, 2008-2011 Redshift Software Inc]
+4
View File
@@ -38,6 +38,7 @@ void test_BOOST_VERSION_NUMBER()
PREDEF_CHECK(BOOST_PREDEF_MAKE_F_FF_FF_000(0xFFFFF000) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N(999) == BOOST_VERSION_NUMBER(9,9,9));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N__NNN(9999) == BOOST_VERSION_NUMBER(9,0,999));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_NN(999999) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN(9999) == BOOST_VERSION_NUMBER(99,99,0));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_NN(9999) == BOOST_VERSION_NUMBER(9,9,99));
@@ -45,7 +46,10 @@ void test_BOOST_VERSION_NUMBER()
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N_000(999000) == BOOST_VERSION_NUMBER(9,9,9));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN_000(999000) == BOOST_VERSION_NUMBER(9,99,0));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_00_NN_00(9999009900) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_0_NN_00(999909900) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_00(9900) == BOOST_VERSION_NUMBER(99,00,00));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_0_NNNN(999909999) == BOOST_VERSION_NUMBER(99,99,9999));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN(999) == BOOST_VERSION_NUMBER(9,99,00));
PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19700101) == BOOST_VERSION_NUMBER(0,1,1));
PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19710101) == BOOST_VERSION_NUMBER(1,1,1));