forked from boostorg/config
Initial HTML commit
[SVN r7636]
This commit is contained in:
87
index.htm
Normal file
87
index.htm
Normal 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 <climits>, etc.</li>
|
||||
<li>If configuration information can be deduced from standard headers such as
|
||||
<climits>, 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>
|
Reference in New Issue
Block a user