Merge documentation update.

[SVN r63517]
This commit is contained in:
Daniel James
2010-07-02 08:27:42 +00:00
parent ceeb9d5366
commit 648508cb89
5 changed files with 2386 additions and 2403 deletions

View File

@ -2,8 +2,8 @@
<head> <head>
<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/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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">
@ -19,9 +19,9 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div> </div>
<div class="section" lang="en"> <div class="section">
<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>
@ -55,7 +55,7 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div> </div>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,8 @@
<head> <head>
<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/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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">
@ -20,9 +20,9 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section">
<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,49 +61,49 @@
<p> <p>
Note that: Note that:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
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
and are not required in any way to support compilers that do not comply with way to support compilers that do not comply with the C++ Standard (ISO/IEC
the C++ Standard (ISO/IEC 14882). 14882).
</li> </li>
<li> <li class="listitem">
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>" is the preferred way to obtain
is the preferred way to obtain configuration information not available from configuration information not available from the standard headers such
the standard headers such as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, 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
If configuration information can be deduced from standard headers such as 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
<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 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> to a new platform is simply to define
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> nothing at all specific to that platform. In the rare case where there
to a new platform is simply to define nothing at all specific to that platform. is no sensible default behavior, an #error message should describe the
In the rare case where there is no sensible default behavior, an #error message 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>,
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 post a request on the Boost mailing list. There is no guarantee such a
a request on the Boost mailing list. There is no guarantee such a request 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
C++ Standard compliant, and only recent releases of those compilers at that. that.
</li> </li>
<li> <li class="listitem">
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
majority of compilers, such as namespaces, exceptions, RTTI, or templates. the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li> </li>
</ul></div> </ul></div>
<div class="section" lang="en"> <div class="section">
<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,21 +116,21 @@
<p> <p>
Note that: Note that:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
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
another Boost header</em></span></strong></span>, it should only ever be used by another Boost header</em></span></strong></span>, it should only ever be
by a library source file or a test case. used by a library source file or a test case.
</li> </li>
<li> <li class="listitem">
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
include any other header</em></span></strong></span>. you include any other header</em></span></strong></span>.
</li> </li>
<li> <li class="listitem">
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.
</li> </li>
</ul></div> </ul></div>
<p> <p>
Currently it disables the following warnings: Currently it disables the following warnings:
@ -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" lang="en"> <div class="section">
<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,57 +233,59 @@
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 type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
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>
</li> <br>
<li> </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> <li class="listitem">
</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>, 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>
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and </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>,
<span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
list of compilers to test with.<br><br> The xxx_pass_test and the <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br><br> If <span class="emphasis"><em>MACRONAME</em></span> is not defined when it should list of compilers to test with.<br> <br> The xxx_pass_test and the
be defined, xxx_pass_test will not report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br> <br> If <span class="emphasis"><em>MACRONAME</em></span>
If <span class="emphasis"><em>MACRONAME</em></span> is defined when it should not be defined, is not defined when it should be defined, xxx_pass_test will not report
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> <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. If <span class="emphasis"><em>MACRONAME</em></span>
</li> is defined when it should not be defined, xxx_fail_test will not report
<li> <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
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> </li>
<span class="identifier">config_info</span> <span class="identifier">config_test</span> <li class="listitem">
</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>. 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>
<code class="computeroutput"><span class="identifier">config_info</span></code> should build <span class="identifier">config_info</span> <span class="identifier">config_test</span>
and run cleanly for all the compilers in <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>.
while <code class="computeroutput"><span class="identifier">config_test</span></code> should <code class="computeroutput"><span class="identifier">config_info</span></code> should build
fail for those that have the defect, and pass for those that do not. and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
</li> while <code class="computeroutput"><span class="identifier">config_test</span></code> should
fail for those that have the defect, and pass for those that do not.
</li>
</ul></div> </ul></div>
<p> <p>
Then you should: Then you should:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
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> <li class="listitem">
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> <li class="listitem">
Commit everything. Commit everything.
</li> </li>
<li> <li class="listitem">
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
by the addition. caused by the addition.
</li> </li>
<li> <li class="listitem">
Start using the macro. Start using the macro.
</li> </li>
</ul></div> </ul></div>
</div> </div>
<div class="section" lang="en"> <div class="section">
<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 +309,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" lang="en"> <div class="section">
<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>
@ -368,7 +370,7 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </div>
</body> </body>
</html> </html>

View File

@ -2,8 +2,8 @@
<head> <head>
<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/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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">
@ -20,9 +20,9 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section">
<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" lang="en"> <div class="section">
<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>
@ -56,16 +56,10 @@
have nothing to do with each other. Essentially, the traditional solution have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed Principle: employed by configuration headers does not conform to the Open-Closed Principle:
</p> </p>
<div class="blockquote"><blockquote class="blockquote"> <div class="blockquote"><blockquote class="blockquote"><p>
<p> <span class="bold"><strong>"A module should be open for extension but closed
</p> for modification."</strong></span>
<p> </p></blockquote></div>
<span class="bold"><strong>"A module should be open for extension but
closed for modification."</strong></span>
</p>
<p>
</p>
</blockquote></div>
<p> <p>
Extending a traditional configuration header implies modifying existing code. Extending a traditional configuration header implies modifying existing code.
</p> </p>
@ -78,15 +72,9 @@
of the entire library, and more stable elements of Boost would depend on of the entire library, and more stable elements of Boost would depend on
it. This violates the Stable Dependencies Principle: it. This violates the Stable Dependencies Principle:
</p> </p>
<div class="blockquote"><blockquote class="blockquote"> <div class="blockquote"><blockquote class="blockquote"><p>
<p> <span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p> </p></blockquote></div>
<p>
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p>
<p>
</p>
</blockquote></div>
<p> <p>
After even a minor change to a traditional configuration header on one minor After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow platform, almost everything on every platform should be tested if we follow
@ -102,7 +90,7 @@
code must be provided. code must be provided.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section">
<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>
@ -129,7 +117,7 @@
</tr></table> </tr></table>
<hr> <hr>
<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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </div>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff