forked from boostorg/config
Merge documentation update.
[SVN r63517]
This commit is contained in:
@ -2,8 +2,8 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="rationale.html" title="Rationale">
|
||||
@ -19,9 +19,9 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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 class="section" lang="en">
|
||||
<div class="section">
|
||||
<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>
|
||||
</h2></div></div></div>
|
||||
@ -55,7 +55,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,8 +2,8 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Guidelines for Boost Authors</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<link rel="home" 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">
|
||||
@ -20,9 +20,9 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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 class="section" lang="en">
|
||||
<div class="section">
|
||||
<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
|
||||
Boost Authors</a>
|
||||
@ -61,49 +61,49 @@
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</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">></span></code>",
|
||||
and are not required in any way to support compilers that do not comply with
|
||||
the C++ Standard (ISO/IEC 14882).
|
||||
</li>
|
||||
<li>
|
||||
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>
|
||||
<span class="special"><</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">></span></code>"
|
||||
is the preferred way to obtain configuration information not available from
|
||||
the standard headers such as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>,
|
||||
etc.
|
||||
</li>
|
||||
<li>
|
||||
If configuration information can be deduced from standard headers such as
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, use those standard headers rather than
|
||||
<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><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
</li>
|
||||
<li>
|
||||
Boost files that use macros defined in <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><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
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"><</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">></span></code>
|
||||
to a new platform is simply to define nothing at all specific to that platform.
|
||||
In the rare case where there is no sensible default behavior, an #error message
|
||||
should describe the problem.
|
||||
</li>
|
||||
<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
|
||||
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.
|
||||
</li>
|
||||
<li>
|
||||
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.
|
||||
</li>
|
||||
<li>
|
||||
The intent is not to disable mainstream features now well-supported by the
|
||||
majority of compilers, such as namespaces, exceptions, RTTI, or templates.
|
||||
</li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</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">></span></code>", and are not required in any
|
||||
way to support compilers that do not comply with the C++ Standard (ISO/IEC
|
||||
14882).
|
||||
</li>
|
||||
<li class="listitem">
|
||||
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>
|
||||
<span class="special"><</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">></span></code>" is the preferred way to obtain
|
||||
configuration information not available from the standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, etc.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
If configuration information can be deduced from standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, use those standard headers rather
|
||||
than <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><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Boost files that use macros defined in <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><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
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"><</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">></span></code> to a new platform is simply to define
|
||||
nothing at all specific to that platform. In the rare case where there
|
||||
is no sensible default behavior, an #error message should describe the
|
||||
problem.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
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 will be honored; the intent is to limit the complexity of config.hpp.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
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.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The intent is not to disable mainstream features now well-supported by
|
||||
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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">
|
||||
Disabling Compiler Warnings</a>
|
||||
@ -116,21 +116,21 @@
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
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
|
||||
by a library source file or a test case.
|
||||
</li>
|
||||
<li>
|
||||
The header should be included <span class="bold"><strong><span class="emphasis"><em>before you
|
||||
include any other header</em></span></strong></span>.
|
||||
</li>
|
||||
<li>
|
||||
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
|
||||
one compilers own standard library headers.
|
||||
</li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
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 by a library source file or a test case.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
|
||||
you include any other header</em></span></strong></span>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
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
|
||||
one compilers own standard library headers.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Currently it disables the following warnings:
|
||||
@ -142,47 +142,47 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Warning
|
||||
</p>
|
||||
<p>
|
||||
Warning
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Visual C++ 8 and later
|
||||
</p>
|
||||
<p>
|
||||
Visual C++ 8 and later
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
|
||||
Error 'function': was declared deprecated
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
|
||||
Error 'function': was declared deprecated
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Intel C++
|
||||
</p>
|
||||
<p>
|
||||
Intel C++
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Warning 1786: relates to the use of "deprecated" standard
|
||||
library functions rather like C4996 in Visual C++.
|
||||
</p>
|
||||
<p>
|
||||
Warning 1786: relates to the use of "deprecated" standard
|
||||
library functions rather like C4996 in Visual C++.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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
|
||||
New Defect Macros</a>
|
||||
@ -233,57 +233,59 @@
|
||||
Once the test code is in place in libs/config/test, updating the configuration
|
||||
test system proceeds as:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<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>.
|
||||
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,
|
||||
<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>
|
||||
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>,
|
||||
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
|
||||
<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
|
||||
list of compilers to test with.<br><br> The xxx_pass_test and the
|
||||
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
|
||||
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>.
|
||||
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>
|
||||
</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></code> and run <code class="computeroutput"><span class="identifier">bjam</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 class="computeroutput"><span class="identifier">config_info</span></code> should build
|
||||
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>
|
||||
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>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<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>.
|
||||
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,
|
||||
<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 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">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>,
|
||||
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
|
||||
<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
|
||||
list of compilers to test with.<br> <br> The xxx_pass_test and the
|
||||
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 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>. 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>
|
||||
</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">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>
|
||||
</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 class="computeroutput"><span class="identifier">config_info</span></code> should build
|
||||
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>
|
||||
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>
|
||||
<p>
|
||||
Then you should:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
Define the defect macro in those config headers that require it.
|
||||
</li>
|
||||
<li>
|
||||
Document the macro in this documentation (please do not forget this step!!)
|
||||
</li>
|
||||
<li>
|
||||
Commit everything.
|
||||
</li>
|
||||
<li>
|
||||
Keep an eye on the regression tests for new failures in Boost.Config caused
|
||||
by the addition.
|
||||
</li>
|
||||
<li>
|
||||
Start using the macro.
|
||||
</li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Define the defect macro in those config headers that require it.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Document the macro in this documentation (please do not forget this step!!)
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Commit everything.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Keep an eye on the regression tests for new failures in Boost.Config
|
||||
caused by the addition.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Start using the macro.
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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
|
||||
New Feature Test Macros</a>
|
||||
@ -307,7 +309,7 @@
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>).
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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
|
||||
the Boost Configuration Headers</a>
|
||||
@ -368,7 +370,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -2,8 +2,8 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Rationale</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<link rel="home" 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">
|
||||
@ -20,9 +20,9 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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 class="section" lang="en">
|
||||
<div class="section">
|
||||
<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>
|
||||
</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
|
||||
article</a>.
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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>
|
||||
</h3></div></div></div>
|
||||
@ -56,16 +56,10 @@
|
||||
have nothing to do with each other. Essentially, the traditional solution
|
||||
employed by configuration headers does not conform to the Open-Closed Principle:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>"A module should be open for extension but
|
||||
closed for modification."</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<span class="bold"><strong>"A module should be open for extension but closed
|
||||
for modification."</strong></span>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
Extending a traditional configuration header implies modifying existing code.
|
||||
</p>
|
||||
@ -78,15 +72,9 @@
|
||||
of the entire library, and more stable elements of Boost would depend on
|
||||
it. This violates the Stable Dependencies Principle:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
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
|
||||
@ -102,7 +90,7 @@
|
||||
code must be provided.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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>
|
||||
</h3></div></div></div>
|
||||
@ -129,7 +117,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user