Initial HTML commit

[SVN r7636]
This commit is contained in:
Beman Dawes
2000-07-27 14:04:40 +00:00
parent f6a1f86206
commit 9b41c3b48d

87
index.htm Normal file
View File

@@ -0,0 +1,87 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Configuration Header</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Configuration Header <a href="../../boost/config.hpp">boost/config.hpp</a></h1>
<p>The <a href="../../boost/config.hpp">boost/config.hpp</a> header is used to
pass configuration information to other boost files, allowing them to cope with
platform dependencies such as arithmetic byte ordering, compiler pragmas, or
compiler shortcomings. Without such configuration information, many current
compilers would not work with the Boost libraries.</p>
<p>Centralizing configuration information is this header reduces the number of
files which must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.</p>
<p>Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem. In
other words, configuration headers are a necessary evil rather than a desirable
feature. The boost config.hpp policy is designed to minimize the problems and
maximize the benefits of a configuration header.</p>
<h2>Boost config.hpp policy</h2>
<p>For Library Users:</p>
<ul>
<li>Boost library users are never required to #include boost/config.hpp, and
are discouraged from including it on their own.</li>
<li>Boost library users can request support for additional platforms be added
to config.hpp by emailing <a href="mailto:config@boost.org">config@boost.org</a>
describing their request.</li>
</ul>
<p>For Library Implementors:</p>
<ul>
<li>Boost library implementors are not required to #include boost/config.hpp,
and are not required in any way to support compilers which do not comply
with the C++ Standard (ISO/IEC 14882).</li>
<li>If a library implementor wishes to support some nonconforming compiler, or
to support some platform specific feature, #include boost/config.hpp is the
preferred way to obtain configuration information not available from the
standard headers such as &lt;climits&gt;, etc.</li>
<li>If configuration information can be deduced from standard headers such as
&lt;climits&gt;, use those standard headers rather than boost/config.hpp.</li>
<li>Boost files that use macros defined in boost/config.hpp should have
sensible, standard conforming, default behavior if the macro is not defined.
This means that the starting point for porting boost/config.hpp 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 implementor wants something added to config.hpp, 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>
</ul>
<p>General:</p>
<ul>
<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>
</ul>
<h2>Documentation</h2>
<p>See <a href="../../boost/config.hpp">boost/config.hpp</a>; it is designed to
be self documenting.</p>
<h2>Test program</h2>
<p>The <a href="config_test.cpp">config_test.cpp</a> program can be used to
verify which #defines are in effect for your compiler.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->23 Jun 2000<!--webbot bot="Timestamp" endspan i-checksum="15048" --></p>
</body>
</html>