Try and make BOOST_NO_EXTERN_TEMPLATES clearer.

[SVN r62257]
This commit is contained in:
John Maddock
2010-05-27 08:49:52 +00:00
parent 5425bedbb4
commit 2b40995d16
6 changed files with 2244 additions and 2249 deletions

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title> <title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config"> <link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config"> <link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale"> <link rel="prev" href="rationale.html" title="Rationale">
@@ -21,7 +21,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a> <a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a> <a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div> </h2></div></div></div>

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title> <title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config"> <link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config"> <link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference"> <link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
@@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for <a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a> Boost Authors</a>
@@ -61,14 +61,14 @@
<p> <p>
Note that: Note that:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"> <div class="itemizedlist"><ul type="disc">
<li class="listitem"> <li>
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span> Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>",
and are not required in any way to support compilers that do not comply with and are not required in any way to support compilers that do not comply with
the C++ Standard (ISO/IEC 14882). the C++ Standard (ISO/IEC 14882).
</li> </li>
<li class="listitem"> <li>
If a library implementer wishes to support some non-conforming compiler, If a library implementer wishes to support some non-conforming compiler,
or to support some platform specific feature, "<code class="computeroutput"><span class="preprocessor">#include</span> or to support some platform specific feature, "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>" <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>"
@@ -76,12 +76,12 @@
the standard headers such as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, the standard headers such as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>,
etc. etc.
</li> </li>
<li class="listitem"> <li>
If configuration information can be deduced from standard headers such as If configuration information can be deduced from standard headers such as
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather than <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather than
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</li> </li>
<li class="listitem"> <li>
Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
should have sensible, standard conforming, default behavior if the macro should have sensible, standard conforming, default behavior if the macro
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -89,21 +89,21 @@
In the rare case where there is no sensible default behavior, an #error message In the rare case where there is no sensible default behavior, an #error message
should describe the problem. should describe the problem.
</li> </li>
<li class="listitem"> <li>
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>, post If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>, post
a request on the Boost mailing list. There is no guarantee such a request a request on the Boost mailing list. There is no guarantee such a request
will be honored; the intent is to limit the complexity of config.hpp. will be honored; the intent is to limit the complexity of config.hpp.
</li> </li>
<li class="listitem"> <li>
The intent is to support only compilers which appear on their way to becoming The intent is to support only compilers which appear on their way to becoming
C++ Standard compliant, and only recent releases of those compilers at that. C++ Standard compliant, and only recent releases of those compilers at that.
</li> </li>
<li class="listitem"> <li>
The intent is not to disable mainstream features now well-supported by the The intent is not to disable mainstream features now well-supported by the
majority of compilers, such as namespaces, exceptions, RTTI, or templates. majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li> </li>
</ul></div> </ul></div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings"> <a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">
Disabling Compiler Warnings</a> Disabling Compiler Warnings</a>
@@ -116,17 +116,17 @@
<p> <p>
Note that: Note that:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"> <div class="itemizedlist"><ul type="disc">
<li class="listitem"> <li>
This header <span class="bold"><strong><span class="emphasis"><em>should never be included by This header <span class="bold"><strong><span class="emphasis"><em>should never be included by
another Boost header</em></span></strong></span>, it should only ever be used another Boost header</em></span></strong></span>, it should only ever be used
by a library source file or a test case. by a library source file or a test case.
</li> </li>
<li class="listitem"> <li>
The header should be included <span class="bold"><strong><span class="emphasis"><em>before you The header should be included <span class="bold"><strong><span class="emphasis"><em>before you
include any other header</em></span></strong></span>. include any other header</em></span></strong></span>.
</li> </li>
<li class="listitem"> <li>
This header only disables warnings that are hard or impossible to otherwise This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or in deal with, and which are typically emitted by one compiler only, or in
one compilers own standard library headers. one compilers own standard library headers.
@@ -142,47 +142,47 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Compiler Compiler
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Warning Warning
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
Visual C++ 8 and later Visual C++ 8 and later
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>: <a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
Error 'function': was declared deprecated Error 'function': was declared deprecated
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
Intel C++ Intel C++
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Warning 1786: relates to the use of "deprecated" standard Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++. library functions rather like C4996 in Visual C++.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding <a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a> New Defect Macros</a>
@@ -233,14 +233,14 @@
Once the test code is in place in libs/config/test, updating the configuration Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as: test system proceeds as:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"> <div class="itemizedlist"><ul type="disc">
<li class="listitem"> <li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>. cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code> This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2, file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br><br> <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br><br>
</li> </li>
<li class="listitem"> <li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span> cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
</code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>, </code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
@@ -251,7 +251,7 @@
If <span class="emphasis"><em>MACRONAME</em></span> is defined when it should not be defined, If <span class="emphasis"><em>MACRONAME</em></span> is defined when it should not be defined,
xxx_fail_test will not report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br><br> xxx_fail_test will not report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br><br>
</li> </li>
<li class="listitem"> <li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span> cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
<span class="identifier">config_info</span> <span class="identifier">config_test</span> <span class="identifier">config_info</span> <span class="identifier">config_test</span>
</code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>. </code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
@@ -264,26 +264,26 @@
<p> <p>
Then you should: Then you should:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"> <div class="itemizedlist"><ul type="disc">
<li class="listitem"> <li>
Define the defect macro in those config headers that require it. Define the defect macro in those config headers that require it.
</li> </li>
<li class="listitem"> <li>
Document the macro in this documentation (please do not forget this step!!) Document the macro in this documentation (please do not forget this step!!)
</li> </li>
<li class="listitem"> <li>
Commit everything. Commit everything.
</li> </li>
<li class="listitem"> <li>
Keep an eye on the regression tests for new failures in Boost.Config caused Keep an eye on the regression tests for new failures in Boost.Config caused
by the addition. by the addition.
</li> </li>
<li class="listitem"> <li>
Start using the macro. Start using the macro.
</li> </li>
</ul></div> </ul></div>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding <a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
New Feature Test Macros</a> New Feature Test Macros</a>
@@ -307,7 +307,7 @@
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>). <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
</p> </p>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying <a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
the Boost Configuration Headers</a> the Boost Configuration Headers</a>

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title> <title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config"> <link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config"> <link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors"> <link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
@@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a> <a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div> </h2></div></div></div>
@@ -39,7 +39,7 @@
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
article</a>. article</a>.
</p> </p>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a> <a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
</h3></div></div></div> </h3></div></div></div>
@@ -102,7 +102,7 @@
code must be provided. code must be provided.
</p> </p>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a> <a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
</h3></div></div></div> </h3></div></div></div>

View File

@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Config</title> <title>Boost.Config</title>
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="index.html" title="Boost.Config"> <link rel="home" href="index.html" title="Boost.Config">
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference"> <link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
</head> </head>
@@ -18,7 +18,7 @@
</tr></table> </tr></table>
<hr> <hr>
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div> <div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
<div class="article"> <div class="article" lang="en">
<div class="titlepage"> <div class="titlepage">
<div> <div>
<div><h2 class="title"> <div><h2 class="title">
@@ -28,7 +28,7 @@
</h3></div></div></div> </h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div> <div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
<div><div class="legalnotice"> <div><div class="legalnotice">
<a name="id3235942"></a><p> <a name="id903664"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p> </p>
@@ -92,7 +92,7 @@
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt> <dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
</dl> </dl>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring <a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
Boost for Your Platform</a> Boost for Your Platform</a>
@@ -111,7 +111,7 @@
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing <dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
the boost configuration</a></span></dt> the boost configuration</a></span></dt>
</dl></div> </dl></div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using <a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
the default boost configuration</a> the default boost configuration</a>
@@ -135,7 +135,7 @@
and submitting a support request. and submitting a support request.
</p> </p>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The <a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The
&lt;boost/config.hpp&gt; header</a> &lt;boost/config.hpp&gt; header</a>
@@ -168,7 +168,7 @@
</div> </div>
<a name="config_config_script"></a><p> <a name="config_config_script"></a><p>
</p> </p>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using <a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
the configure script</a> the configure script</a>
@@ -213,63 +213,63 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Variable Variable
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Description Description
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
CXX CXX
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The name of the compiler, for example <code class="computeroutput"><span class="identifier">c</span><span class="special">++</span></code>. The name of the compiler, for example <code class="computeroutput"><span class="identifier">c</span><span class="special">++</span></code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
CXXFLAGS CXXFLAGS
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The compiler flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">O2</span></code>. The compiler flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">O2</span></code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
LDFLAGS LDFLAGS
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The linker flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">L</span><span class="special">/</span><span class="identifier">mypath</span></code>. The linker flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">L</span><span class="special">/</span><span class="identifier">mypath</span></code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
LIBS LIBS
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Any libraries to link in, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">lpthread</span></code>. Any libraries to link in, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">lpthread</span></code>.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@@ -295,15 +295,15 @@
(located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>). (located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
There are two ways you can use this header: There are two ways you can use this header:
</p> </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"> <div class="itemizedlist"><ul type="disc">
<li class="listitem"> <li>
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp <span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
provided by boost. This option allows only one configure-generated setup; provided by boost. This option allows only one configure-generated setup;
boost developers should avoid this option, as it incurs the danger of accidentally boost developers should avoid this option, as it incurs the danger of accidentally
committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a> committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
to the cvs repository (something you will not be thanked for!). to the cvs repository (something you will not be thanked for!).
</li> </li>
<li class="listitem"> <li>
<span class="bold"><strong>Option 2:</strong></span> give the header a more memorable <span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For
example create a new sub-directory <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code><code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example example create a new sub-directory <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code><code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example
@@ -318,7 +318,7 @@
</div> </div>
<a name="config_user_settable"></a><p> <a name="config_user_settable"></a><p>
</p> </p>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User <a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
settable options</a> settable options</a>
@@ -337,354 +337,352 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Macro Macro
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Description Description
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, it should point to the name of the user configuration When defined, it should point to the name of the user configuration
file to include prior to any boost configuration files. When not file to include prior to any boost configuration files. When not
defined, defaults to <a href="../../../../boost/config/user.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>. defined, defaults to <a href="../../../../boost/config/user.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, it should point to the name of the compiler configuration When defined, it should point to the name of the compiler configuration
file to use. Defining this cuts out the compiler selection logic, file to use. Defining this cuts out the compiler selection logic,
and eliminates the dependency on the header containing that logic. and eliminates the dependency on the header containing that logic.
For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
to <a href="../../../../boost/config/compiler/gcc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">gcc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>. to <a href="../../../../boost/config/compiler/gcc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">gcc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, it should point to the name of the standard library When defined, it should point to the name of the standard library
configuration file to use. Defining this cuts out the standard configuration file to use. Defining this cuts out the standard library
library selection logic, and eliminates the dependency on the header selection logic, and eliminates the dependency on the header containing
containing that logic. For example if you are using STLport, then that logic. For example if you are using STLport, then you could
you could define <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code> define <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
to <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>. to <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, it should point to the name of the platform configuration When defined, it should point to the name of the platform configuration
file to use. Defining this cuts out the platform selection logic, file to use. Defining this cuts out the platform selection logic,
and eliminates the dependency on the header containing that logic. and eliminates the dependency on the header containing that logic.
For example if you are compiling on linux, then you could define For example if you are compiling on linux, then you could define
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
to <a href="../../../../boost/config/platform/linux.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">linux</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>. to <a href="../../../../boost/config/platform/linux.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">linux</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, no compiler configuration file is selected or included, When defined, no compiler configuration file is selected or included,
define when the compiler is fully conformant with the standard, define when the compiler is fully conformant with the standard, or
or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
has had any options necessary added to it, for example by an autoconf has had any options necessary added to it, for example by an autoconf
generated configure script. generated configure script.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, no standard library configuration file is selected When defined, no standard library configuration file is selected
or included, define when the standard library is fully conformant or included, define when the standard library is fully conformant
with the standard, or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), has had any with the standard, or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
options necessary added to it, for example by an autoconf generated has had any options necessary added to it, for example by an autoconf
configure script. generated configure script.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, no platform configuration file is selected or included, When defined, no platform configuration file is selected or included,
define when the platform is fully conformant with the standard define when the platform is fully conformant with the standard (and
(and has no useful extra features), or where the user header (see has no useful extra features), or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), has had any
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), options necessary added to it, for example by an autoconf generated
has had any options necessary added to it, for example by an autoconf configure script.
generated configure script. </p>
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Equivalent to defining all of <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>, Equivalent to defining all of <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>,
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
and <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>. and <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_STRICT_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_STRICT_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The normal behavior for compiler versions that are newer than the The normal behavior for compiler versions that are newer than the
last known version, is to assume that they have all the same defects last known version, is to assume that they have all the same defects
as the last known version. By setting this define, then compiler as the last known version. By setting this define, then compiler
versions that are newer than the last known version are assumed versions that are newer than the last known version are assumed to
to be fully conforming with the standard. This is probably most be fully conforming with the standard. This is probably most useful
useful for boost developers or testers, and for those who want for boost developers or testers, and for those who want to use boost
to use boost to test beta compiler versions. to test beta compiler versions.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_ASSERT_CONFIG</span></code> <code class="computeroutput"><span class="identifier">BOOST_ASSERT_CONFIG</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When this flag is set, if the config finds anything unknown, then When this flag is set, if the config finds anything unknown, then
it will stop with a #error rather than continue. Boost regression it will stop with a #error rather than continue. Boost regression
testers should set this define, as should anyone who wants to quickly testers should set this define, as should anyone who wants to quickly
check whether boost is supported on their platform. check whether boost is supported on their platform.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, disables threading support, even if the compiler When defined, disables threading support, even if the compiler in
in its current translation mode supports multiple threads. its current translation mode supports multiple threads.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_WIN32</span></code> <code class="computeroutput"><span class="identifier">BOOST_DISABLE_WIN32</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
When defined, disables the use of Win32 specific API's, even when When defined, disables the use of Win32 specific API's, even when
these are available. Also has the effect of setting <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> unless these are available. Also has the effect of setting <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> unless <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code> is set. This
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code> option may be set automatically by the config system when it detects
is set. This option may be set automatically by the config system that the compiler is in "strict mode".
when it detects that the compiler is in "strict mode". </p>
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code> <code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Stops boost headers from including any prefix/suffix headers that Stops boost headers from including any prefix/suffix headers that
normally control things like struct packing and alignment. normally control things like struct packing and alignment.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code> <code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A prefix header to include in place of whatever boost.config would A prefix header to include in place of whatever boost.config would
normally select, any replacement should set up struct packing and normally select, any replacement should set up struct packing and
alignment options as required. alignment options as required.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code> <code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A suffix header to include in place of whatever boost.config would A suffix header to include in place of whatever boost.config would
normally select, any replacement should undo the effects of the normally select, any replacement should undo the effects of the prefix
prefix header. header.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_ALL_DYN_LINK</span></code> <code class="computeroutput"><span class="identifier">BOOST_ALL_DYN_LINK</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Forces all libraries that have separate source, to be linked as Forces all libraries that have separate source, to be linked as dll's
dll's rather than static libraries on Microsoft Windows (this macro rather than static libraries on Microsoft Windows (this macro is
is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
knows which symbols to look for in a dll rather than in a static knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may statically linked (Boost.Test for example) and others which may only
only be dynamically linked (Boost.Threads for example), in these be dynamically linked (Boost.Threads for example), in these cases
cases this macro has no effect. this macro has no effect.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_DYN_LINK</span></code> <code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_DYN_LINK</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Forces library "whatever" to be linked as a dll rather Forces library "whatever" to be linked as a dll rather
than a static library on Microsoft Windows: replace the <span class="emphasis"><em>WHATEVER</em></span> than a static library on Microsoft Windows: replace the <span class="emphasis"><em>WHATEVER</em></span>
part of the macro name with the name of the library that you want part of the macro name with the name of the library that you want
to dynamically link to, for example use <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_DYN_LINK</span></code> to dynamically link to, for example use <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_DYN_LINK</span></code>
or <code class="computeroutput"><span class="identifier">BOOST_REGEX_DYN_LINK</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_DYN_LINK</span></code>
etc (this macro is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler etc (this macro is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
knows which symbols to look for in a dll rather than in a static knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may statically linked (Boost.Test for example) and others which may only
only be dynamically linked (Boost.Threads for example), in these be dynamically linked (Boost.Threads for example), in these cases
cases this macro is unsupported. this macro is unsupported.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_ALL_NO_LIB</span></code> <code class="computeroutput"><span class="identifier">BOOST_ALL_NO_LIB</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Tells the config system not to automatically select which libraries Tells the config system not to automatically select which libraries
to link against. Normally if a compiler supports #pragma lib, then to link against. Normally if a compiler supports #pragma lib, then
the correct library build variant will be automatically selected the correct library build variant will be automatically selected
and linked against, simply by the act of including one of that and linked against, simply by the act of including one of that library's
library's headers. This macro turns that feature off. headers. This macro turns that feature off.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_NO_LIB</span></code> <code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_NO_LIB</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Tells the config system not to automatically select which library Tells the config system not to automatically select which library
to link against for library "whatever", replace <span class="emphasis"><em>WHATEVER</em></span> to link against for library "whatever", replace <span class="emphasis"><em>WHATEVER</em></span>
in the macro name with the name of the library; for example <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_NO_LIB</span></code>. Normally in the macro name with the name of the library; for example <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_NO_LIB</span></code>. Normally if
if a compiler supports <code class="computeroutput"><span class="preprocessor">#pragma</span> a compiler supports <code class="computeroutput"><span class="preprocessor">#pragma</span>
<span class="identifier">lib</span></code>, then the correct <span class="identifier">lib</span></code>, then the correct library
library build variant will be automatically selected and linked build variant will be automatically selected and linked against,
against, simply by the act of including one of that library's headers. simply by the act of including one of that library's headers. This
This macro turns that feature off. macro turns that feature off.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code> <code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Causes the auto-linking code to output diagnostic messages indicating Causes the auto-linking code to output diagnostic messages indicating
the name of the library that is selected for linking. the name of the library that is selected for linking.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code> <code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Overrides the name of the toolset part of the name of library being Overrides the name of the toolset part of the name of library being
linked to; note if defined this must be defined to a quoted string linked to; note if defined this must be defined to a quoted string
literal, for example "abc". literal, for example "abc".
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced <a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
configuration usage</a> configuration usage</a>
@@ -728,7 +726,7 @@
<p> <p>
The following usage examples represent just a few of the possibilities: The following usage examples represent just a few of the possibilities:
</p> </p>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title"> <div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example <a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example
1, creating our own frozen configuration</a> 1, creating our own frozen configuration</a>
@@ -760,7 +758,7 @@
yet supported by boost. yet supported by boost.
</p> </p>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title"> <div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example <a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
2: skipping files that you don't need</a> 2: skipping files that you don't need</a>
@@ -779,7 +777,7 @@
a dependency on two boost headers. a dependency on two boost headers.
</p> </p>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title"> <div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example <a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
3: using configure script to freeze the boost configuration</a> 3: using configure script to freeze the boost configuration</a>
@@ -792,7 +790,7 @@
</p> </p>
</div> </div>
</div> </div>
<div class="section"> <div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing <a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
the boost configuration</a> the boost configuration</a>
@@ -810,119 +808,119 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
File File
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Description Description
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Prints out a detailed description of your compiler/standard library/platform Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided setup, plus your current boost configuration. The information provided
by this program useful in setting up the boost configuration files. by this program useful in setting up the boost configuration files.
If you report that boost is incorrectly configured for your compiler/library/platform If you report that boost is incorrectly configured for your compiler/library/platform
then please include the output from this program when reporting then please include the output from this program when reporting the
the changes required. changes required.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A monolithic test program that includes most of the individual A monolithic test program that includes most of the individual test
test cases. This provides a quick check to see if boost is correctly cases. This provides a quick check to see if boost is correctly configured
configured for your compiler/library/platform. for your compiler/library/platform.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">limits_test</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">limits_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Tests your standard library's <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code> Tests your standard library's <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
implementation (or its boost provided replacement if <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code> is defined). implementation (or its boost provided replacement if <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code> is defined). This
This test file fails with most versions of numeric_limits, mainly test file fails with most versions of numeric_limits, mainly due
due to the way that some compilers treat NAN's and infinity. to the way that some compilers treat NAN's and infinity.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Individual compiler defect test files. Each of these should compile, Individual compiler defect test files. Each of these should compile,
if one does not then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code> if one does not then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
macro needs to be defined - see each test file for specific details. macro needs to be defined - see each test file for specific details.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Individual compiler defect test files. Each of these should not Individual compiler defect test files. Each of these should not compile,
compile, if one does then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code> if one does then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
macro is defined when it need not be - see each test file for specific macro is defined when it need not be - see each test file for specific
details. details.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Individual feature test files. If one of these does not compile Individual feature test files. If one of these does not compile then
then the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code> the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
macro is defined when it should not be - see each test file for macro is defined when it should not be - see each test file for specific
specific details. details.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code> <code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Individual feature test files. If one of these does compile then Individual feature test files. If one of these does compile then
the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code> the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
macro can be safely defined - see each test file for specific details. macro can be safely defined - see each test file for specific details.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@@ -962,7 +960,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: May 22, 2010 at 12:50:36 GMT</small></p></td> <td align="left"><p><small>Last revised: May 27, 2010 at 08:46:14 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -582,7 +582,7 @@ deleted (`= delete`) functions.
explicit conversion operators (`explicit operator T()`). explicit conversion operators (`explicit operator T()`).
]] ]]
[[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support [[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation declarations for templates (`explicit template`). explicit instantiation forward declarations for templates (`extern template ...`).
]] ]]
[[`BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support [[`BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates. default template arguments for function templates.
@@ -1080,3 +1080,4 @@ match that used to create the libraries via bjam 's install rules.
[endsect] [endsect]