mirror of
https://github.com/boostorg/config.git
synced 2026-03-07 14:24:10 +01:00
Compare commits
70 Commits
boost-1.37
...
boost-1.49
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30b85fc2a5 | ||
|
|
e1657372eb | ||
|
|
6f18ead6db | ||
|
|
3b7ff73e9d | ||
|
|
7bd78dda03 | ||
|
|
e7dd982de7 | ||
|
|
18be7dcf00 | ||
|
|
0bcba7df38 | ||
|
|
72e2d4c24f | ||
|
|
a4c133c6ce | ||
|
|
8dd107358b | ||
|
|
20a331cd0e | ||
|
|
dd3ebc8776 | ||
|
|
98d2f9fc1d | ||
|
|
29fd4a0f96 | ||
|
|
df7e235df6 | ||
|
|
34092fc1c1 | ||
|
|
01dc0e99a0 | ||
|
|
1efc29c864 | ||
|
|
7b3a8ec37e | ||
|
|
1614645b5c | ||
|
|
a29c3edc9b | ||
|
|
3ce24d6389 | ||
|
|
bb3e68b516 | ||
|
|
c99164cf39 | ||
|
|
1121d53a1d | ||
|
|
71fb00764a | ||
|
|
648508cb89 | ||
|
|
ceeb9d5366 | ||
|
|
fbb893adf0 | ||
|
|
ff9a447c71 | ||
|
|
e5b586dc02 | ||
|
|
49e17b082e | ||
|
|
4ce3e43a4e | ||
|
|
3d7932ae61 | ||
|
|
7634ba7ec2 | ||
|
|
4542714613 | ||
|
|
08ebe416a1 | ||
|
|
d17f79ab80 | ||
|
|
027571bf6e | ||
|
|
7254d6c9c8 | ||
|
|
203833a212 | ||
|
|
39b41a8708 | ||
|
|
b6760d3082 | ||
|
|
d9ea70034c | ||
|
|
3d32b20f45 | ||
|
|
28b846cf72 | ||
|
|
10f2b7c60e | ||
|
|
960f3b5e8e | ||
|
|
ae3c247f55 | ||
|
|
62a577dbec | ||
|
|
cf37052edd | ||
|
|
d1e645c524 | ||
|
|
5de0a5bc43 | ||
|
|
cc61ff79fe | ||
|
|
628fbc53bd | ||
|
|
2e03de9749 | ||
|
|
8854d5e66e | ||
|
|
115746bced | ||
|
|
52cb492090 | ||
|
|
4083190c8b | ||
|
|
f9a83ce4f3 | ||
|
|
a8d816422c | ||
|
|
bc97209574 | ||
|
|
d379865f42 | ||
|
|
b3d88665a5 | ||
|
|
40c8299a25 | ||
|
|
63ec21a0d6 | ||
|
|
0d470a6123 | ||
|
|
34574b0044 |
@@ -29,9 +29,6 @@ boostbook standalone
|
||||
<xsl:param>toc.section.depth=2
|
||||
<xsl:param>chunk.section.depth=1
|
||||
<xsl:param>boost.root=../../../..
|
||||
<xsl:param>boost.libraries=../../../../libs/libraries.htm
|
||||
<xsl:param>navig.graphics=1
|
||||
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
|
||||
|
||||
# PDF Options:
|
||||
<format>pdf:<xsl:param>xep.extensions=1
|
||||
@@ -55,12 +52,10 @@ boostbook standalone
|
||||
<format>pdf:<xsl:param>use.role.for.mediaobject=1
|
||||
<format>pdf:<xsl:param>preferred.mediaobject.role=print
|
||||
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
|
||||
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/config/doc/html
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
install pdf-install : standalone : <location>. <install-type>PDF ;
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ Distributed under the Boost Software License, Version 1.0.
|
||||
[/ Other web resources ]
|
||||
|
||||
[def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
|
||||
[def __BOOST_TRACKER__ [@http://sourceforge.net/tracker/?group_id=7586 Tracker]]
|
||||
[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
|
||||
[def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
|
||||
[def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
|
||||
|
||||
|
||||
@@ -112,8 +112,8 @@ filename limit though. You will also need to provide a function prototype
|
||||
"`int test()`" that is declared in a namespace with the same name as the macro,
|
||||
but in all lower case, and which returns zero on success:
|
||||
|
||||
namespace boost_no_foo {
|
||||
|
||||
namespace boost_no_foo {
|
||||
int test()
|
||||
{
|
||||
// test code goes here:
|
||||
@@ -126,14 +126,18 @@ but in all lower case, and which returns zero on success:
|
||||
Once the test code is in place in libs/config/test, updating the configuration
|
||||
test system proceeds as:
|
||||
|
||||
* cd into `libs/config/tools` and run `bjam` : this generates the `.cpp`
|
||||
* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
|
||||
file test cases from the `.ipp` file, updates the
|
||||
libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.
|
||||
* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`] : where
|
||||
libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
|
||||
|
||||
* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
|
||||
['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
|
||||
compilers to test with. You should see the tests pass with those compilers
|
||||
that don't have the defect, and fail with those that do.
|
||||
* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`] :
|
||||
compilers to test with.[br][br]
|
||||
The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
|
||||
If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
|
||||
If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br]
|
||||
|
||||
* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
|
||||
`config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
|
||||
while `config_test` should fail for those that have the defect, and pass for those
|
||||
that do not.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_2006-12-17_0120">
|
||||
<link rel="start" href="../index.html" title="Boost.Config">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<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">
|
||||
</head>
|
||||
@@ -19,18 +19,18 @@
|
||||
</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 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>
|
||||
<p>
|
||||
Beman Dawes provided the original <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> and
|
||||
part of this document.
|
||||
</p>
|
||||
<p>
|
||||
Vesa Karvonen provided a description of the principles (see <a href="rationale.html" title="Rationale">rationale</a>)
|
||||
Vesa Karvonen provided a description of the principles (see <a class="link" href="rationale.html" title="Rationale">rationale</a>)
|
||||
and put together an early version of the current configuration setup.
|
||||
</p>
|
||||
<p>
|
||||
@@ -47,7 +47,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
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>)
|
||||
</p>
|
||||
@@ -55,7 +56,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
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_2006-12-17_0120">
|
||||
<link rel="start" href="../index.html" title="Boost.Config">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<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">
|
||||
<link rel="next" href="rationale.html" title="Rationale">
|
||||
@@ -20,16 +20,16 @@
|
||||
</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 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>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">
|
||||
Disabling Compiler Warnings</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
|
||||
Compiler Warnings</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
|
||||
New Defect Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
|
||||
@@ -61,52 +61,52 @@
|
||||
<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 href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">
|
||||
Disabling Compiler Warnings</a>
|
||||
<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>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The header <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">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
@@ -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,49 +142,49 @@
|
||||
</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 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>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
@@ -206,10 +206,10 @@
|
||||
the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
|
||||
file with the following comments near the top:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO
|
||||
</span><span class="comment">// TITLE: foo
|
||||
</span><span class="comment">// DESCRIPTION: If the compiler fails to support foo
|
||||
</span></pre>
|
||||
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO</span>
|
||||
<span class="comment">// TITLE: foo</span>
|
||||
<span class="comment">// DESCRIPTION: If the compiler fails to support foo</span>
|
||||
</pre>
|
||||
<p>
|
||||
These comments are processed by the autoconf script, so make sure the format
|
||||
follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
|
||||
@@ -220,12 +220,11 @@
|
||||
on success:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
|
||||
<span class="special">{</span>
|
||||
<span class="comment">// test code goes here:
|
||||
</span> <span class="comment">//
|
||||
</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="comment">// test code goes here:</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="special">}</span>
|
||||
@@ -234,56 +233,61 @@
|
||||
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>.
|
||||
</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. You should see the tests pass with those
|
||||
compilers that don't have the defect, and fail with those that do.
|
||||
</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 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>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
@@ -305,9 +309,9 @@
|
||||
<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 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>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
@@ -358,7 +362,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
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>)
|
||||
</p>
|
||||
@@ -366,7 +371,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>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_2006-12-17_0120">
|
||||
<link rel="start" href="../index.html" title="Boost.Config">
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<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">
|
||||
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
|
||||
@@ -20,11 +20,11 @@
|
||||
</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 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>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
|
||||
@@ -39,9 +39,9 @@
|
||||
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 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>
|
||||
<p>
|
||||
Consider a situation in which you are concurrently developing on multiple
|
||||
@@ -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,9 +90,9 @@
|
||||
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 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>
|
||||
<p>
|
||||
The approach taken by boost's configuration headers is to separate configuration
|
||||
@@ -121,7 +109,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
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>)
|
||||
</p>
|
||||
@@ -129,7 +118,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>
|
||||
|
||||
@@ -1,582 +0,0 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2004 Joel de Guzman
|
||||
http://spirit.sourceforge.net/
|
||||
|
||||
Use, modification and distribution is subject to the Boost Software
|
||||
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
=============================================================================*/
|
||||
|
||||
/*=============================================================================
|
||||
Body defaults
|
||||
=============================================================================*/
|
||||
|
||||
body
|
||||
{
|
||||
margin: 1em;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Paragraphs
|
||||
=============================================================================*/
|
||||
|
||||
p
|
||||
{
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Program listings
|
||||
=============================================================================*/
|
||||
|
||||
/* Code on paragraphs */
|
||||
p tt.computeroutput
|
||||
{
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
pre.synopsis
|
||||
{
|
||||
font-size: 10pt;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
font-size: 10pt;
|
||||
display: block;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
||||
}
|
||||
|
||||
/* Program listings in tables don't get borders */
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
margin: 0pc 0pc 0pc 0pc;
|
||||
padding: 0pc 0pc 0pc 0pc;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Headings
|
||||
=============================================================================*/
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
text-align: left;
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 { font: 140% }
|
||||
h2 { font: bold 140% }
|
||||
h3 { font: bold 130% }
|
||||
h4 { font: bold 120% }
|
||||
h5 { font: italic 110% }
|
||||
h6 { font: italic 100% }
|
||||
|
||||
/* Top page titles */
|
||||
title,
|
||||
h1.title,
|
||||
h2.title
|
||||
h3.title,
|
||||
h4.title,
|
||||
h5.title,
|
||||
h6.title,
|
||||
.refentrytitle
|
||||
{
|
||||
font-weight: bold;
|
||||
margin-bottom: 1pc;
|
||||
}
|
||||
|
||||
h1.title { font-size: 140% }
|
||||
h2.title { font-size: 140% }
|
||||
h3.title { font-size: 130% }
|
||||
h4.title { font-size: 120% }
|
||||
h5.title { font-size: 110% }
|
||||
h6.title { font-size: 100% }
|
||||
|
||||
.section h1
|
||||
{
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
.section h2 { font-size: 140% }
|
||||
.section h3 { font-size: 130% }
|
||||
.section h4 { font-size: 120% }
|
||||
.section h5 { font-size: 110% }
|
||||
.section h6 { font-size: 100% }
|
||||
|
||||
/* Code on titles */
|
||||
h1 tt.computeroutput { font-size: 140% }
|
||||
h2 tt.computeroutput { font-size: 140% }
|
||||
h3 tt.computeroutput { font-size: 130% }
|
||||
h4 tt.computeroutput { font-size: 120% }
|
||||
h5 tt.computeroutput { font-size: 110% }
|
||||
h6 tt.computeroutput { font-size: 100% }
|
||||
|
||||
/*=============================================================================
|
||||
Author
|
||||
=============================================================================*/
|
||||
|
||||
h3.author
|
||||
{
|
||||
font-size: 100%
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Lists
|
||||
=============================================================================*/
|
||||
|
||||
li
|
||||
{
|
||||
font-size: 10pt;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Unordered lists */
|
||||
ul
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Ordered lists */
|
||||
ol
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Links
|
||||
=============================================================================*/
|
||||
|
||||
a
|
||||
{
|
||||
text-decoration: none; /* no underline */
|
||||
}
|
||||
|
||||
a:hover
|
||||
{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Spirit style navigation
|
||||
=============================================================================*/
|
||||
|
||||
.spirit-nav
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.spirit-nav a
|
||||
{
|
||||
color: white;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.spirit-nav img
|
||||
{
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Table of contents
|
||||
=============================================================================*/
|
||||
|
||||
.toc
|
||||
{
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.1pc 1pc 0.1pc 1pc;
|
||||
font-size: 10pt;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
.toc-main
|
||||
{
|
||||
text-align: center;
|
||||
margin: 3pc 16% 3pc 16%;
|
||||
padding: 3pc 1pc 3pc 1pc;
|
||||
line-height: 0.1;
|
||||
}
|
||||
|
||||
.boost-toc
|
||||
{
|
||||
float: right;
|
||||
padding: 0.5pc;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Tables
|
||||
=============================================================================*/
|
||||
|
||||
.table-title,
|
||||
div.table p.title
|
||||
{
|
||||
margin-left: 4%;
|
||||
padding-right: 0.5em;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.informaltable table,
|
||||
.table table
|
||||
{
|
||||
width: 92%;
|
||||
margin-left: 4%;
|
||||
margin-right: 4%;
|
||||
}
|
||||
|
||||
div.informaltable table,
|
||||
div.table table
|
||||
{
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
/* Table Cells */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
padding: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
padding: 0.5em 0.5em 0.5em 0.5em;
|
||||
border: 1pt solid white;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Blurbs
|
||||
=============================================================================*/
|
||||
|
||||
div.note,
|
||||
div.tip,
|
||||
div.important,
|
||||
div.caution,
|
||||
div.warning,
|
||||
div.sidebar
|
||||
{
|
||||
font-size: 10pt;
|
||||
line-height: 1.2;
|
||||
display: block;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
||||
}
|
||||
|
||||
div.sidebar img
|
||||
{
|
||||
padding: 1pt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*=============================================================================
|
||||
Callouts
|
||||
=============================================================================*/
|
||||
.line_callout_bug img
|
||||
{
|
||||
float: left;
|
||||
position:relative;
|
||||
left: 4px;
|
||||
top: -12px;
|
||||
clear: left;
|
||||
margin-left:-22px;
|
||||
}
|
||||
|
||||
.callout_bug img
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*=============================================================================
|
||||
Variable Lists
|
||||
=============================================================================*/
|
||||
|
||||
/* Make the terms in definition lists bold */
|
||||
div.variablelist dl dt,
|
||||
span.term
|
||||
{
|
||||
font-weight: bold;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
div.variablelist table tbody tr td
|
||||
{
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
padding: 0em 2em 0em 0em;
|
||||
font-size: 10pt;
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/* Make the terms in definition lists bold */
|
||||
div.variablelist dl dt
|
||||
{
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
div.variablelist dl dd
|
||||
{
|
||||
margin: 0em 0em 0.5em 2em;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
div.variablelist table tbody tr td p
|
||||
div.variablelist dl dd p
|
||||
{
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Misc
|
||||
=============================================================================*/
|
||||
|
||||
/* Title of books and articles in bibliographies */
|
||||
span.title
|
||||
{
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
span.underline
|
||||
{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.strikethrough
|
||||
{
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* Copyright, Legal Notice */
|
||||
div div.legalnotice p
|
||||
{
|
||||
text-align: left
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Colors
|
||||
=============================================================================*/
|
||||
|
||||
@media screen
|
||||
{
|
||||
/* Links */
|
||||
a
|
||||
{
|
||||
color: #0C7445;
|
||||
}
|
||||
|
||||
a:visited
|
||||
{
|
||||
color: #663974;
|
||||
}
|
||||
|
||||
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
|
||||
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
|
||||
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
|
||||
{
|
||||
text-decoration: none; /* no underline */
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* Syntax Highlighting */
|
||||
.keyword { color: #0000AA; }
|
||||
.identifier { color: #000000; }
|
||||
.special { color: #707070; }
|
||||
.preprocessor { color: #402080; }
|
||||
.char { color: teal; }
|
||||
.comment { color: #800000; }
|
||||
.string { color: teal; }
|
||||
.number { color: teal; }
|
||||
.white_bkd { background-color: #E8FBE9; }
|
||||
.dk_grey_bkd { background-color: #A0DAAC; }
|
||||
|
||||
/* Copyright, Legal Notice */
|
||||
.copyright
|
||||
{
|
||||
color: #666666;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div div.legalnotice p
|
||||
{
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
/* Program listing */
|
||||
pre.synopsis
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
border: 0px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Blurbs */
|
||||
div.note,
|
||||
div.tip,
|
||||
div.important,
|
||||
div.caution,
|
||||
div.warning,
|
||||
div.sidebar
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc-main
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
|
||||
/* Tables */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
background-color: #E3F9E4;
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Misc */
|
||||
span.highlight
|
||||
{
|
||||
color: #00A000;
|
||||
}
|
||||
}
|
||||
|
||||
@media print
|
||||
{
|
||||
/* Links */
|
||||
a
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
|
||||
a:visited
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
|
||||
.spirit-nav
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Program listing */
|
||||
pre.synopsis
|
||||
{
|
||||
border: 1px solid gray;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
border: 1px solid gray;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
border: 0px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc-main
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
.informaltable table,
|
||||
.table table
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
border-bottom: 3px solid #9D9D9D;
|
||||
border-right: 3px solid #9D9D9D;
|
||||
border-collapse: collapse;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
background-color: #FAFFFB;
|
||||
}
|
||||
|
||||
/* Misc */
|
||||
span.highlight
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,11 +16,11 @@
|
||||
|
||||
[#config_defects]
|
||||
|
||||
[section Macros that describe defects]
|
||||
[section Macros that describe C++03 defects]
|
||||
|
||||
The following macros all describe features that are required by the C++ standard,
|
||||
The following macros all describe features that are required by the C++03 standard,
|
||||
if one of the following macros is defined, then it represents a defect in the
|
||||
compiler's conformance with the standard.
|
||||
compiler's conformance with the 2003 standard.
|
||||
|
||||
|
||||
[table
|
||||
@@ -49,6 +49,10 @@ Koenig lookup); see std::3.4.2 \[basic.koenig.lookup\]
|
||||
[[`BOOST_NO_AUTO_PTR`][Standard library][
|
||||
If the compiler / library supplies non-standard or broken `std::auto_ptr`.
|
||||
]]
|
||||
[[`BOOST_NO_COMPLETE_VALUE_INITIALIZATION`][Compiler][
|
||||
Compiler has not completely implemented value-initialization.
|
||||
See also [@../../../utility/value_init.htm#compiler_issues The Utility\/Value Init docs]
|
||||
]]
|
||||
[[`BOOST_NO_CTYPE_FUNCTIONS`][Platform][
|
||||
The Platform does not provide functions for the character-classifying
|
||||
operations `<ctype.h>` and `<cctype>`, only macros.
|
||||
@@ -67,6 +71,11 @@ The Platform does not provide `<wchar.h>` and `<cwchar>`.
|
||||
[[`BOOST_NO_CWCTYPE`][Platform][
|
||||
The Platform does not provide `<wctype.h>` and `<cwctype>`.
|
||||
]]
|
||||
[[`BOOST_NO_FENV_H`][Platform, Standard library][
|
||||
The C standard library doesn't provide `<fenv.h>`. [@../../../../boost/detail/fenv.hpp
|
||||
`<boost/detail/fenv.hpp>`] should be included instead of `<fenv.h>` for maximum
|
||||
portability on platforms which do provide `<fenv.h>`.
|
||||
]]
|
||||
[[`BOOST_NO_DEPENDENT_NESTED_DERIVATIONS`][Compiler][
|
||||
The compiler fails to compile a nested class that has a dependent base class:
|
||||
``
|
||||
@@ -140,6 +149,9 @@ The C++ implementation does not provide the `<limits>` header. Never check for
|
||||
this symbol in library code; always include `<boost/limits.hpp>`, which
|
||||
guarantees to provide `std::numeric_limits`.
|
||||
]]
|
||||
[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][Standard library][
|
||||
Static function `numeric_limits<T>::lowest()` is not available for use.
|
||||
]]
|
||||
[[`BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS`][Standard library][
|
||||
Constants such as `numeric_limits<T>::is_signed` are not available for use
|
||||
at compile-time.
|
||||
@@ -204,6 +216,9 @@ of an object is not supported.
|
||||
The compiler does not support the "Substitution Failure Is Not An Error"
|
||||
meta-programming idiom.
|
||||
]]
|
||||
[[`BOOST_NO_SFINAE_EXPR`][Compiler][
|
||||
The compiler does not support usage of SFINAE with arbitrary expressions.
|
||||
]]
|
||||
[[`BOOST_NO_STD_ALLOCATOR`][Standard library][
|
||||
The C++ standard library does not provide a standards conforming
|
||||
`std::allocator`.
|
||||
@@ -310,6 +325,7 @@ void g() { return f(); }
|
||||
|
||||
[#config_features]
|
||||
|
||||
|
||||
[section Macros that describe optional features]
|
||||
|
||||
The following macros describe features that are not required by the C++
|
||||
@@ -325,10 +341,6 @@ The platform supports BeOS style threads.
|
||||
[[`BOOST_HAS_CLOCK_GETTIME`][Platform][
|
||||
The platform has the POSIX API `clock_gettime`.
|
||||
]]
|
||||
[[`BOOST_HAS_DECLSPEC`][Compiler][
|
||||
The compiler uses `__declspec(dllexport)` and `__declspec(dllimport)` to
|
||||
export/import symbols from dll's.
|
||||
]]
|
||||
[[`BOOST_HAS_DIRENT_H`][Platform][
|
||||
The platform has the POSIX header `<dirent.h>`.
|
||||
]]
|
||||
@@ -336,7 +348,10 @@ The platform has the POSIX header `<dirent.h>`.
|
||||
The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
|
||||
]]
|
||||
[[`BOOST_HAS_FTIME`][Platform][
|
||||
The platform has the Win32 API `GetSystemTimeAsFileTime`.
|
||||
The platform has the Win32 API type FTIME.
|
||||
]]
|
||||
[[`BOOST_HAS_GETSYSTEMTIMEASFILETIME`][Platform][
|
||||
The platform has the Win32 API GetSystemTimeAsFileTime.
|
||||
]]
|
||||
[[`BOOST_HAS_GETTIMEOFDAY`][Platform][
|
||||
The platform has the POSIX API `gettimeofday`.
|
||||
@@ -499,11 +514,10 @@ standard).
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Macros that describe possible C++0x features]
|
||||
[section Macros that describe possible C++ future features]
|
||||
|
||||
The following macros describe features that are likely to be included in the
|
||||
upcoming ISO C++ standard, C++0x, but have not yet been approved for inclusion
|
||||
in the language.
|
||||
The following macros describe features that may be included in some future
|
||||
ISO C++ standard, but have not yet been approved for inclusion in the language.
|
||||
|
||||
|
||||
[table
|
||||
@@ -516,39 +530,83 @@ The compiler supports concepts.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Macros that describe C++0x features not supported]
|
||||
[section Macros that describe C++11 features not supported]
|
||||
|
||||
The following macros describe features in the upcoming ISO C++ standard, C++0x,
|
||||
that are not yet supported by a particular compiler.
|
||||
The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,
|
||||
that are not yet supported by a particular compiler or library.
|
||||
|
||||
[table
|
||||
[[Macro ][Description ]]
|
||||
|
||||
[[`BOOST_NO_0X_HDR_ARRAY`][The standard library does not provide header <array>.]]
|
||||
[[`BOOST_NO_0X_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
|
||||
[[`BOOST_NO_0X_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
|
||||
[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
|
||||
[[`BOOST_NO_0X_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
|
||||
[[`BOOST_NO_0X_HDR_FUTURE`][The standard library does not provide header <future>.]]
|
||||
[[`BOOST_NO_0X_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
|
||||
[[`BOOST_NO_0X_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
|
||||
[[`BOOST_NO_0X_HDR_RANDOM`][The standard library does not provide header <random>.]]
|
||||
[[`BOOST_NO_0X_HDR_RATIO`][The standard library does not provide header <ratio>.]]
|
||||
[[`BOOST_NO_0X_HDR_REGEX`][The standard library does not provide header <regex>.]]
|
||||
[[`BOOST_NO_0X_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
|
||||
[[`BOOST_NO_0X_HDR_THREAD`][The standard library does not provide header <thread>.]]
|
||||
[[`BOOST_NO_0X_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
|
||||
[[`BOOST_NO_0X_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
|
||||
[[`BOOST_NO_0X_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
|
||||
[[`BOOST_NO_0X_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
|
||||
[[`BOOST_NO_0X_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
|
||||
|
||||
[[`BOOST_NO_AUTO_DECLARATIONS`][The compiler does not support
|
||||
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_AUTO_MULTIDECLARATIONS`][The compiler does not support
|
||||
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_CHAR16_T`][The compiler does not support
|
||||
type `char16_t`.
|
||||
]]
|
||||
[[`BOOST_NO_CHAR32_T`][The compiler does not support
|
||||
type `char32_t`.
|
||||
]]
|
||||
[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
|
||||
]]
|
||||
[[`BOOST_NO_CONSTEXPR`][The compiler does not support
|
||||
`constexpr`.
|
||||
]]
|
||||
[[`BOOST_NO_DECLTYPE`][The compiler does not support
|
||||
`decltype`.
|
||||
]]
|
||||
[[`BOOST_NO_DECLTYPE_N3276`][The compiler does not support the extension to
|
||||
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
|
||||
accepted in Madrid, March 2011.
|
||||
]]
|
||||
[[`BOOST_NO_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions.
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_DELETED_FUNCTIONS`][The compiler does not support
|
||||
deleted (`= delete`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_EXPLICIT_CONVERSION_OPERATIONS`][The compiler does not support
|
||||
[[`BOOST_NO_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
|
||||
explicit conversion operators (`explicit operator T()`).
|
||||
]]
|
||||
[[`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
|
||||
default template arguments for function templates.
|
||||
]]
|
||||
[[`BOOST_NO_INITIALIZER_LISTS`][
|
||||
The C++ compiler does not support C++0x initializer lists.
|
||||
]]
|
||||
[[`BOOST_NO_LAMBDAS`][The compiler does not support Lambdas.
|
||||
]]
|
||||
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
|
||||
]]
|
||||
[[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`.
|
||||
]]
|
||||
[[`BOOST_NO_NULLPTR`][The compiler does not support `nullptr`.
|
||||
]]
|
||||
[[`BOOST_NO_RAW_LITERALS`][The compiler does not support
|
||||
raw string literals.
|
||||
]]
|
||||
@@ -561,12 +619,93 @@ scoped enumerations (`enum class`).
|
||||
[[`BOOST_NO_STATIC_ASSERT`][The compiler does not support
|
||||
`static_assert`.
|
||||
]]
|
||||
[[`BOOST_NO_STD_UNORDERD`][The standard library does not support
|
||||
<unordered_map> and <unordered_set>.
|
||||
]]
|
||||
[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
|
||||
]]
|
||||
[[`BOOST_NO_UNICODE_LITERALS`][The compiler does not support
|
||||
Unicode (`u8`, `u`, `U') literals.
|
||||
]]
|
||||
Unicode (`u8`, `u`, `U`) literals.
|
||||
]]
|
||||
[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
|
||||
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
|
||||
]]
|
||||
[[`BOOST_NO_VARIADIC_TEMPLATES`][The compiler does not support
|
||||
variadic templates.
|
||||
]]
|
||||
[[`BOOST_NO_VARIADIC_MACROS`][The compiler does not support
|
||||
variadic macros.
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
[#config_11_for_03]
|
||||
|
||||
[section Macros that allow use of C++11 features with C++03 compilers]
|
||||
|
||||
The following macros allow use of C++11 features even with compilers that do not yet
|
||||
provide compliant C++11 support.
|
||||
|
||||
[table
|
||||
[[Macro ][Section ][ Description ]]
|
||||
|
||||
[[`BOOST_CONSTEXPR`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining a constexpr function or constructor replace:
|
||||
``
|
||||
constexpr tuple();
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_CONSTEXPR tuple();
|
||||
``
|
||||
]]
|
||||
[[`BOOST_CONSTEXPR_OR_CONST`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[`BOOST_STATIC_CONSTEXPR`][
|
||||
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[
|
||||
``
|
||||
BOOST_NOEXCEPT
|
||||
BOOST_NOEXCEPT_IF(Predicate)
|
||||
BOOST_NOEXCEPT_EXPR(Expression)
|
||||
``
|
||||
][
|
||||
If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
|
||||
[:
|
||||
``
|
||||
#define BOOST_NOEXCEPT
|
||||
#define BOOST_NOEXCEPT_IF(Predicate)
|
||||
#define BOOST_NOEXCEPT_EXPR(Expression) false
|
||||
``
|
||||
]
|
||||
If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
|
||||
[:
|
||||
``
|
||||
#define BOOST_NOEXCEPT noexcept
|
||||
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
|
||||
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
|
||||
``
|
||||
]
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
@@ -582,6 +721,45 @@ workarounds for compiler/standard library defects.
|
||||
[table
|
||||
[[Macro ][Description ]]
|
||||
|
||||
[[`BOOST_WORKAROUND`][
|
||||
This macro is used where a compiler specific workaround is required that is not otherwise
|
||||
described by one of the other Boost.Config macros. To use the macro you must first
|
||||
``
|
||||
#include <boost/detail/workaround.hpp>
|
||||
``
|
||||
usage is then:
|
||||
``
|
||||
#if BOOST_WORKAROUND(MACRONAME, CONDITION)
|
||||
// workaround code goes here...
|
||||
#else
|
||||
// Standard conforming code goes here...
|
||||
#endif
|
||||
``
|
||||
where `MACRONAME` is a macro that usually describes the version number to be tested against, and `CONDITION`
|
||||
is a comparison operator followed by a value. For example `BOOST_WORKAROUND(BOOST_INTEL, <= 1010)` would
|
||||
evaluate to `1` for Intel C++ 10.1 and earlier.
|
||||
|
||||
The macro can also be used with `BOOST_TESTED_AT` if all
|
||||
current compiler versions exhibit the issue, but the issue is expected to be fixed at some later point.
|
||||
|
||||
For example
|
||||
`BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590))` would normally evaluate to `1` for all values
|
||||
of `__BORLANDC__` /unless/ the macro `BOOST_DETECT_OUTDATED_WORKAROUNDS` is defined, in which case evaluates to
|
||||
`(__BORLANDC__ <= 0x590)`.
|
||||
|
||||
[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/detail/workaround.hpp boost/detail/workaround.hpp].
|
||||
]]
|
||||
[[`BOOST_PREVENT_MACRO_SUBSTITUTION`][
|
||||
Sometimes you have a function name with the same name as a C macro, for example "min" and "max"
|
||||
member functions, in which case one can prevent the function being expanded as a macro using:
|
||||
``
|
||||
someclass.min BOOST_PREVENT_MACRO_SUBSTITUTION(arg1, arg2);
|
||||
``
|
||||
The following also works in most, but not all, contexts:
|
||||
``
|
||||
(someclass.max)(arg1, arg2);
|
||||
``
|
||||
]]
|
||||
[[`BOOST_DEDUCED_TYPENAME`][
|
||||
Some compilers don't support the use of typename for dependent types in deduced
|
||||
contexts. This macro expands to nothing on those compilers, and typename
|
||||
@@ -711,6 +889,26 @@ the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
|
||||
used to create a mangled name in combination with a predefined macro such a
|
||||
\_\_LINE__.
|
||||
]]
|
||||
[[`BOOST_FORCEINLINE`][
|
||||
This macro can be used in place of the `inline` keyword to instruct the compiler
|
||||
that a function should always be inlined.
|
||||
Overuse of this macro can lead to significant bloat, while good use can increase
|
||||
performance in certain cases, such as computation-intensive code built through
|
||||
generative programming techniques.
|
||||
|
||||
Usage example:
|
||||
``
|
||||
template<class T>
|
||||
BOOST_FORCEINLINE T& f(T& t)
|
||||
{
|
||||
return t;
|
||||
}
|
||||
``
|
||||
|
||||
Note that use of this macro can lead to cryptic error messages with some compilers.
|
||||
Consider defining it to `inline` before including the Boost.Config header in order to be
|
||||
able to debug errors more easily.
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
@@ -727,7 +925,7 @@ the only boost macros that should be tested in user code.
|
||||
[[Macro ][Header ][Description ]]
|
||||
|
||||
[[`BOOST_VERSION`][`<boost/version.hpp>`][
|
||||
Describes the boost version number in XXYYZZ format such that:
|
||||
Describes the boost version number in XYYYZZ format such that:
|
||||
`(BOOST_VERSION % 100)` is the sub-minor version, `((BOOST_VERSION / 100) % 1000)`
|
||||
is the minor version, and `(BOOST_VERSION / 100000)` is the major version.
|
||||
]]
|
||||
@@ -740,14 +938,23 @@ integral constant expressions.
|
||||
]]
|
||||
[[`BOOST_MSVC`][`<boost/config.hpp>`][
|
||||
Defined if the compiler is really Microsoft Visual C++, as opposed to one
|
||||
of the many other compilers that also define `_MSC_VER`.
|
||||
of the many other compilers that also define `_MSC_VER`. Has the same value as
|
||||
_MSC_VER.
|
||||
]]
|
||||
[[`BOOST_MSVC_FULL_VER`][`<boost/config.hpp>`][
|
||||
Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only has 8 digits),
|
||||
the macro has the form VVMMPPPPP where VV is the major version number, MM is the minor version number, and
|
||||
PPPPP is the compiler build number.
|
||||
]]
|
||||
[[`BOOST_INTEL`][`<boost/config.hpp>`][
|
||||
Defined if the compiler is an Intel compiler, takes the same value as the
|
||||
compiler version macro.
|
||||
]]
|
||||
[[`BOOST_CLANG`][`<boost/config.hpp>`][
|
||||
Defined to 1 if the compiler is the Clang compiler.
|
||||
]]
|
||||
[[`BOOST_WINDOWS`][`<boost/config.hpp>`][
|
||||
Defined if the Windows platfrom API is available.
|
||||
Defined if the Windows platform API is available.
|
||||
]]
|
||||
[[`BOOST_DINKUMWARE_STDLIB`][`<boost/config.hpp>`][
|
||||
Defined if the dinkumware standard library is in use, takes the same value
|
||||
@@ -776,9 +983,98 @@ the configuration.
|
||||
[section Macros for libraries with separate source code]
|
||||
|
||||
The following macros and helper headers are of use to authors whose libraries
|
||||
include separate source code, and are intended to address two issues: fixing
|
||||
the ABI of the compiled library, and selecting which compiled library to link
|
||||
against based upon the compilers settings.
|
||||
include separate source code, and are intended to address several issues:
|
||||
|
||||
* Controlling shared library symbol visibility
|
||||
* Fixing the ABI of the compiled library
|
||||
* Selecting which compiled library to link against based upon the compilers settings
|
||||
|
||||
See [@http://svn.boost.org/trac/boost/wiki/Guidelines/Separate Guidelines for Authors of Boost Libraries Containing Separate Source]
|
||||
|
||||
[section Macros controlling shared library symbol visibility]
|
||||
|
||||
Some compilers support C++ extensions that control which symbols
|
||||
will be exported from shared libraries such as dynamic shared objects (DSO's) on Unix-like
|
||||
systems or dynamic-link libraries (DLL's) on Windows.
|
||||
|
||||
The Microsoft VC++ compiler has long supplied
|
||||
`__declspec(dllexport)` and `__declspec(dllimport)` extensions for this purpose,
|
||||
as do virtually all other compilers targeting the Windows platform.
|
||||
|
||||
Modern versions of the GNU GCC compiler provide the `__attribute__((visibility("default")))`
|
||||
extension to indicate that a symbol should be exported. All other symbols may be hidden by using the
|
||||
`-fvisibility-hidden` or `-fvisibility-ms-compat` compiler switches.
|
||||
|
||||
Boost supplies several macros to make it easier to manage symbol visibility in a way that
|
||||
is portable between compilers and operating systems.
|
||||
|
||||
[table
|
||||
[[Macro ][Description ]]
|
||||
[[`BOOST_SYMBOL_EXPORT`][
|
||||
Defines the syntax of a C++ language extension that indicates a symbol is to be exported from a shared library.
|
||||
If the compiler has no such extension, the macro is defined with no replacement text.
|
||||
]]
|
||||
[[`BOOST_SYMBOL_IMPORT`][
|
||||
Defines the syntax of a C++ language extension that indicates a symbol is to be imported from a shared library.
|
||||
If the compiler has no such extension, the macro is defined with no replacement text.
|
||||
]]
|
||||
[[`BOOST_SYMBOL_VISIBLE`][
|
||||
Defines the syntax of a C++ language extension that indicates a symbol is to be globally visible.
|
||||
If the compiler has no such extension, the macro is defined with no replacement text.
|
||||
Needed for classes that are not otherwise exported, but are used by RTTI. Examples include
|
||||
class for objects that will be thrown as exceptions or used in dynamic_casts,
|
||||
across shared library boundaries. For example, a header-only exception class might look like this:
|
||||
``
|
||||
class BOOST_SYMBOL_VISIBLE my_exception : public std::runtime_error { ... };
|
||||
``
|
||||
Without BOOST_SYMBOL_VISIBLE, it would be impossible to catch my_exception thrown from a shared library
|
||||
compiled by GCC with the -fvisibility=hidden option.
|
||||
]]
|
||||
[[`BOOST_HAS_DECLSPEC`][
|
||||
The compiler has C++ extensions `__declspec(dllexport)` and `__declspec(dllimport)` to control
|
||||
export/import of symbols from shared libraries.
|
||||
['Deprecated. This macro is no longer necessary since BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
||||
are now supplied. It is provided to support legacy code.]
|
||||
]]
|
||||
]
|
||||
|
||||
Typical usage:
|
||||
|
||||
[*boost/foo/config.hpp]
|
||||
|
||||
...
|
||||
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FOO_DYN_LINK)
|
||||
# if defined(BOOST_FOO_SOURCE)
|
||||
# define BOOST_FOO_DECL BOOST_SYMBOL_EXPORT
|
||||
# else
|
||||
# define BOOST_FOO_DECL BOOST_SYMBOL_IMPORT
|
||||
# endif
|
||||
#else
|
||||
# define BOOST_FOO_DECL
|
||||
#endif
|
||||
...
|
||||
|
||||
[*boost/foo/foo.hpp]
|
||||
|
||||
#include <boost/foo/config.hpp>
|
||||
...
|
||||
class BOOST_FOO_DECL bar { ... };
|
||||
...
|
||||
void BOOST_FOO_DECL f();
|
||||
...
|
||||
|
||||
[*boost/libs/foo/src/foo.cpp]
|
||||
|
||||
#define BOOST_FOO_SOURCE
|
||||
#include <boost/foo/foo.hpp>
|
||||
...
|
||||
void BOOST_FOO_DECL f()
|
||||
{
|
||||
...
|
||||
}
|
||||
...
|
||||
|
||||
[endsect]
|
||||
|
||||
[section ABI Fixing]
|
||||
|
||||
@@ -900,3 +1196,6 @@ match that used to create the libraries via bjam 's install rules.
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#endif
|
||||
|
||||
// if we don't have a std library config set, try and find one:
|
||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||
# include <boost/config/select_stdlib_config.hpp>
|
||||
#endif
|
||||
// if we have a std library config, include it now:
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// 8026 - functions taking class by value arguments are not expanded inline
|
||||
|
||||
#pragma nopushoptwarn
|
||||
# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||
of the library selected (useful for debugging).
|
||||
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
||||
rather than a mangled-name version.
|
||||
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
|
||||
This is essentially the same as the default name-mangled version, but without
|
||||
the compiler name and version, or the Boost version. Just the build options.
|
||||
|
||||
These macros will be undef'ed at the end of the header, further this header
|
||||
has no include guards - so be sure to include it only once from your library!
|
||||
@@ -60,6 +63,8 @@ BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||
a hiphen:
|
||||
|
||||
s static runtime (dynamic if not present).
|
||||
g debug/diagnostic runtime (release if not present).
|
||||
y Python debug/diagnostic runtime (release if not present).
|
||||
d debug build (release if not present).
|
||||
g debug/diagnostic runtime (release if not present).
|
||||
p STLPort Build.
|
||||
@@ -135,11 +140,21 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
// vc80:
|
||||
# define BOOST_LIB_TOOLSET "vc80"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500)
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
|
||||
|
||||
// vc90:
|
||||
# define BOOST_LIB_TOOLSET "vc90"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
|
||||
|
||||
// vc10:
|
||||
# define BOOST_LIB_TOOLSET "vc100"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
|
||||
|
||||
// vc11:
|
||||
# define BOOST_LIB_TOOLSET "vc110"
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
@@ -178,8 +193,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydp"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-gdp"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
@@ -190,8 +213,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
@@ -202,7 +233,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT
|
||||
@@ -214,8 +247,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
@@ -226,8 +267,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
@@ -238,7 +287,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# if defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-s"
|
||||
@@ -265,16 +317,26 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# ifdef _RTLDLL
|
||||
|
||||
# ifdef BOOST_BORLAND_DEBUG
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-yd"
|
||||
# elif defined(BOOST_BORLAND_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-d"
|
||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT -y
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# ifdef BOOST_BORLAND_DEBUG
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-syd"
|
||||
# elif defined(BOOST_BORLAND_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sd"
|
||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sy"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
@@ -304,16 +366,21 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
&& defined(BOOST_LIB_RT_OPT) \
|
||||
&& defined(BOOST_LIB_VERSION)
|
||||
|
||||
#ifndef BOOST_AUTO_LINK_NOMANGLE
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
#ifdef BOOST_AUTO_LINK_TAGGED
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# endif
|
||||
#else
|
||||
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||
# endif
|
||||
#else
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
@@ -352,17 +419,4 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
#if defined(BOOST_DYN_LINK)
|
||||
# undef BOOST_DYN_LINK
|
||||
#endif
|
||||
#if defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||
# undef BOOST_AUTO_LINK_NOMANGLE
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -16,9 +16,8 @@
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
// last known and checked version is 0x600 (Builder X preview)
|
||||
// or 0x593 (CodeGear C++ Builder 2007 December 2007 update):
|
||||
#if (__BORLANDC__ > 0x593) && (__BORLANDC__ != 0x600)
|
||||
// last known compiler version:
|
||||
#if (__BORLANDC__ > 0x613)
|
||||
//# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
//# else
|
||||
@@ -47,6 +46,8 @@
|
||||
// Borland C++Builder 5, command-line compiler 5.5:
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
// Variadic macros do not exist for C++ Builder versions 5 and below
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
# endif
|
||||
|
||||
// Version 5.51 and below:
|
||||
@@ -55,8 +56,13 @@
|
||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
# define BOOST_NO_DEDUCED_TYPENAME
|
||||
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
||||
#ifdef __cplusplus
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#else
|
||||
#include <limits.h>
|
||||
#include <wchar.h>
|
||||
#endif // __cplusplus
|
||||
#ifndef WCHAR_MAX
|
||||
# define WCHAR_MAX 0xffff
|
||||
#endif
|
||||
@@ -67,9 +73,8 @@
|
||||
|
||||
// Borland C++ Builder 6 and below:
|
||||
#if (__BORLANDC__ <= 0x564)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
|
||||
# ifdef NDEBUG
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// fix broken <cstring> so that Boost.test works:
|
||||
# include <cstring>
|
||||
# undef strcmp
|
||||
@@ -108,27 +113,30 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 2007 December 2007 Update and below:
|
||||
#if (__BORLANDC__ <= 0x593)
|
||||
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
|
||||
// we shouldn't really need this - but too many things choke
|
||||
// without it, this needs more investigation:
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||
|
||||
// Temporary workaround
|
||||
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 2008 and below:
|
||||
#if (__BORLANDC__ <= 0x601)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_ILLEGAL_CV_REFERENCES
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# define BOOST_NO_NESTED_FRIENDSHIP
|
||||
# define BOOST_NO_TYPENAME_WITH_CTOR
|
||||
#if (__BORLANDC__ < 0x600)
|
||||
# define BOOST_ILLEGAL_CV_REFERENCES
|
||||
#endif
|
||||
|
||||
//
|
||||
@@ -138,26 +146,49 @@
|
||||
#if (__BORLANDC__ >= 0x599)
|
||||
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
|
||||
#endif
|
||||
|
||||
#if defined( BOOST_CODEGEAR_0X_SUPPORT )
|
||||
# #if __BORLANDC__ >= 0x610
|
||||
//
|
||||
// C++0x Macros:
|
||||
//
|
||||
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
#else
|
||||
# define BOOST_HAS_ALIGNOF
|
||||
# define BOOST_HAS_CHAR16_T
|
||||
# define BOOST_HAS_CHAR32_T
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
//# define BOOST_HAS_DEFAULTED_FN
|
||||
//# define BOOST_HAS_DELETED_FN
|
||||
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||
//# define BOOST_HAS_NULLPTR
|
||||
//# define BOOST_HAS_RAW_STRING
|
||||
# define BOOST_HAS_REF_QUALIFIER
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
//# define BOOST_HAS_SCOPED_ENUM
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
//# define BOOST_HAS_VARIADIC_TMPL
|
||||
# #endif //__BORLANDC__ >= 0x610
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#if __BORLANDC__ >= 0x590
|
||||
# define BOOST_HAS_TR1_HASH
|
||||
|
||||
@@ -169,6 +200,8 @@
|
||||
#if __BORLANDC__ >= 0x561
|
||||
# ifndef __NO_LONG_LONG
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
// On non-Win32 platforms let the platform config figure this out:
|
||||
# ifdef _WIN32
|
||||
@@ -194,7 +227,7 @@
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
//
|
||||
@@ -206,13 +239,14 @@
|
||||
//
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#ifndef __STRICT_ANSI__
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
// ABI fixing headers:
|
||||
//
|
||||
#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet
|
||||
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
||||
#ifndef BOOST_ABI_PREFIX
|
||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||
#endif
|
||||
@@ -237,7 +271,15 @@
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
#endif
|
||||
|
||||
// Borland did not implement value-initialization completely, as I reported
|
||||
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
|
||||
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, April 2010)
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
|
||||
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
121
include/boost/config/compiler/clang.hpp
Normal file
121
include/boost/config/compiler/clang.hpp
Normal file
@@ -0,0 +1,121 @@
|
||||
// (C) Copyright Douglas Gregor 2010
|
||||
//
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Clang compiler setup.
|
||||
|
||||
#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
#else
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
#if defined(__int64)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_constexpr)
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype)
|
||||
# define BOOST_NO_DECLTYPE
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
|
||||
#if !__has_feature(cxx_defaulted_functions)
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_deleted_functions)
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_explicit_conversions)
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_lambdas)
|
||||
# define BOOST_NO_LAMBDAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_noexcept)
|
||||
# define BOOST_NO_NOEXCEPT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_nullptr)
|
||||
# define BOOST_NO_NULLPTR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_raw_string_literals)
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rvalue_references)
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_strong_enums)
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_static_assert)
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alias_templates)
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_unicode_literals)
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_variadic_templates)
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
// Clang always supports variadic macros
|
||||
// Clang always supports extern templates
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||
#endif
|
||||
|
||||
// Macro used to identify the Clang compiler.
|
||||
#define BOOST_CLANG 1
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
#endif
|
||||
//
|
||||
// versions check:
|
||||
// last known and checked version is 0x610
|
||||
#if (__CODEGEARC__ > 0x610)
|
||||
// last known and checked version is 0x621
|
||||
#if (__CODEGEARC__ > 0x621)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
@@ -29,24 +29,38 @@
|
||||
#endif
|
||||
|
||||
// CodeGear C++ Builder 2009
|
||||
#if (__CODEGEARC__ <= 0x610)
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#if (__CODEGEARC__ <= 0x613)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
// we shouldn't really need this - but too many things choke
|
||||
// without it, this needs more investigation:
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
||||
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||
#endif
|
||||
|
||||
// CodeGear C++ Builder 2010
|
||||
#if (__CODEGEARC__ <= 0x621)
|
||||
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
// Temporary hack, until specific MPL preprocessed headers are generated
|
||||
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||
|
||||
# ifdef NDEBUG
|
||||
// CodeGear has not yet completely implemented value-initialization, for
|
||||
// example for array types, as I reported in 2010: Embarcadero Report 83751,
|
||||
// "Value-initialization: arrays should have each element value-initialized",
|
||||
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
|
||||
// Last checked version: Embarcadero C++ 6.21
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, April 2010)
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// fix broken <cstring> so that Boost.test works:
|
||||
# include <cstring>
|
||||
# undef strcmp
|
||||
@@ -58,32 +72,60 @@
|
||||
# endif
|
||||
|
||||
#endif
|
||||
//
|
||||
// C++0x macros:
|
||||
//
|
||||
#if (__CODEGEARC__ <= 0x620)
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#else
|
||||
#define BOOST_HAS_STATIC_ASSERT
|
||||
#endif
|
||||
#define BOOST_HAS_CHAR16_T
|
||||
#define BOOST_HAS_CHAR32_T
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
// #define BOOST_HAS_ALIGNOF
|
||||
#define BOOST_HAS_DECLTYPE
|
||||
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||
// #define BOOST_HAS_RVALUE_REFS
|
||||
#define BOOST_HAS_SCOPED_ENUM
|
||||
// #define BOOST_HAS_STATIC_ASSERT
|
||||
#define BOOST_HAS_STD_TYPE_TRAITS
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
# define BOOST_HAS_CHAR16_T
|
||||
# define BOOST_HAS_CHAR32_T
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
//
|
||||
// TR1 macros:
|
||||
//
|
||||
#define BOOST_HAS_TR1_HASH
|
||||
#define BOOST_HAS_TR1_TYPE_TRAITS
|
||||
#define BOOST_HAS_TR1_UNORDERED_MAP
|
||||
#define BOOST_HAS_TR1_UNORDERED_SET
|
||||
|
||||
//# define BOOST_HAS_ALIGNOF
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||
//# define BOOST_HAS_RVALUE_REFS
|
||||
# define BOOST_HAS_SCOPED_ENUM
|
||||
//# define BOOST_HAS_STATIC_ASSERT
|
||||
# define BOOST_HAS_STD_TYPE_TRAITS
|
||||
#define BOOST_HAS_MACRO_USE_FACET
|
||||
|
||||
# define BOOST_HAS_TR1_HASH
|
||||
# define BOOST_HAS_TR1_TYPE_TRAITS
|
||||
# define BOOST_HAS_TR1_UNORDERED_MAP
|
||||
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
|
||||
# define BOOST_HAS_MACRO_USE_FACET
|
||||
|
||||
|
||||
// On non-Win32 platforms let the platform config figure this out:
|
||||
# ifdef _WIN32
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
// On non-Win32 platforms let the platform config figure this out:
|
||||
#ifdef _WIN32
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
//
|
||||
// __int64:
|
||||
@@ -94,7 +136,7 @@
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
//
|
||||
@@ -106,8 +148,9 @@
|
||||
//
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#if !defined(__STRICT_ANSI__)
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
// ABI fixing headers:
|
||||
|
||||
@@ -44,19 +44,58 @@
|
||||
#endif
|
||||
|
||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS)
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
# endif
|
||||
|
||||
# if !defined(__NO_LONG_LONG)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See above for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if (__EDG_VERSION__ < 310)
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if (__EDG_VERSION__ <= 310)
|
||||
// No support for initializer lists
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
#if (__EDG_VERSION__ < 400)
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#ifdef c_plusplus
|
||||
// EDG has "long long" in non-strict mode
|
||||
// However, some libraries have insufficient "long long" support
|
||||
// #define BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
61
include/boost/config/compiler/cray.hpp
Normal file
61
include/boost/config/compiler/cray.hpp
Normal file
@@ -0,0 +1,61 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Greenhills C compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||
|
||||
#if _RELEASE < 7
|
||||
# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
|
||||
#endif
|
||||
|
||||
//
|
||||
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||
//
|
||||
#ifndef __EDG_VERSION__
|
||||
# error "Unsupported Cray compiler, please try running the configure script."
|
||||
#endif
|
||||
|
||||
#include "boost/config/compiler/common_edg.hpp"
|
||||
|
||||
//
|
||||
// Cray peculiarities, probably version 7 specific:
|
||||
//
|
||||
#undef BOOST_NO_AUTO_DECLARATIONS
|
||||
#undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CHAR16_T
|
||||
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||
//#define BOOST_HAS_FPCLASSIFY
|
||||
|
||||
#define BOOST_SP_USE_PTHREADS
|
||||
#define BOOST_AC_USE_PTHREADS
|
||||
|
||||
@@ -44,17 +44,51 @@
|
||||
//
|
||||
// Is this really the best way to detect whether the std lib is in namespace std?
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#endif
|
||||
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// check for exception handling support:
|
||||
#ifndef _CPPUNWIND
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#if (__DMC__ < 0x812)
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#if __DMC__ < 0x800
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
@@ -42,6 +42,9 @@
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for gcc versions before 3.0
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
#elif __GNUC__ == 3
|
||||
# if defined (__PATHSCALE__)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
@@ -58,15 +61,31 @@
|
||||
# if __GNUC_MINOR__ < 4
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if __GNUC__ < 4
|
||||
//
|
||||
// All problems to gcc-3.x and earlier here:
|
||||
//
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# ifdef __OPEN64__
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __EXCEPTIONS
|
||||
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
|
||||
// Previous versions of GCC did not completely implement value-initialization:
|
||||
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
||||
// members", reported by Jonathan Wakely in 2006,
|
||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
|
||||
// GCC Bug 33916, "Default constructor fails to initialize array members",
|
||||
// reported by Michael Elizabeth Chastain in 2007,
|
||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -91,39 +110,119 @@
|
||||
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
|
||||
#define BOOST_HAS_NRVO
|
||||
#endif
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if __GNUC__ >= 4
|
||||
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||
// so does not define _WIN32 or its variants.
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
|
||||
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
|
||||
# else
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# endif
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||
#else
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
|
||||
//
|
||||
// RTTI and typeinfo detection is possible post gcc-4.3:
|
||||
//
|
||||
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
|
||||
# ifndef __GXX_RTTI
|
||||
# define BOOST_NO_TYPEID
|
||||
# define BOOST_NO_RTTI
|
||||
# ifndef BOOST_NO_TYPEID
|
||||
# define BOOST_NO_TYPEID
|
||||
# endif
|
||||
# ifndef BOOST_NO_RTTI
|
||||
# define BOOST_NO_RTTI
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// C++0x features not implemented in any GCC version
|
||||
//
|
||||
// C++0x features
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
|
||||
// C++0x features in 4.3.n and later
|
||||
//
|
||||
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)
|
||||
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
|
||||
// passed on the command line, which in turn defines
|
||||
// __GXX_EXPERIMENTAL_CXX0X__.
|
||||
# if defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Potential C++0x features
|
||||
//
|
||||
// __GXX_EXPERIMENTAL_CXX0X__.
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
#else
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
|
||||
// Variadic templates compiler:
|
||||
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||
#ifdef __VARIADIC_TEMPLATES
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
# else
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.4.n and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_LAMBDAS
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.1 and later
|
||||
//
|
||||
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.5.1
|
||||
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.6.n and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
// C++0x features not supported at all yet
|
||||
//
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
#endif
|
||||
|
||||
// ConceptGCC compiler:
|
||||
@@ -133,19 +232,14 @@
|
||||
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
#endif
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't know gcc prior to version 2.90:
|
||||
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
||||
# error "Compiler not configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 4.3 (Pre-release):
|
||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 3))
|
||||
// last known and checked version is 4.6 (Pre-release):
|
||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
||||
@@ -25,6 +25,35 @@
|
||||
//
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
// C++0x features:
|
||||
//
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
# define BOOST_NO_NULLPTR
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_DECLTYPE_N3276
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_LAMBDAS
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
# define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||
|
||||
|
||||
|
||||
@@ -85,6 +85,49 @@
|
||||
# endif //PA-RISC
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if !defined(__EDG__)
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
|
||||
/*
|
||||
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
||||
*/
|
||||
|
||||
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version for HP-UX/ia64 is 61300
|
||||
// last known and checked version for PA-RISC is 38000
|
||||
|
||||
@@ -26,7 +26,19 @@
|
||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||
#endif
|
||||
|
||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_INTEL_STDCXX0X
|
||||
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#else
|
||||
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#endif
|
||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
@@ -99,7 +111,7 @@
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32)
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||
// GCC or VC emulation:
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
@@ -109,6 +121,7 @@
|
||||
// in type_traits code among other things, getting this correct
|
||||
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||
#include <cwchar>
|
||||
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||
@@ -122,8 +135,9 @@ template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
||||
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
||||
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if _MSC_VER+0 >= 1000
|
||||
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||
# if _MSC_VER >= 1200
|
||||
# define BOOST_HAS_MS_INT64
|
||||
# endif
|
||||
@@ -157,9 +171,92 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
//
|
||||
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||
// internal error on Intel <= 11.1 (last checked version), as was
|
||||
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||
// cases when it should be value-initialized.
|
||||
// (Niels Dekker, LKEB, May 2010)
|
||||
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||
#endif
|
||||
//
|
||||
// C++0x features
|
||||
// - ICC added static_assert in 11.0 (first version with C++0x support)
|
||||
//
|
||||
#if defined(BOOST_INTEL_STDCXX0X)
|
||||
# undef BOOST_NO_STATIC_ASSERT
|
||||
//
|
||||
// These pass our test cases, but aren't officially supported according to:
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
//
|
||||
//# undef BOOST_NO_LAMBDAS
|
||||
//# undef BOOST_NO_DECLTYPE
|
||||
//# undef BOOST_NO_AUTO_DECLARATIONS
|
||||
//# undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
|
||||
//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
|
||||
//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
|
||||
# undef BOOST_NO_DELETED_FUNCTIONS
|
||||
# undef BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# undef BOOST_NO_LAMBDAS
|
||||
# undef BOOST_NO_DECLTYPE
|
||||
# undef BOOST_NO_AUTO_DECLARATIONS
|
||||
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
|
||||
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# undef BOOST_NO_NULLPTR
|
||||
# undef BOOST_NO_RVALUE_REFERENCES
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
# undef BOOST_NO_TEMPLATE_ALIASES
|
||||
# undef BOOST_NO_VARIADIC_TEMPLATES
|
||||
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
// continues to list scoped enum support as "Partial"
|
||||
//# undef BOOST_NO_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
|
||||
//
|
||||
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
|
||||
//
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
//
|
||||
// fenv.h appears not to work with Intel prior to 12.0:
|
||||
//
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1010)
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# elif defined(_MSC_VER)
|
||||
|
||||
@@ -17,12 +17,10 @@
|
||||
# endif
|
||||
|
||||
// see also common_edg.hpp which needs a special check for __KCC
|
||||
# if !defined(_EXCEPTIONS)
|
||||
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
# endif
|
||||
|
||||
#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
|
||||
|
||||
//
|
||||
// last known and checked version is 4001:
|
||||
#if (__KCC_VERSION > 4001)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||
// tested version *only*:
|
||||
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
|
||||
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
@@ -48,7 +48,7 @@
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#endif
|
||||
|
||||
#if !__option(exceptions)
|
||||
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -73,6 +73,8 @@
|
||||
# define BOOST_COMPILER_VERSION 9.4
|
||||
# elif __MWERKS__ == 0x3206
|
||||
# define BOOST_COMPILER_VERSION 9.5
|
||||
# elif __MWERKS__ == 0x3207
|
||||
# define BOOST_COMPILER_VERSION 9.6
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||
# endif
|
||||
@@ -83,9 +85,38 @@
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
#else
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
#endif
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
|
||||
@@ -32,8 +32,41 @@
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
|
||||
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support MPW prior to version 8.9:
|
||||
|
||||
28
include/boost/config/compiler/nvcc.hpp
Normal file
28
include/boost/config/compiler/nvcc.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// NVIDIA CUDA C++ compiler setup
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
|
||||
#endif
|
||||
|
||||
// NVIDIA Specific support
|
||||
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
||||
#define BOOST_GPU_ENABLED __host__ __device__
|
||||
|
||||
// Boost support macro for NVCC
|
||||
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
|
||||
#ifdef __GNUC__
|
||||
|
||||
#include <boost/config/compiler/gcc.hpp>
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
|
||||
#include <boost/config/compiler/visualc.hpp>
|
||||
|
||||
#endif
|
||||
80
include/boost/config/compiler/pathscale.hpp
Normal file
80
include/boost/config/compiler/pathscale.hpp
Normal file
@@ -0,0 +1,80 @@
|
||||
// (C) Copyright Bryce Lelbach 2011
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// PathScale EKOPath C++ Compiler
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
|
||||
#endif
|
||||
|
||||
#if __PATHCC__ >= 4
|
||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# define BOOST_HAS_SIGACTION
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_THREADS
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_PTHREAD_YIELD
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||
# define BOOST_HAS_NRVO
|
||||
# define BOOST_HAS_NL_TYPES_H
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_CLOCK_GETTIME
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_STD_UNORDERED
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
# define BOOST_NO_NULLPTR
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
# define BOOST_NO_NOEXCEPT
|
||||
# define BOOST_NO_LAMBDAS
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_DECLTYPE_N3276
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# define BOOST_NO_CHAR32_T
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
#endif
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// PGI C++ compiler setup:
|
||||
|
||||
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
// Threading support:
|
||||
@@ -16,17 +16,61 @@
|
||||
// if no threading API is detected.
|
||||
//
|
||||
|
||||
#if (__PGIC__ >= 7)
|
||||
#if __PGIC__ >= 10
|
||||
|
||||
// options requested by configure --enable-test
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
// options --enable-test wants undefined
|
||||
#undef BOOST_NO_STDC_NAMESPACE
|
||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
#undef BOOST_DEDUCED_TYPENAME
|
||||
|
||||
#elif __PGIC__ >= 7
|
||||
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
|
||||
#else
|
||||
|
||||
# error "Pgi compiler not configured - please reconfigure"
|
||||
|
||||
#endif
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// version check:
|
||||
// probably nothing to do here?
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#undef BOOST_NO_SWPRINTF
|
||||
#undef BOOST_DEDUCED_TYPENAME
|
||||
|
||||
//
|
||||
// version check:
|
||||
// probably nothing to do here?
|
||||
|
||||
@@ -69,16 +69,66 @@
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC <= 0x5100)
|
||||
// Sun 5.10 may not correctly value-initialize objects of
|
||||
// some user defined types, as was reported in April 2010
|
||||
// (CR 6947016), and confirmed by Steve Clamage.
|
||||
// (Niels Dekker, LKEB, May 2010).
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if __SUNPRO_CC > 0x500
|
||||
# define BOOST_SYMBOL_EXPORT __global
|
||||
# define BOOST_SYMBOL_IMPORT __global
|
||||
# define BOOST_SYMBOL_VISIBLE __global
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Issues that effect all known versions:
|
||||
//
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_ADL_BARRIER
|
||||
|
||||
#if(__SUNPRO_CC >= 0x590)
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_VARIADIC_MACROS
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||
|
||||
@@ -95,9 +145,3 @@
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,6 +29,14 @@
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 1110)
|
||||
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||
// high priority. -- Niels Dekker (LKEB), May 2010.
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
//
|
||||
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||
//
|
||||
@@ -45,16 +53,68 @@
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 600:
|
||||
#if (__IBMCPP__ > 600)
|
||||
// last known and checked version is 1110:
|
||||
#if (__IBMCPP__ > 1110)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Some versions of the compiler have issues with default arguments on partial specializations
|
||||
#if __IBMCPP__ <= 1010
|
||||
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
#if ! __IBMCPP_UTF_LITERAL__
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
#endif
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#if ! __IBMCPP_DECLTYPE
|
||||
# define BOOST_NO_DECLTYPE
|
||||
#else
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
#endif
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#if ! __IBMCPP_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
// not enabled separately at this time
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if ! __IBMCPP_STATIC_ASSERT
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
#endif
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
|
||||
#define BOOST_MSVC _MSC_VER
|
||||
|
||||
#if _MSC_FULL_VER > 100000000
|
||||
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
||||
#else
|
||||
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
||||
#endif
|
||||
|
||||
// turn off the warnings before we #include anything
|
||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||
|
||||
@@ -22,10 +28,18 @@
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
|
||||
# if BOOST_MSVC == 1202
|
||||
# define BOOST_NO_STD_TYPEINFO
|
||||
# endif
|
||||
|
||||
// disable min/max macro defines on vc6:
|
||||
//
|
||||
#endif
|
||||
|
||||
/// Visual Studio has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
|
||||
|
||||
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
|
||||
@@ -68,6 +82,10 @@
|
||||
// although a conforming signature for swprint exists in VC7.1
|
||||
// it appears not to actually work:
|
||||
# define BOOST_NO_SWPRINTF
|
||||
// Our extern template tests also fail for this compiler:
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for VC7.1 and lower
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#if defined(UNDER_CE)
|
||||
@@ -79,28 +97,50 @@
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#endif
|
||||
|
||||
#if _MSC_VER <= 1500 // 1500 == VC++ 9.0
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
|
||||
// A bug in VC9:
|
||||
# define BOOST_NO_ADL_BARRIER
|
||||
#endif
|
||||
|
||||
|
||||
#if (_MSC_VER <= 1600)
|
||||
// MSVC (including the latest checked version) has not yet completely
|
||||
// implemented value-initialization, as is reported:
|
||||
// "VC++ does not value-initialize members of derived classes without
|
||||
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
||||
// "Presence of copy constructor breaks member class initialization",
|
||||
// reported in 2009 by Alex Vakulenko:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
|
||||
// "Value-initialization in new-expression", reported in 2005 by
|
||||
// Pavel Kuznetsov (MetaCommunications Engineering):
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, May 2010)
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
|
||||
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
||||
# define BOOST_NO_THREADEX
|
||||
# define BOOST_NO_GETSYSTEMTIMEASFILETIME
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
|
||||
#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
|
||||
# define BOOST_HAS_THREADEX
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
//
|
||||
// check for exception handling support:
|
||||
#ifndef _CPPUNWIND
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -110,8 +150,10 @@
|
||||
#if (_MSC_VER >= 1200)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
|
||||
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
#endif
|
||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||
# define BOOST_HAS_NRVO
|
||||
@@ -120,17 +162,53 @@
|
||||
// disable Win32 API's if compiler extentions are
|
||||
// turned off:
|
||||
//
|
||||
#ifndef _MSC_EXTENSIONS
|
||||
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||
# define BOOST_DISABLE_WIN32
|
||||
#endif
|
||||
#ifndef _CPPRTTI
|
||||
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
//
|
||||
// all versions support __declspec:
|
||||
// C++0x features
|
||||
//
|
||||
#define BOOST_HAS_DECLSPEC
|
||||
// See above for BOOST_NO_LONG_LONG
|
||||
|
||||
// C++ features supported by VC++ 10 (aka 2010)
|
||||
//
|
||||
#if _MSC_VER < 1600
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#endif // _MSC_VER < 1600
|
||||
|
||||
#if _MSC_VER >= 1600
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// C++0x features not supported by any versions
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
//
|
||||
// prefix and suffix headers:
|
||||
//
|
||||
@@ -154,6 +232,12 @@
|
||||
# define BOOST_COMPILER_VERSION evc4.0
|
||||
# elif _MSC_VER == 1400
|
||||
# define BOOST_COMPILER_VERSION evc8
|
||||
# elif _MSC_VER == 1500
|
||||
# define BOOST_COMPILER_VERSION evc9
|
||||
# elif _MSC_VER == 1600
|
||||
# define BOOST_COMPILER_VERSION evc10
|
||||
# elif _MSC_VER == 1700
|
||||
# define BOOST_COMPILER_VERSION evc11
|
||||
# else
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
@@ -175,6 +259,10 @@
|
||||
# define BOOST_COMPILER_VERSION 8.0
|
||||
# elif _MSC_VER == 1500
|
||||
# define BOOST_COMPILER_VERSION 9.0
|
||||
# elif _MSC_VER == 1600
|
||||
# define BOOST_COMPILER_VERSION 10.0
|
||||
# elif _MSC_VER == 1700
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||
# endif
|
||||
@@ -189,8 +277,8 @@
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 1500 (VC9):
|
||||
#if (_MSC_VER > 1500)
|
||||
// last known and checked version is 1700 (VC11, aka 2011):
|
||||
#if (_MSC_VER > 1700)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
||||
@@ -36,7 +36,8 @@
|
||||
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
||||
// and not in <unistd.h>
|
||||
//
|
||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3)) || defined(__OpenBSD__)
|
||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
#endif
|
||||
|
||||
@@ -55,13 +56,13 @@
|
||||
#endif
|
||||
|
||||
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||
|| (__NetBSD_GCC__ >= 2095003))
|
||||
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
|
||||
# define BOOST_NO_CWCHAR
|
||||
#endif
|
||||
//
|
||||
// The BSD <ctype.h> has macros only, no functions:
|
||||
//
|
||||
#if !defined(__OpenBSD__)
|
||||
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||
#endif
|
||||
|
||||
|
||||
18
include/boost/config/platform/cray.hpp
Normal file
18
include/boost/config/platform/cray.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// SGI Irix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cray"
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
@@ -8,9 +8,6 @@
|
||||
// cygwin specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cygwin"
|
||||
#define BOOST_NO_CWCTYPE
|
||||
#define BOOST_NO_CWCHAR
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_EXPM1
|
||||
@@ -42,8 +39,18 @@
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
/// Cygwin has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
//
|
||||
// Cygwin lies about XSI conformance, there is no nl_types.h:
|
||||
//
|
||||
#ifdef BOOST_HAS_NL_TYPES_H
|
||||
# undef BOOST_HAS_NL_TYPES_H
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
#define BOOST_PLATFORM "linux"
|
||||
|
||||
// make sure we have __GLIBC_PREREQ if available at all
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// <stdint.h> added to glibc 2.1.1
|
||||
@@ -68,6 +72,7 @@
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
#define BOOST_HAS_PTHREAD_YIELD
|
||||
|
||||
#ifndef __GNUC__
|
||||
//
|
||||
|
||||
@@ -64,16 +64,17 @@
|
||||
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||
|
||||
# if !defined(BOOST_HAS_PTHREADS)
|
||||
# define BOOST_HAS_MPTASKS
|
||||
// MPTasks support is deprecated/removed from Boost:
|
||||
//# define BOOST_HAS_MPTASKS
|
||||
# elif ( __dest_os == __mac_os_x )
|
||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||
// gettimeofday and no posix.
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# endif
|
||||
|
||||
// The MP task implementation of Boost Threads aims to replace MP-unsafe
|
||||
// parts of the MSL, so we turn on threads unconditionally.
|
||||
# define BOOST_HAS_THREADS
|
||||
#ifdef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
// The remote call manager depends on this.
|
||||
# define BOOST_BIND_ENABLE_PASCAL
|
||||
|
||||
97
include/boost/config/platform/symbian.hpp
Normal file
97
include/boost/config/platform/symbian.hpp
Normal file
@@ -0,0 +1,97 @@
|
||||
// (C) Copyright Yuriy Krasnoschek 2009.
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// symbian specific config options:
|
||||
|
||||
|
||||
#define BOOST_PLATFORM "Symbian"
|
||||
#define BOOST_SYMBIAN 1
|
||||
|
||||
|
||||
#if defined(__S60_3X__)
|
||||
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
|
||||
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
|
||||
// make sure we have __GLIBC_PREREQ if available at all
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif// boilerplate code:
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# include <boost/config/posix_features.hpp>
|
||||
// S60 SDK defines _POSIX_VERSION as POSIX.1
|
||||
# ifndef BOOST_HAS_STDINT_H
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
# ifndef BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# endif
|
||||
# ifndef BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# endif
|
||||
# ifndef BOOST_HAS_SIGACTION
|
||||
# define BOOST_HAS_SIGACTION
|
||||
# endif
|
||||
# ifndef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# endif
|
||||
# ifndef BOOST_HAS_NANOSLEEP
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
# endif
|
||||
# ifndef BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# endif
|
||||
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# endif
|
||||
# ifndef BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_LOG1P
|
||||
# endif
|
||||
# ifndef BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_EXPM1
|
||||
# endif
|
||||
# ifndef BOOST_POSIX_API
|
||||
# define BOOST_POSIX_API
|
||||
# endif
|
||||
// endianess support
|
||||
# include <sys/endian.h>
|
||||
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
|
||||
# ifndef __LITTLE_ENDIAN
|
||||
# ifdef _LITTLE_ENDIAN
|
||||
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||
# else
|
||||
# define __LITTLE_ENDIAN 1234
|
||||
# endif
|
||||
# endif
|
||||
# ifndef __BIG_ENDIAN
|
||||
# ifdef _BIG_ENDIAN
|
||||
# define __BIG_ENDIAN _BIG_ENDIAN
|
||||
# else
|
||||
# define __BIG_ENDIAN 4321
|
||||
# endif
|
||||
# endif
|
||||
# ifndef __BYTE_ORDER
|
||||
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
|
||||
# endif
|
||||
// Known limitations
|
||||
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||
# define BOOST_DATE_TIME_NO_LOCALE
|
||||
# define BOOST_NO_STD_WSTRING
|
||||
# define BOOST_EXCEPTION_DISABLE
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
|
||||
#else // TODO: More platform support e.g. UIQ
|
||||
# error "Unsuppoted Symbian SDK"
|
||||
#endif
|
||||
|
||||
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
|
||||
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
|
||||
#endif
|
||||
|
||||
|
||||
25
include/boost/config/platform/vms.hpp
Normal file
25
include/boost/config/platform/vms.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (C) Copyright Artyom Beilis 2010.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||
#define BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||
|
||||
#define BOOST_PLATFORM "OpenVMS"
|
||||
|
||||
#undef BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#define BOOST_HAS_NL_TYPES_H
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_THREADS
|
||||
#undef BOOST_HAS_SCHED_YIELD
|
||||
|
||||
#endif
|
||||
31
include/boost/config/platform/vxworks.hpp
Normal file
31
include/boost/config/platform/vxworks.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Dustin Spicuzza 2009.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// vxWorks specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "vxWorks"
|
||||
|
||||
#define BOOST_NO_CWCHAR
|
||||
#define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
|
||||
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
|
||||
#define BOOST_NO_INT64_T
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
|
||||
// these allow posix_features to work, since vxWorks doesn't
|
||||
// define them itself
|
||||
#define _POSIX_TIMERS 1
|
||||
#define _POSIX_THREADS 1
|
||||
|
||||
// vxworks doesn't work with asio serial ports
|
||||
#define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
@@ -21,8 +21,14 @@
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC)
|
||||
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
||||
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
|
||||
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
|
||||
// BOOST_SYMBOL_IMPORT
|
||||
#ifndef BOOST_SYMBOL_EXPORT
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
||||
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
||||
@@ -32,6 +38,11 @@
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && (__GNUC__ >= 4)
|
||||
# define BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
//
|
||||
// Win32 will normally be using native Win32 threads,
|
||||
// but there is a pthread library avaliable as an option,
|
||||
@@ -44,6 +55,8 @@
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
# define BOOST_NO_ANSI_APIS
|
||||
#else
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_HAS_PTHREADS
|
||||
|
||||
@@ -10,29 +10,6 @@
|
||||
|
||||
// See http://www.boost.org/ for most recent version.
|
||||
|
||||
|
||||
// one identification macro for each of the
|
||||
// compilers we support:
|
||||
|
||||
# define BOOST_CXX_GCCXML 0
|
||||
# define BOOST_CXX_COMO 0
|
||||
# define BOOST_CXX_DMC 0
|
||||
# define BOOST_CXX_INTEL 0
|
||||
# define BOOST_CXX_GNUC 0
|
||||
# define BOOST_CXX_KCC 0
|
||||
# define BOOST_CXX_SGI 0
|
||||
# define BOOST_CXX_TRU64 0
|
||||
# define BOOST_CXX_GHS 0
|
||||
# define BOOST_CXX_BORLAND 0
|
||||
# define BOOST_CXX_CW 0
|
||||
# define BOOST_CXX_SUNPRO 0
|
||||
# define BOOST_CXX_HPACC 0
|
||||
# define BOOST_CXX_MPW 0
|
||||
# define BOOST_CXX_IBMCPP 0
|
||||
# define BOOST_CXX_MSVC 0
|
||||
# define BOOST_CXX_PGI 0
|
||||
|
||||
|
||||
// locate which compiler we are using and define
|
||||
// BOOST_COMPILER_CONFIG as needed:
|
||||
|
||||
@@ -40,10 +17,26 @@
|
||||
// GCC-XML emulates other compilers, it has to appear first here!
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// EDG based Cray compiler:
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||
|
||||
#elif defined __CUDACC__
|
||||
// NVIDIA CUDA C++ compiler for GPU
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
|
||||
|
||||
#elif defined __COMO__
|
||||
// Comeau C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||
|
||||
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
|
||||
// PathScale EKOPath compiler (has to come before clang and gcc)
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
|
||||
|
||||
#elif defined __clang__
|
||||
// Clang C++ emulates GCC, so it has to appear early.
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
||||
|
||||
#elif defined __DMC__
|
||||
// Digital Mars C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
// <header_name> in order to prevent macro expansion within the header
|
||||
// name (for example "linux" is a macro on linux systems).
|
||||
|
||||
#if defined(linux) || defined(__linux) || defined(__linux__)
|
||||
// linux:
|
||||
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
@@ -61,6 +61,21 @@
|
||||
// QNX:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
||||
|
||||
#elif defined(__VXWORKS__)
|
||||
// vxWorks:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
|
||||
|
||||
#elif defined(__SYMBIAN32__)
|
||||
// Symbian:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// Cray:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||
|
||||
#elif defined(__VMS)
|
||||
// VMS:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||
#else
|
||||
|
||||
# if defined(unix) \
|
||||
|
||||
@@ -11,13 +11,14 @@
|
||||
|
||||
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
||||
|
||||
// we need to include a std lib header here in order to detect which
|
||||
// library is in use, use <utility> as it's about the smallest
|
||||
// of the std lib headers - do not rely on this header being included -
|
||||
// users can short-circuit this header if they know whose std lib
|
||||
// they are using.
|
||||
|
||||
#include <boost/config/no_tr1/utility.hpp>
|
||||
// First include <cstddef> to determine if some version of STLport is in use as the std lib
|
||||
// (do not rely on this header being included since users can short-circuit this header
|
||||
// if they know whose std lib they are using.)
|
||||
#ifdef __cplusplus
|
||||
# include <cstddef>
|
||||
#else
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
// STLPort library; this _must_ come first, otherwise since
|
||||
@@ -25,7 +26,17 @@
|
||||
// can end up detecting that first rather than STLport:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||
|
||||
#elif defined(__LIBCOMO__)
|
||||
#else
|
||||
|
||||
// If our std lib was not some version of STLport, then include <utility> as it is about
|
||||
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
|
||||
// include their C++-related macros in <cstddef> so this additional include makes sure
|
||||
// we get those definitions)
|
||||
// (again do not rely on this header being included since users can short-circuit this
|
||||
// header if they know whose std lib they are using.)
|
||||
#include <boost/config/no_tr1/utility.hpp>
|
||||
|
||||
#if defined(__LIBCOMO__)
|
||||
// Comeau STL:
|
||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||
|
||||
@@ -33,6 +44,10 @@
|
||||
// Rogue Wave library:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
||||
|
||||
#elif defined(_LIBCPP_VERSION)
|
||||
// libc++
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
|
||||
|
||||
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||
// GNU libstdc++ 3
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||
@@ -64,5 +79,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -55,8 +55,10 @@
|
||||
# define BOOST_HAS_MACRO_USE_FACET
|
||||
# ifndef _CPPLIB_VER
|
||||
// Updated Dinkum library defines this, and provides
|
||||
// its own min and max definitions.
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
// its own min and max definitions, as does MTA version.
|
||||
# ifndef __MTA__
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
# endif
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# endif
|
||||
#endif
|
||||
@@ -84,6 +86,43 @@
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
#include <typeinfo>
|
||||
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
|
||||
# define BOOST_NO_STD_TYPEINFO
|
||||
#endif
|
||||
|
||||
// C++0x headers implemented in 520 (as shipped by Microsoft)
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
#endif
|
||||
|
||||
#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
#endif
|
||||
//
|
||||
// C++0x headers not yet (fully) implemented:
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
|
||||
#ifdef _CPPLIB_VER
|
||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||
#else
|
||||
|
||||
@@ -33,6 +33,29 @@
|
||||
# define BOOST_HAS_SLIST
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
//
|
||||
// Intrinsic type_traits support.
|
||||
// The SGI STL has it's own __type_traits class, which
|
||||
|
||||
36
include/boost/config/stdlib/libcpp.hpp
Normal file
36
include/boost/config/stdlib/libcpp.hpp
Normal file
@@ -0,0 +1,36 @@
|
||||
// (C) Copyright Christopher Jefferson 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// config for libc++
|
||||
// Might need more in here later.
|
||||
|
||||
#if !defined(_LIBCPP_VERSION)
|
||||
# include <ciso646>
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# error "This is not libc++!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
|
||||
|
||||
#define BOOST_HAS_THREADS
|
||||
|
||||
#ifdef _LIBCPP_HAS_NO_VARIADICS
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
//
|
||||
// These appear to be unusable/incomplete so far:
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
|
||||
// libc++ uses a non-standard messages_base
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
|
||||
// --- end ---
|
||||
@@ -9,6 +9,8 @@
|
||||
// config for libstdc++ v3
|
||||
// not much to go in here:
|
||||
|
||||
#define BOOST_GNU_STDLIB 1
|
||||
|
||||
#ifdef __GLIBCXX__
|
||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
||||
#else
|
||||
@@ -31,7 +33,9 @@
|
||||
|
||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||
|| defined(_GLIBCXX__PTHREADS)
|
||||
|| defined(_GLIBCXX__PTHREADS) \
|
||||
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||
|| defined(_WIN32)
|
||||
//
|
||||
// If the std lib has thread support turned on, then turn it on in Boost
|
||||
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
||||
@@ -54,7 +58,6 @@
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
||||
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
||||
&& defined(BOOST_HAS_LONG_LONG)
|
||||
@@ -63,6 +66,16 @@
|
||||
# undef BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||
# define BOOST_HAS_SLIST
|
||||
@@ -76,3 +89,67 @@
|
||||
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
|
||||
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
|
||||
// developers. He also commented:
|
||||
//
|
||||
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
|
||||
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
|
||||
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
|
||||
// than any release in the 4.2 series."
|
||||
//
|
||||
// Another resource for understanding stdlibc++ features is:
|
||||
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
|
||||
|
||||
// C++0x headers in GCC 4.3.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
#endif
|
||||
|
||||
// C++0x headers in GCC 4.4.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
#else
|
||||
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||
#endif
|
||||
|
||||
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_0X_HDR_MUTEX))
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.5.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.5.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
#endif
|
||||
// C++0x headers not yet (fully!) implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
|
||||
// --- end ---
|
||||
|
||||
@@ -22,6 +22,29 @@
|
||||
#define BOOST_NO_STD_WSTRING
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
#define BOOST_STDLIB "Modena C++ standard library"
|
||||
|
||||
|
||||
|
||||
@@ -46,6 +46,28 @@
|
||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
|
||||
// Rogue Wave std lib:
|
||||
|
||||
#define BOOST_RW_STDLIB 1
|
||||
|
||||
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
@@ -151,3 +153,31 @@
|
||||
# define _HP_INSTANTIATE_STD2_VL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _RWSTD_VER < 0x05000000
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
#endif
|
||||
// type_traits header is incomplete:
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
//
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
|
||||
@@ -40,6 +40,17 @@
|
||||
# define BOOST_NO_STRINGSTREAM
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Assume no std::locale without own iostreams (this may be an
|
||||
// incorrect assumption in some cases):
|
||||
@@ -105,6 +116,29 @@
|
||||
//
|
||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
#define BOOST_STDLIB "SGI standard library"
|
||||
|
||||
|
||||
|
||||
@@ -10,12 +10,22 @@
|
||||
// STLPort standard library config:
|
||||
|
||||
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# include <cstddef>
|
||||
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||
# error "This is not STLPort!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
// for versions prior to 4.1(beta)
|
||||
@@ -61,6 +71,14 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520))
|
||||
# define BOOST_NO_STD_UNORDERED
|
||||
#endif
|
||||
|
||||
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
|
||||
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||
# define BOOST_HAS_TR1_UNORDERED_MAP
|
||||
#endif
|
||||
//
|
||||
// Without member template support enabled, their are no template
|
||||
// iterate constructors, and no std::allocator:
|
||||
@@ -192,6 +210,29 @@ namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy;
|
||||
namespace boost { using std::min; using std::max; }
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,39 @@
|
||||
#define BOOST_HAS_MACRO_USE_FACET
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
|
||||
#define BOOST_STDLIB "Visual Age default standard library"
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// Copyright (c) 2002-2003 David Abrahams
|
||||
// Copyright (c) 2003 Gennaro Prota
|
||||
// Copyright (c) 2003 Eric Friedman
|
||||
//
|
||||
// Copyright (c) 2010 Eric Jourdanneau, Joel Falcou
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@@ -25,17 +25,40 @@
|
||||
#ifndef BOOST_CONFIG_SUFFIX_HPP
|
||||
#define BOOST_CONFIG_SUFFIX_HPP
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||
//
|
||||
// Some GCC-4.x versions issue warnings even when __extension__ is used,
|
||||
// so use this as a workaround:
|
||||
//
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
//
|
||||
// ensure that visibility macros are always defined, thus symplifying use
|
||||
//
|
||||
#ifndef BOOST_SYMBOL_EXPORT
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
#ifndef BOOST_SYMBOL_IMPORT
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
#endif
|
||||
#ifndef BOOST_SYMBOL_VISIBLE
|
||||
# define BOOST_SYMBOL_VISIBLE
|
||||
#endif
|
||||
|
||||
//
|
||||
// look for long long by looking for the appropriate macros in <limits.h>.
|
||||
// Note that we use limits.h rather than climits for maximal portability,
|
||||
// remember that since these just declare a bunch of macros, there should be
|
||||
// no namespace issues from this.
|
||||
//
|
||||
#if !defined(BOOST_HAS_LONG_LONG) \
|
||||
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \
|
||||
&& !defined(BOOST_MSVC) && !defined(__BORLANDC__)
|
||||
# include <limits.h>
|
||||
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -80,6 +103,13 @@
|
||||
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Normalize BOOST_NO_STATIC_ASSERT and (depricated) BOOST_HAS_STATIC_ASSERT:
|
||||
//
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
//
|
||||
// if there is no __int64 then there is no specialisation
|
||||
// for numeric_limits<__int64> either:
|
||||
@@ -223,7 +253,8 @@
|
||||
// from here then add to the appropriate compiler section):
|
||||
//
|
||||
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
|
||||
|| defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
|
||||
|| defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
|
||||
&& !defined(BOOST_HAS_THREADS)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
@@ -303,6 +334,38 @@
|
||||
# define BOOST_HASH_MAP_HEADER <hash_map>
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_NO_INITIALIZER_LISTS if there is no library support.
|
||||
//
|
||||
|
||||
#if defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined
|
||||
//
|
||||
#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
|
||||
#define BOOST_HAS_RVALUE_REFS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined
|
||||
//
|
||||
#if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
|
||||
#define BOOST_HAS_VARIADIC_TMPL
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
|
||||
//
|
||||
#if !defined(BOOST_NO_DECLTYPE_N3276) && defined(BOOST_NO_DECLTYPE)
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
// BOOST_HAS_ABI_HEADERS
|
||||
// This macro gets set if we have headers that fix the ABI,
|
||||
// and prevent ODR violations when linking to external libraries:
|
||||
@@ -323,7 +386,7 @@
|
||||
// works as expected with standard conforming compilers. The resulting
|
||||
// double inclusion of <cstddef> is harmless.
|
||||
|
||||
# ifdef BOOST_NO_STDC_NAMESPACE
|
||||
# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
|
||||
# include <cstddef>
|
||||
namespace std { using ::ptrdiff_t; using ::size_t; }
|
||||
# endif
|
||||
@@ -342,7 +405,7 @@
|
||||
|
||||
// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
|
||||
|
||||
# ifdef BOOST_NO_STD_MIN_MAX
|
||||
# if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
|
||||
|
||||
namespace std {
|
||||
template <class _Tp>
|
||||
@@ -453,7 +516,7 @@ namespace std {
|
||||
// but it's use may generate either warnings (with -ansi), or errors
|
||||
// (with -pedantic -ansi) unless it's use is prefixed by __extension__
|
||||
//
|
||||
#if defined(BOOST_HAS_LONG_LONG)
|
||||
#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
|
||||
namespace boost{
|
||||
# ifdef __GNUC__
|
||||
__extension__ typedef long long long_long_type;
|
||||
@@ -507,7 +570,7 @@ namespace boost{
|
||||
//
|
||||
|
||||
|
||||
#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
|
||||
|
||||
# include "boost/type.hpp"
|
||||
# include "boost/non_type.hpp"
|
||||
@@ -543,6 +606,12 @@ namespace boost{
|
||||
|
||||
#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
|
||||
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
|
||||
// the global definition into std namespace:
|
||||
#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
|
||||
#include <typeinfo>
|
||||
namespace std{ using ::type_info; }
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------//
|
||||
|
||||
@@ -566,6 +635,20 @@ namespace boost{
|
||||
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
|
||||
#define BOOST_DO_JOIN2( X, Y ) X##Y
|
||||
|
||||
//
|
||||
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
|
||||
// These aid the transition to C++11 while still supporting C++03 compilers
|
||||
//
|
||||
#ifdef BOOST_NO_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT_IF(Predicate)
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) false
|
||||
#else
|
||||
# define BOOST_NOEXCEPT noexcept
|
||||
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set some default values for compiler/library/platform names.
|
||||
// These are for debugging config setup only:
|
||||
@@ -585,6 +668,37 @@ namespace boost{
|
||||
# endif
|
||||
# endif
|
||||
|
||||
//
|
||||
// Set some default values GPU support
|
||||
//
|
||||
# ifndef BOOST_GPU_ENABLED
|
||||
# define BOOST_GPU_ENABLED
|
||||
# endif
|
||||
|
||||
//
|
||||
// constexpr workarounds
|
||||
//
|
||||
#if defined(BOOST_NO_CONSTEXPR)
|
||||
#define BOOST_CONSTEXPR
|
||||
#define BOOST_CONSTEXPR_OR_CONST const
|
||||
#else
|
||||
#define BOOST_CONSTEXPR constexpr
|
||||
#define BOOST_CONSTEXPR_OR_CONST constexpr
|
||||
#endif
|
||||
|
||||
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
|
||||
|
||||
// BOOST_FORCEINLINE ---------------------------------------------//
|
||||
// Macro to use in place of 'inline' to force a function to be inline
|
||||
#if !defined(BOOST_FORCEINLINE)
|
||||
# if defined(_MSC_VER)
|
||||
# define BOOST_FORCEINLINE __forceinline
|
||||
# elif defined(__GNUC__) && __GNUC__ > 3
|
||||
# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
|
||||
# else
|
||||
# define BOOST_FORCEINLINE inline
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
|
||||
// not even std library ones! Doing so may turn the warning
|
||||
// off too late to be of any use. For example the VC++ C4996
|
||||
// warning can be omitted from <iosfwd> if that header is included
|
||||
// warning can be emitted from <iosfwd> if that header is included
|
||||
// before or by this one :-(
|
||||
//
|
||||
|
||||
|
||||
@@ -45,10 +45,15 @@
|
||||
#else
|
||||
#define __BORLANDC___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __MSC_VER
|
||||
#define __MSC_VER_WORKAROUND_GUARD 1
|
||||
#ifndef __CODEGEARC__
|
||||
#define __CODEGEARC___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __MSC_VER_WORKAROUND_GUARD 0
|
||||
#define __CODEGEARC___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _MSC_VER
|
||||
#define _MSC_VER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define _MSC_VER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _MSC_FULL_VER
|
||||
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
|
||||
@@ -60,6 +65,11 @@
|
||||
#else
|
||||
#define BOOST_MSVC_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef BOOST_MSVC_FULL_VER
|
||||
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __GNUC__
|
||||
#define __GNUC___WORKAROUND_GUARD 1
|
||||
#else
|
||||
@@ -95,6 +105,11 @@
|
||||
#else
|
||||
#define __MWERKS___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __EDG__
|
||||
#define __EDG___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __EDG___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __EDG_VERSION__
|
||||
#define __EDG_VERSION___WORKAROUND_GUARD 1
|
||||
#else
|
||||
@@ -105,6 +120,11 @@
|
||||
#else
|
||||
#define __HP_aCC_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __hpxstd98
|
||||
#define __hpxstd98_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __hpxstd98_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _CRAYC
|
||||
#define _CRAYC_WORKAROUND_GUARD 1
|
||||
#else
|
||||
@@ -120,12 +140,47 @@
|
||||
#else
|
||||
#define MPW_CPLUS_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __COMO__
|
||||
#define __COMO___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __COMO___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __COMO_VERSION__
|
||||
#define __COMO_VERSION___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __COMO_VERSION___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __INTEL_COMPILER
|
||||
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __ICL
|
||||
#define __ICL_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __ICL_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _COMPILER_VERSION
|
||||
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
|
||||
#ifndef _RWSTD_VER
|
||||
#define _RWSTD_VER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define _RWSTD_VER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef BOOST_RWSTD_VER
|
||||
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __GLIBCPP__
|
||||
#define __GLIBCPP___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __GLIBCPP___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
|
||||
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
|
||||
#else
|
||||
@@ -141,6 +196,16 @@
|
||||
#else
|
||||
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef __LIBCOMO_VERSION__
|
||||
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
|
||||
#endif
|
||||
#ifndef _CPPLIB_VER
|
||||
#define _CPPLIB_VER_WORKAROUND_GUARD 1
|
||||
#else
|
||||
#define _CPPLIB_VER_WORKAROUND_GUARD 0
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_INTEL_CXX_VERSION
|
||||
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
//
|
||||
// use this header as a workaround for missing <limits>
|
||||
|
||||
// See http://www.boost.org/libs/utility/limits.html for documentation.
|
||||
// See http://www.boost.org/libs/compatibility/index.html for documentation.
|
||||
|
||||
#ifndef BOOST_LIMITS
|
||||
#define BOOST_LIMITS
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||
// BOOST_VERSION / 100000 is the major version
|
||||
|
||||
#define BOOST_VERSION 103700
|
||||
#define BOOST_VERSION 104900
|
||||
|
||||
//
|
||||
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
||||
@@ -27,7 +27,7 @@
|
||||
// number, y is the minor version number, and z is the patch level if not 0.
|
||||
// This is used by <config/auto_link.hpp> to select which library version to link to.
|
||||
|
||||
#define BOOST_LIB_VERSION "1_37"
|
||||
#define BOOST_LIB_VERSION "1_49"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -7,8 +7,25 @@
|
||||
# If you need to alter build preferences then set them in
|
||||
# the template defined in options_v2.jam.
|
||||
#
|
||||
|
||||
import modules ;
|
||||
|
||||
local is_unix = [ modules.peek : UNIX ] ;
|
||||
|
||||
if $(is_unix)
|
||||
{
|
||||
local osname = [ SHELL uname ] ;
|
||||
|
||||
switch $(osname)
|
||||
{
|
||||
case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ;
|
||||
case "*BSD*" : OTHERFLAGS = "-lpthread" ;
|
||||
}
|
||||
}
|
||||
|
||||
test-suite config
|
||||
:
|
||||
:
|
||||
[ compile config_test_c.c ]
|
||||
[ run config_test.cpp
|
||||
: #args
|
||||
: #input-files
|
||||
@@ -21,6 +38,9 @@ test-suite config
|
||||
: #input-files
|
||||
: #requirements
|
||||
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
|
||||
<target-os>linux:<linkflags>-lpthread
|
||||
<target-os>linux:<linkflags>-lrt
|
||||
<toolset>gcc:<linkflags>$(OTHERFLAGS)
|
||||
]
|
||||
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]
|
||||
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi : config_info_threaded ]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Regression test Jamfile for boost configuration setup.
|
||||
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||
# This file was automatically generated on Sat Sep 20 09:49:52 2008
|
||||
# This file was automatically generated on Sun Nov 27 09:43:19 2011
|
||||
# by libs/config/tools/generate.cpp
|
||||
# Copyright John Maddock.
|
||||
# Use, modification and distribution are subject to the
|
||||
@@ -31,9 +31,6 @@ test-suite "BOOST_HAS_BETHREADS" :
|
||||
test-suite "BOOST_HAS_CLOCK_GETTIME" :
|
||||
[ run ../has_clock_gettime_pass.cpp ]
|
||||
[ compile-fail ../has_clock_gettime_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_CONCEPTS" :
|
||||
[ run ../has_concepts_pass.cpp ]
|
||||
[ compile-fail ../has_concepts_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_DIRENT_H" :
|
||||
[ run ../has_dirent_h_pass.cpp ]
|
||||
[ compile-fail ../has_dirent_h_fail.cpp ] ;
|
||||
@@ -43,6 +40,9 @@ test-suite "BOOST_HAS_EXPM1" :
|
||||
test-suite "BOOST_HAS_FTIME" :
|
||||
[ run ../has_ftime_pass.cpp ]
|
||||
[ compile-fail ../has_ftime_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_GETSYSTEMTIMEASFILETIME" :
|
||||
[ run ../has_getsystemtimeasfiletime_pass.cpp ]
|
||||
[ compile-fail ../has_getsystemtimeasfiletime_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_GETTIMEOFDAY" :
|
||||
[ run ../has_gettimeofday_pass.cpp ]
|
||||
[ compile-fail ../has_gettimeofday_fail.cpp ] ;
|
||||
@@ -175,6 +175,60 @@ test-suite "BOOST_MSVC_STD_ITERATOR" :
|
||||
test-suite "BOOST_HAS_WINTHREADS" :
|
||||
[ run ../has_winthreads_pass.cpp ]
|
||||
[ compile-fail ../has_winthreads_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_ARRAY" :
|
||||
[ run ../no_0x_hdr_array_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_array_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_CHRONO" :
|
||||
[ run ../no_0x_hdr_chrono_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_chrono_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_CODECVT" :
|
||||
[ run ../no_0x_hdr_codecvt_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_codecvt_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_CONDITION_VARIABLE" :
|
||||
[ run ../no_0x_hdr_condition_variable_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_condition_variable_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_FORWARD_LIST" :
|
||||
[ run ../no_0x_hdr_forward_list_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_forward_list_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_FUTURE" :
|
||||
[ run ../no_0x_hdr_future_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_future_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_INITIALIZER_LIST" :
|
||||
[ run ../no_0x_hdr_initializer_list_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_initializer_list_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_MUTEX" :
|
||||
[ run ../no_0x_hdr_mutex_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_mutex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_RANDOM" :
|
||||
[ run ../no_0x_hdr_random_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_random_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_RATIO" :
|
||||
[ run ../no_0x_hdr_ratio_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_ratio_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_REGEX" :
|
||||
[ run ../no_0x_hdr_regex_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_regex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_SYSTEM_ERROR" :
|
||||
[ run ../no_0x_hdr_system_error_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_system_error_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_THREAD" :
|
||||
[ run ../no_0x_hdr_thread_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_thread_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_TUPLE" :
|
||||
[ run ../no_0x_hdr_tuple_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_tuple_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_TYPEINDEX" :
|
||||
[ run ../no_0x_hdr_typeindex_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_typeindex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_TYPE_TRAITS" :
|
||||
[ run ../no_0x_hdr_type_traits_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_type_traits_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_UNORDERED_MAP" :
|
||||
[ run ../no_0x_hdr_unordered_map_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_unordered_map_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_0X_HDR_UNORDERED_SET" :
|
||||
[ run ../no_0x_hdr_unordered_set_pass.cpp ]
|
||||
[ compile-fail ../no_0x_hdr_unordered_set_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_ADL_BARRIER" :
|
||||
[ run ../no_adl_barrier_pass.cpp ]
|
||||
[ compile-fail ../no_adl_barrier_fail.cpp ] ;
|
||||
@@ -184,12 +238,30 @@ test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
|
||||
test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
|
||||
[ run ../no_array_type_spec_pass.cpp ]
|
||||
[ compile-fail ../no_array_type_spec_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_AUTO_DECLARATIONS" :
|
||||
[ run ../no_auto_declarations_pass.cpp ]
|
||||
[ compile-fail ../no_auto_declarations_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
|
||||
[ run ../no_auto_multidecl_pass.cpp ]
|
||||
[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_AUTO_PTR" :
|
||||
[ run ../no_auto_ptr_pass.cpp ]
|
||||
[ compile-fail ../no_auto_ptr_fail.cpp ] ;
|
||||
test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
|
||||
[ run ../no_bcb_partial_spec_pass.cpp ]
|
||||
[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CHAR16_T" :
|
||||
[ run ../no_char16_t_pass.cpp ]
|
||||
[ compile-fail ../no_char16_t_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CHAR32_T" :
|
||||
[ run ../no_char32_t_pass.cpp ]
|
||||
[ compile-fail ../no_char32_t_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
|
||||
[ run ../no_com_value_init_pass.cpp ]
|
||||
[ compile-fail ../no_com_value_init_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CONSTEXPR" :
|
||||
[ run ../no_constexpr_pass.cpp ]
|
||||
[ compile-fail ../no_constexpr_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
|
||||
[ run ../no_ctype_functions_pass.cpp ]
|
||||
[ compile-fail ../no_ctype_functions_fail.cpp ] ;
|
||||
@@ -205,9 +277,21 @@ test-suite "BOOST_NO_CWCHAR" :
|
||||
test-suite "BOOST_NO_CWCTYPE" :
|
||||
[ run ../no_cwctype_pass.cpp ]
|
||||
[ compile-fail ../no_cwctype_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DECLTYPE" :
|
||||
[ run ../no_decltype_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DECLTYPE_N3276" :
|
||||
[ run ../no_decltype_n3276_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_n3276_fail.cpp ] ;
|
||||
test-suite "BOOST_DEDUCED_TYPENAME" :
|
||||
[ run ../no_ded_typename_pass.cpp ]
|
||||
[ compile-fail ../no_ded_typename_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DEFAULTED_FUNCTIONS" :
|
||||
[ run ../no_defaulted_functions_pass.cpp ]
|
||||
[ compile-fail ../no_defaulted_functions_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DELETED_FUNCTIONS" :
|
||||
[ run ../no_deleted_functions_pass.cpp ]
|
||||
[ compile-fail ../no_deleted_functions_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
|
||||
[ run ../no_dep_nested_class_pass.cpp ]
|
||||
[ compile-fail ../no_dep_nested_class_fail.cpp ] ;
|
||||
@@ -220,9 +304,21 @@ test-suite "BOOST_NO_EXCEPTIONS" :
|
||||
test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
|
||||
[ run ../no_excep_std_pass.cpp ]
|
||||
[ compile-fail ../no_excep_std_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_EXPLICIT_CONVERSION_OPERATORS" :
|
||||
[ run ../no_explicit_cvt_ops_pass.cpp ]
|
||||
[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
|
||||
[ run ../no_exp_func_tem_arg_pass.cpp ]
|
||||
[ compile-fail ../no_exp_func_tem_arg_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_EXTERN_TEMPLATE" :
|
||||
[ run ../no_extern_template_pass.cpp ]
|
||||
[ compile-fail ../no_extern_template_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_FENV_H" :
|
||||
[ run ../no_fenv_h_pass.cpp ]
|
||||
[ compile-fail ../no_fenv_h_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
|
||||
[ run ../no_function_template_default_args_pass.cpp ]
|
||||
[ compile-fail ../no_function_template_default_args_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
|
||||
[ run ../no_function_type_spec_pass.cpp ]
|
||||
[ compile-fail ../no_function_type_spec_fail.cpp ] ;
|
||||
@@ -232,6 +328,9 @@ test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
|
||||
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
|
||||
[ run ../no_i64_limits_pass.cpp ]
|
||||
[ compile-fail ../no_i64_limits_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_INITIALIZER_LISTS" :
|
||||
[ run ../no_initializer_lists_pass.cpp ]
|
||||
[ compile-fail ../no_initializer_lists_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
|
||||
[ run ../no_inline_memb_init_pass.cpp ]
|
||||
[ compile-fail ../no_inline_memb_init_fail.cpp ] ;
|
||||
@@ -250,15 +349,24 @@ test-suite "BOOST_NO_IS_ABSTRACT" :
|
||||
test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
|
||||
[ run ../no_iter_construct_pass.cpp ]
|
||||
[ compile-fail ../no_iter_construct_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_LAMBDAS" :
|
||||
[ run ../no_lambdas_pass.cpp ]
|
||||
[ compile-fail ../no_lambdas_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_LIMITS" :
|
||||
[ run ../no_limits_pass.cpp ]
|
||||
[ compile-fail ../no_limits_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
|
||||
[ run ../no_limits_const_exp_pass.cpp ]
|
||||
[ compile-fail ../no_limits_const_exp_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_NUMERIC_LIMITS_LOWEST" :
|
||||
[ run ../no_limits_lowest_pass.cpp ]
|
||||
[ compile-fail ../no_limits_lowest_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
|
||||
[ run ../no_ll_limits_pass.cpp ]
|
||||
[ compile-fail ../no_ll_limits_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_LONG_LONG" :
|
||||
[ run ../no_long_long_pass.cpp ]
|
||||
[ compile-fail ../no_long_long_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
|
||||
[ run ../no_mem_func_spec_pass.cpp ]
|
||||
[ compile-fail ../no_mem_func_spec_fail.cpp ] ;
|
||||
@@ -277,6 +385,12 @@ test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
|
||||
test-suite "BOOST_NO_NESTED_FRIENDSHIP" :
|
||||
[ run ../no_nested_friendship_pass.cpp ]
|
||||
[ compile-fail ../no_nested_friendship_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_NOEXCEPT" :
|
||||
[ run ../no_noexcept_pass.cpp ]
|
||||
[ compile-fail ../no_noexcept_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_NULLPTR" :
|
||||
[ run ../no_nullptr_pass.cpp ]
|
||||
[ compile-fail ../no_nullptr_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
|
||||
[ run ../no_ops_in_namespace_pass.cpp ]
|
||||
[ compile-fail ../no_ops_in_namespace_fail.cpp ] ;
|
||||
@@ -292,18 +406,33 @@ test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
|
||||
test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
|
||||
[ run ../no_ptr_mem_const_pass.cpp ]
|
||||
[ compile-fail ../no_ptr_mem_const_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_RAW_LITERALS" :
|
||||
[ run ../no_raw_literals_pass.cpp ]
|
||||
[ compile-fail ../no_raw_literals_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
|
||||
[ run ../no_ret_det_pass.cpp ]
|
||||
[ compile-fail ../no_ret_det_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_RTTI" :
|
||||
[ run ../no_rtti_pass.cpp ]
|
||||
[ compile-fail ../no_rtti_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_RVALUE_REFERENCES" :
|
||||
[ run ../no_rvalue_references_pass.cpp ]
|
||||
[ compile-fail ../no_rvalue_references_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_SCOPED_ENUMS" :
|
||||
[ run ../no_scoped_enums_pass.cpp ]
|
||||
[ compile-fail ../no_scoped_enums_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_SFINAE" :
|
||||
[ run ../no_sfinae_pass.cpp ]
|
||||
[ compile-fail ../no_sfinae_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_SFINAE_EXPR" :
|
||||
[ run ../no_sfinae_expr_pass.cpp ]
|
||||
[ compile-fail ../no_sfinae_expr_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STRINGSTREAM" :
|
||||
[ run ../no_sstream_pass.cpp ]
|
||||
[ compile-fail ../no_sstream_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STATIC_ASSERT" :
|
||||
[ run ../no_static_assert_pass.cpp ]
|
||||
[ compile-fail ../no_static_assert_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STDC_NAMESPACE" :
|
||||
[ run ../no_stdc_namespace_pass.cpp ]
|
||||
[ compile-fail ../no_stdc_namespace_fail.cpp ] ;
|
||||
@@ -334,6 +463,9 @@ test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
|
||||
test-suite "BOOST_NO_STD_TYPEINFO" :
|
||||
[ run ../no_std_typeinfo_pass.cpp ]
|
||||
[ compile-fail ../no_std_typeinfo_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STD_UNORDERED" :
|
||||
[ run ../no_std_unordered_pass.cpp ]
|
||||
[ compile-fail ../no_std_unordered_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STD_USE_FACET" :
|
||||
[ run ../no_std_use_facet_pass.cpp ]
|
||||
[ compile-fail ../no_std_use_facet_fail.cpp ] ;
|
||||
@@ -346,6 +478,9 @@ test-suite "BOOST_NO_STD_WSTRING" :
|
||||
test-suite "BOOST_NO_SWPRINTF" :
|
||||
[ run ../no_swprintf_pass.cpp ]
|
||||
[ compile-fail ../no_swprintf_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_TEMPLATE_ALIASES" :
|
||||
[ run ../no_template_aliases_pass.cpp ]
|
||||
[ compile-fail ../no_template_aliases_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
|
||||
[ run ../no_template_streams_pass.cpp ]
|
||||
[ compile-fail ../no_template_streams_fail.cpp ] ;
|
||||
@@ -361,6 +496,12 @@ test-suite "BOOST_NO_TYPEID" :
|
||||
test-suite "BOOST_NO_TYPENAME_WITH_CTOR" :
|
||||
[ run ../no_typename_with_ctor_pass.cpp ]
|
||||
[ compile-fail ../no_typename_with_ctor_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_UNICODE_LITERALS" :
|
||||
[ run ../no_unicode_literals_pass.cpp ]
|
||||
[ compile-fail ../no_unicode_literals_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX" :
|
||||
[ run ../no_unified_init_pass.cpp ]
|
||||
[ compile-fail ../no_unified_init_fail.cpp ] ;
|
||||
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
|
||||
[ run ../no_using_breaks_adl_pass.cpp ]
|
||||
[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
|
||||
@@ -370,6 +511,12 @@ test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" :
|
||||
test-suite "BOOST_NO_USING_TEMPLATE" :
|
||||
[ run ../no_using_template_pass.cpp ]
|
||||
[ compile-fail ../no_using_template_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_VARIADIC_MACROS" :
|
||||
[ run ../no_variadic_macros_pass.cpp ]
|
||||
[ compile-fail ../no_variadic_macros_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_VARIADIC_TEMPLATES" :
|
||||
[ run ../no_variadic_templates_pass.cpp ]
|
||||
[ compile-fail ../no_variadic_templates_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_VOID_RETURNS" :
|
||||
[ run ../no_void_returns_pass.cpp ]
|
||||
[ compile-fail ../no_void_returns_fail.cpp ] ;
|
||||
|
||||
@@ -6,19 +6,17 @@
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_HAS_FTIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
// TITLE: The platform has FTIME.
|
||||
// DESCRIPTION: The platform supports the Win32 API type FTIME.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_ftime{
|
||||
|
||||
void f()
|
||||
void f(FILETIME)
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
|
||||
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
@@ -0,0 +1,30 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_getsystemtimeasfiletime{
|
||||
|
||||
void f()
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,9 +11,17 @@
|
||||
// or hash_map classes.
|
||||
|
||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||
#include <ext/hash_set>
|
||||
#include <ext/hash_map>
|
||||
# ifdef BOOST_NO_STD_UNORDERED
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||
# include <ext/hash_set>
|
||||
# include <ext/hash_map>
|
||||
# else
|
||||
// If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
|
||||
// not include the <ext/*> headers as they clash with the C++0x
|
||||
// headers. ie in any given translation unit we can include one
|
||||
// or the other, but not both.
|
||||
# define DISABLE_BOOST_HAS_HASH_TEST
|
||||
# endif
|
||||
#else
|
||||
#include <hash_set>
|
||||
#include <hash_map>
|
||||
@@ -25,6 +33,8 @@
|
||||
|
||||
namespace boost_has_hash{
|
||||
|
||||
#ifndef DISABLE_BOOST_HAS_HASH_TEST
|
||||
|
||||
template <class Key, class Eq, class Hash, class Alloc>
|
||||
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
|
||||
{
|
||||
@@ -35,12 +45,16 @@ void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int test()
|
||||
{
|
||||
#ifndef DISABLE_BOOST_HAS_HASH_TEST
|
||||
BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
|
||||
foo(hs);
|
||||
BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
|
||||
foo(hm);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
23
test/boost_no_0x_hdr_array.ipp
Normal file
23
test/boost_no_0x_hdr_array.ipp
Normal file
@@ -0,0 +1,23 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_ARRAY
|
||||
// TITLE: C++0x header <array> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <array>
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace boost_no_0x_hdr_array {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::array<int, 3> a = { 1, 2, 3 };
|
||||
return a.size() == 3 ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
31
test/boost_no_0x_hdr_chrono.ipp
Normal file
31
test/boost_no_0x_hdr_chrono.ipp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_CHRONO
|
||||
// TITLE: C++0x header <chrono> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <chrono>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace boost_no_0x_hdr_chrono {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::chrono::nanoseconds;
|
||||
using std::chrono::microseconds;
|
||||
using std::chrono::milliseconds;
|
||||
using std::chrono::seconds;
|
||||
using std::chrono::minutes;
|
||||
using std::chrono::hours;
|
||||
using std::chrono::system_clock;
|
||||
using std::chrono::monotonic_clock;
|
||||
using std::chrono::high_resolution_clock;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_0x_hdr_codecvt.ipp
Normal file
25
test/boost_no_0x_hdr_codecvt.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_CODECVT
|
||||
// TITLE: C++0x header <codecvt> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <codecvt>
|
||||
|
||||
#include <codecvt>
|
||||
|
||||
namespace boost_no_0x_hdr_codecvt {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::codecvt_utf8;
|
||||
using std::codecvt_utf16;
|
||||
using std::codecvt_utf8_utf16;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
24
test/boost_no_0x_hdr_condition_variable.ipp
Normal file
24
test/boost_no_0x_hdr_condition_variable.ipp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
// TITLE: C++0x header <condition_variable> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <condition_variable>
|
||||
|
||||
#include <condition_variable>
|
||||
|
||||
namespace boost_no_0x_hdr_condition_variable {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::condition_variable;
|
||||
using std::condition_variable_any;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
23
test/boost_no_0x_hdr_forward_list.ipp
Normal file
23
test/boost_no_0x_hdr_forward_list.ipp
Normal file
@@ -0,0 +1,23 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
// TITLE: C++0x header <forward_list> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <forward_list>
|
||||
|
||||
#include <forward_list>
|
||||
|
||||
namespace boost_no_0x_hdr_forward_list {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::forward_list<int> l(2u, 2);
|
||||
return *l.begin() == 2 ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
35
test/boost_no_0x_hdr_future.ipp
Normal file
35
test/boost_no_0x_hdr_future.ipp
Normal file
@@ -0,0 +1,35 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_FUTURE
|
||||
// TITLE: C++0x header <future> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <future>
|
||||
|
||||
#include <future>
|
||||
|
||||
namespace boost_no_0x_hdr_future {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::is_error_code_enum;
|
||||
using std::make_error_code;
|
||||
using std::make_error_condition;
|
||||
using std::future_category;
|
||||
using std::future_error;
|
||||
using std::promise;
|
||||
using std::promise;
|
||||
using std::promise;
|
||||
using std::future;
|
||||
using std::shared_future;
|
||||
using std::atomic_future;
|
||||
using std::packaged_task; // undefined
|
||||
using std::async;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
27
test/boost_no_0x_hdr_initializer_list.ipp
Normal file
27
test/boost_no_0x_hdr_initializer_list.ipp
Normal file
@@ -0,0 +1,27 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
// TITLE: C++0x header <initializer_list> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <initializer_list>
|
||||
|
||||
#include <initializer_list>
|
||||
|
||||
namespace boost_no_0x_hdr_initializer_list {
|
||||
|
||||
void foo(const std::initializer_list<const char*>& l)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
foo( { "a", "b", "c" } );
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
26
test/boost_no_0x_hdr_mutex.ipp
Normal file
26
test/boost_no_0x_hdr_mutex.ipp
Normal file
@@ -0,0 +1,26 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_MUTEX
|
||||
// TITLE: C++0x header <mutex> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <mutex>
|
||||
|
||||
#include <mutex>
|
||||
|
||||
namespace boost_no_0x_hdr_mutex {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::mutex;
|
||||
using std::recursive_mutex;
|
||||
using std::timed_mutex;
|
||||
using std::recursive_timed_mutex;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
31
test/boost_no_0x_hdr_random.ipp
Normal file
31
test/boost_no_0x_hdr_random.ipp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_RANDOM
|
||||
// TITLE: C++0x header <random> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <random>
|
||||
|
||||
#include <random>
|
||||
|
||||
namespace boost_no_0x_hdr_random {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::minstd_rand0;
|
||||
using std::mt19937;
|
||||
using std::mt19937_64;
|
||||
using std::ranlux24_base;
|
||||
using std::ranlux48_base;
|
||||
using std::ranlux24;
|
||||
using std::ranlux48;
|
||||
using std::knuth_b;
|
||||
using std::default_random_engine;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
37
test/boost_no_0x_hdr_ratio.ipp
Normal file
37
test/boost_no_0x_hdr_ratio.ipp
Normal file
@@ -0,0 +1,37 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_RATIO
|
||||
// TITLE: C++0x header <ratio> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <ratio>
|
||||
|
||||
#include <ratio>
|
||||
|
||||
namespace boost_no_0x_hdr_ratio {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::atto;
|
||||
using std::femto;
|
||||
using std::pico;
|
||||
using std::nano;
|
||||
using std::micro;
|
||||
using std::milli;
|
||||
using std::centi;
|
||||
using std::deci;
|
||||
using std::deca;
|
||||
using std::hecto;
|
||||
using std::kilo;
|
||||
using std::mega;
|
||||
using std::tera;
|
||||
using std::peta;
|
||||
using std::exa;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
24
test/boost_no_0x_hdr_regex.ipp
Normal file
24
test/boost_no_0x_hdr_regex.ipp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_REGEX
|
||||
// TITLE: C++0x header <regex> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <regex>
|
||||
|
||||
#include <regex>
|
||||
|
||||
namespace boost_no_0x_hdr_regex {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::regex;
|
||||
using std::wregex;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
26
test/boost_no_0x_hdr_system_error.ipp
Normal file
26
test/boost_no_0x_hdr_system_error.ipp
Normal file
@@ -0,0 +1,26 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
// TITLE: C++0x header <system_error> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <system_error>
|
||||
|
||||
#include <system_error>
|
||||
|
||||
namespace boost_no_0x_hdr_system_error {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::error_category;
|
||||
using std::error_code;
|
||||
using std::error_condition;
|
||||
using std::system_error;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
27
test/boost_no_0x_hdr_thread.ipp
Normal file
27
test/boost_no_0x_hdr_thread.ipp
Normal file
@@ -0,0 +1,27 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_THREAD
|
||||
// TITLE: C++0x header <thread> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <thread>
|
||||
|
||||
#include <thread>
|
||||
|
||||
namespace boost_no_0x_hdr_thread {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::thread;
|
||||
using std::this_thread::get_id;
|
||||
using std::this_thread::yield;
|
||||
using std::this_thread::sleep_until;
|
||||
using std::this_thread::sleep_for;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
23
test/boost_no_0x_hdr_tuple.ipp
Normal file
23
test/boost_no_0x_hdr_tuple.ipp
Normal file
@@ -0,0 +1,23 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_TUPLE
|
||||
// TITLE: C++0x header <tuple> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <tuple>
|
||||
|
||||
#include <tuple>
|
||||
|
||||
namespace boost_no_0x_hdr_tuple {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::tuple<int, int, long> t(0, 1, 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
106
test/boost_no_0x_hdr_type_traits.ipp
Normal file
106
test/boost_no_0x_hdr_type_traits.ipp
Normal file
@@ -0,0 +1,106 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
// TITLE: C++0x header <type_traits> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <type_traits>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace boost_no_0x_hdr_type_traits {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::integral_constant;
|
||||
using std::true_type;
|
||||
using std::false_type;
|
||||
using std::is_void;
|
||||
using std::is_integral;
|
||||
using std::is_floating_point;
|
||||
using std::is_array;
|
||||
using std::is_pointer;
|
||||
using std::is_lvalue_reference;
|
||||
using std::is_rvalue_reference;
|
||||
using std::is_member_object_pointer;
|
||||
using std::is_member_function_pointer;
|
||||
using std::is_enum;
|
||||
using std::is_union;
|
||||
using std::is_class;
|
||||
using std::is_function;
|
||||
using std::is_reference;
|
||||
using std::is_arithmetic;
|
||||
using std::is_fundamental;
|
||||
using std::is_object;
|
||||
using std::is_scalar;
|
||||
using std::is_compound;
|
||||
using std::is_member_pointer;
|
||||
using std::is_const;
|
||||
using std::is_volatile;
|
||||
using std::is_trivial;
|
||||
using std::is_trivially_copyable;
|
||||
using std::is_standard_layout;
|
||||
using std::is_pod;
|
||||
using std::is_literal_type;
|
||||
using std::is_empty;
|
||||
using std::is_polymorphic;
|
||||
using std::is_abstract;
|
||||
using std::is_constructible;
|
||||
using std::is_nothrow_constructible;
|
||||
using std::has_default_constructor;
|
||||
using std::has_copy_constructor;
|
||||
using std::has_copy_assign;
|
||||
using std::has_move_constructor;
|
||||
using std::has_move_assign;
|
||||
using std::has_trivial_default_constructor;
|
||||
using std::has_trivial_copy_constructor;
|
||||
using std::has_trivial_move_constructor;
|
||||
using std::has_trivial_copy_assign;
|
||||
using std::has_trivial_move_assign;
|
||||
using std::has_trivial_destructor;
|
||||
using std::has_nothrow_default_constructor;
|
||||
using std::has_nothrow_copy_constructor;
|
||||
using std::has_nothrow_move_constructor;
|
||||
using std::has_nothrow_copy_assign;
|
||||
using std::has_nothrow_move_assign;
|
||||
using std::has_virtual_destructor;
|
||||
using std::is_signed;
|
||||
using std::is_unsigned;
|
||||
using std::alignment_of;
|
||||
using std::rank;
|
||||
using std::extent;
|
||||
using std::is_same;
|
||||
using std::is_base_of;
|
||||
using std::is_convertible;
|
||||
using std::is_explicitly_convertible;
|
||||
using std::remove_const;
|
||||
using std::remove_volatile;
|
||||
using std::remove_cv;
|
||||
using std::add_const;
|
||||
using std::add_volatile;
|
||||
using std::add_cv;
|
||||
using std::remove_reference;
|
||||
using std::add_lvalue_reference;
|
||||
using std::add_rvalue_reference;
|
||||
using std::make_signed;
|
||||
using std::make_unsigned;
|
||||
using std::remove_extent;
|
||||
using std::remove_all_extents;
|
||||
using std::remove_pointer;
|
||||
using std::add_pointer;
|
||||
using std::aligned_storage;
|
||||
using std::aligned_union;
|
||||
using std::decay;
|
||||
using std::enable_if;
|
||||
using std::conditional;
|
||||
using std::common_type;
|
||||
using std::underlying_type;
|
||||
using std::result_of;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_0x_hdr_typeindex.ipp
Normal file
25
test/boost_no_0x_hdr_typeindex.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_TYPEINDEX
|
||||
// TITLE: C++0x header <typeindex> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <typeindex>
|
||||
|
||||
#include <typeindex>
|
||||
|
||||
namespace boost_no_0x_hdr_typeindex {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::type_index t1 = typeid(int);
|
||||
std::type_index t2 = typeid(double);
|
||||
std::hash<std::type_index> h;
|
||||
return (t1 != t2) && (h(t1) != h(t2)) ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
24
test/boost_no_0x_hdr_unordered_map.ipp
Normal file
24
test/boost_no_0x_hdr_unordered_map.ipp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
// TITLE: C++0x header <unordered_map> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <unordered_map>
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
namespace boost_no_0x_hdr_unordered_map {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::unordered_map<int, long> s1;
|
||||
std::unordered_multimap<int, long> s2;
|
||||
return s1.empty() && s2.empty() ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
24
test/boost_no_0x_hdr_unordered_set.ipp
Normal file
24
test/boost_no_0x_hdr_unordered_set.ipp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Beman Dawes 2009
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
// TITLE: C++0x header <unordered_set> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <unordered_set>
|
||||
|
||||
#include <unordered_set>
|
||||
|
||||
namespace boost_no_0x_hdr_unordered_set {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::unordered_set<int> s1;
|
||||
std::unordered_multiset<int> s2;
|
||||
return s1.empty() && s2.empty() ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_auto_declarations.ipp
Normal file
25
test/boost_no_auto_declarations.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2009 Andrey Semashev
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_NO_AUTO_DECLARATIONS
|
||||
// TITLE: C++0x auto declarators unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x declarations of variables with automatically deduced type
|
||||
|
||||
namespace boost_no_auto_declarations {
|
||||
|
||||
void check_f(int& x)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
auto x = 10;
|
||||
check_f(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_auto_multidecl.ipp
Normal file
25
test/boost_no_auto_multidecl.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2009 Andrey Semashev
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
// TITLE: C++0x auto multideclarators unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x declarations of series of variables with automatically deduced type
|
||||
|
||||
namespace boost_no_auto_multideclarations {
|
||||
|
||||
void check_f(int& x, int*& y)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
auto x = 10, *y = &x;
|
||||
check_f(x, y);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
32
test/boost_no_char16_t.ipp
Normal file
32
test/boost_no_char16_t.ipp
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CHAR16_T
|
||||
// TITLE: C++0x char16_t unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x char16_t
|
||||
|
||||
namespace boost_no_char16_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char16_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char16_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char16_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
31
test/boost_no_char32_t.ipp
Normal file
31
test/boost_no_char32_t.ipp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CHAR32_T
|
||||
// TITLE: C++0x char32_t unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x char32_t
|
||||
|
||||
namespace boost_no_char32_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char32_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char32_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char32_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
1016
test/boost_no_com_value_init.ipp
Normal file
1016
test/boost_no_com_value_init.ipp
Normal file
File diff suppressed because it is too large
Load Diff
46
test/boost_no_constexpr.ipp
Normal file
46
test/boost_no_constexpr.ipp
Normal file
@@ -0,0 +1,46 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CONSTEXPR
|
||||
// TITLE: C++0x constexpr unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x constexpr
|
||||
|
||||
namespace boost_no_constexpr {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
constexpr int square(int x) { return x * x; } // from N2235
|
||||
|
||||
// from 5.19:
|
||||
constexpr const int* addr(const int& ir) { return &ir; }
|
||||
static const int x = 5;
|
||||
constexpr const int* xp = addr(x);
|
||||
|
||||
struct A
|
||||
{
|
||||
constexpr A(int i) : val(i) { }
|
||||
constexpr operator int() { return val; }
|
||||
constexpr operator long() { return 43; }
|
||||
private:
|
||||
int val;
|
||||
};
|
||||
|
||||
template<int> struct X { };
|
||||
|
||||
constexpr A a = 42;
|
||||
|
||||
X<a> xx; // OK: unique conversion to int
|
||||
|
||||
int test()
|
||||
{
|
||||
int i = square(5);
|
||||
quiet_warning(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
54
test/boost_no_decltype.ipp
Normal file
54
test/boost_no_decltype.ipp
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_DECLTYPE
|
||||
// TITLE: C++0x decltype unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x decltype
|
||||
|
||||
namespace boost_no_decltype {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
struct test_class
|
||||
{
|
||||
test_class() {}
|
||||
};
|
||||
|
||||
test_class get_test_class()
|
||||
{
|
||||
return test_class();
|
||||
}
|
||||
|
||||
template<typename F>
|
||||
void baz(F f)
|
||||
{
|
||||
//
|
||||
// Strangely VC-10 deduces the return type of F
|
||||
// to be "test_class&". Remove the constructor
|
||||
// from test_class and then decltype does work OK!!
|
||||
//
|
||||
typedef decltype(f()) res;
|
||||
res r;
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
int i;
|
||||
decltype(i) j;
|
||||
// quiet_warning(j);
|
||||
decltype(get_test_class()) k;
|
||||
#ifndef _MSC_VER
|
||||
// Although the VC++ decltype is buggy, we none the less enable support,
|
||||
// so don't test the bugs for now!
|
||||
baz(get_test_class);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
137
test/boost_no_decltype_n3276.ipp
Normal file
137
test/boost_no_decltype_n3276.ipp
Normal file
@@ -0,0 +1,137 @@
|
||||
|
||||
// (C) Copyright Eric Niebler 2011
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_DECLTYPE_N3276
|
||||
// TITLE: C++0x decltype v1.1 unavailable
|
||||
// DESCRIPTION: The compiler does not support extensions to C++0x
|
||||
// decltype as described in N3276 and accepted in Madrid,
|
||||
// March 2011:
|
||||
// <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf>
|
||||
|
||||
namespace boost_no_decltype_n3276 {
|
||||
|
||||
// A simplified result_of implementation.
|
||||
// that uses decltype.
|
||||
template<typename Sig>
|
||||
struct result_of;
|
||||
|
||||
template<typename T>
|
||||
T& declvar();
|
||||
|
||||
// use decltype
|
||||
template<typename Fun, typename T>
|
||||
struct result_of<Fun(T)>
|
||||
{
|
||||
typedef decltype(declvar<Fun>()(declvar<T>())) type;
|
||||
};
|
||||
|
||||
template<typename Fun, typename T, typename U>
|
||||
struct result_of<Fun(T, U)>
|
||||
{
|
||||
typedef decltype(declvar<Fun>()(declvar<T>(), declvar<U>())) type;
|
||||
};
|
||||
|
||||
// simple tuple type
|
||||
template<typename A0 = void, typename A1 = void, typename A2 = void>
|
||||
struct tuple;
|
||||
|
||||
template<typename A0>
|
||||
struct tuple<A0, void, void>
|
||||
{
|
||||
A0 a0_;
|
||||
|
||||
tuple(A0 const &a0)
|
||||
: a0_(a0)
|
||||
{}
|
||||
};
|
||||
|
||||
template<typename A0, typename A1>
|
||||
struct tuple<A0, A1>
|
||||
{
|
||||
A0 a0_;
|
||||
A1 a1_;
|
||||
|
||||
tuple(A0 const &a0, A1 const & a1)
|
||||
: a0_(a0)
|
||||
, a1_(a1)
|
||||
{}
|
||||
};
|
||||
|
||||
// A node in an expression tree
|
||||
template<class Tag, class Args> // Args is a tuple.
|
||||
struct Expr;
|
||||
|
||||
// A function object that builds expression nodes
|
||||
template<class Tag>
|
||||
struct MakeExpr
|
||||
{
|
||||
template<class T>
|
||||
Expr<Tag, tuple<T> > operator()(T const & t) const
|
||||
{
|
||||
return Expr<Tag, tuple<T> >(tuple<T>(t));
|
||||
}
|
||||
|
||||
template<class T, typename U>
|
||||
Expr<Tag, tuple<T, U> > operator()(T const & t, U const & u) const
|
||||
{
|
||||
return Expr<Tag, tuple<T, U> >(tuple<T, U>(t, u));
|
||||
}
|
||||
};
|
||||
|
||||
// Here are tag types that encode in an expression node
|
||||
// what operation created the node.
|
||||
struct Terminal;
|
||||
struct BinaryPlus;
|
||||
struct FunctionCall;
|
||||
|
||||
typedef MakeExpr<Terminal> MakeTerminal;
|
||||
typedef MakeExpr<BinaryPlus> MakeBinaryPlus;
|
||||
typedef MakeExpr<FunctionCall> MakeFunctionCall;
|
||||
|
||||
template<class Tag, class Args>
|
||||
struct Expr
|
||||
{
|
||||
Args args_;
|
||||
|
||||
explicit Expr(Args const & t) : args_(t) {}
|
||||
|
||||
// An overloaded operator+ that creates a binary plus node
|
||||
template<typename RTag, typename RArgs>
|
||||
typename result_of<MakeBinaryPlus(Expr, Expr<RTag, RArgs>)>::type
|
||||
operator+(Expr<RTag, RArgs> const &right) const
|
||||
{
|
||||
return MakeBinaryPlus()(*this, right);
|
||||
}
|
||||
|
||||
// An overloaded function call operator that creates a unary
|
||||
// function call node
|
||||
typename result_of<MakeFunctionCall(Expr)>::type
|
||||
operator()() const
|
||||
{
|
||||
return MakeFunctionCall()(*this);
|
||||
}
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
// This is a terminal in an expression tree
|
||||
Expr<Terminal, tuple<int> > i = MakeTerminal()(42);
|
||||
|
||||
i + i; // OK, this creates a binary plus node.
|
||||
|
||||
i(); // OK, this creates a unary function-call node.
|
||||
// NOTE: If N3276 has not been implemented, this
|
||||
// line will set off an infinite cascade of template
|
||||
// instantiations that will run the compiler out of
|
||||
// memory.
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
28
test/boost_no_defaulted_functions.ipp
Normal file
28
test/boost_no_defaulted_functions.ipp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
// TITLE: C++0x defaulted functions unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x defaulted functions
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error Defaulted functions are not supported in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_defaulted_functions {
|
||||
|
||||
struct foo {
|
||||
foo() = default;
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
28
test/boost_no_deleted_functions.ipp
Normal file
28
test/boost_no_deleted_functions.ipp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_DELETED_FUNCTIONS
|
||||
// TITLE: C++0x =delete functions unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x =delete functions
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error Deleted functions are not supported in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_deleted_functions {
|
||||
|
||||
struct foo {
|
||||
foo() = delete;
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
33
test/boost_no_explicit_cvt_ops.ipp
Normal file
33
test/boost_no_explicit_cvt_ops.ipp
Normal file
@@ -0,0 +1,33 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
// TITLE: C++0x explicit conversion operators unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x explicit conversion operators
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error This feature is not available in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_explicit_conversion_operators {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
struct foo {
|
||||
explicit operator int() { return 1; }
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
foo f;
|
||||
int i = int(f);
|
||||
quiet_warning(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
41
test/boost_no_extern_template.ipp
Normal file
41
test/boost_no_extern_template.ipp
Normal file
@@ -0,0 +1,41 @@
|
||||
// (C) Copyright Beman Dawes 2008
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_EXTERN_TEMPLATE
|
||||
// TITLE: C++0x extern template unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x extern template
|
||||
|
||||
namespace boost_no_extern_template {
|
||||
|
||||
template<class T, class U> void f(T const* p, U const* q)
|
||||
{
|
||||
p = q;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
class must_not_compile
|
||||
{
|
||||
public:
|
||||
void f(T const* p, int const* q);
|
||||
};
|
||||
|
||||
template <class T>
|
||||
void must_not_compile<T>::f(T const* p, int const* q)
|
||||
{
|
||||
p = q;
|
||||
}
|
||||
|
||||
extern template void f<>(int const*, float const*);
|
||||
extern template class must_not_compile<int>;
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
58
test/boost_no_fenv_h.ipp
Normal file
58
test/boost_no_fenv_h.ipp
Normal file
@@ -0,0 +1,58 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Bryce Lelbach 2010.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_NO_FENV_H
|
||||
// TITLE: fenv.h
|
||||
// DESCRIPTION: There is no standard <fenv.h> available. If <fenv.h> is
|
||||
// available, <boost/detail/fenv.hpp> should be included
|
||||
// instead of directly including <fenv.h>.
|
||||
|
||||
#include <fenv.h>
|
||||
|
||||
namespace boost_no_fenv_h {
|
||||
|
||||
int test()
|
||||
{
|
||||
/// C++0x required typedefs
|
||||
typedef ::fenv_t has_fenv_t;
|
||||
typedef ::fexcept_t has_fexcept_t;
|
||||
|
||||
/// C++0x required macros
|
||||
#if !defined(FE_DIVBYZERO)
|
||||
#error platform does not define FE_DIVBYZERO
|
||||
#endif
|
||||
|
||||
#if !defined(FE_INEXACT)
|
||||
#error platform does not define FE_INEXACT
|
||||
#endif
|
||||
|
||||
#if !defined(FE_ALL_EXCEPT)
|
||||
#error platform does not define FE_ALL_EXCEPT
|
||||
#endif
|
||||
|
||||
int i;
|
||||
fexcept_t fe;
|
||||
fenv_t env;
|
||||
|
||||
i = feclearexcept(FE_ALL_EXCEPT);
|
||||
i += fetestexcept(FE_ALL_EXCEPT); // All flags should be zero
|
||||
i += fegetexceptflag(&fe, FE_ALL_EXCEPT);
|
||||
i += fesetexceptflag(&fe, FE_ALL_EXCEPT);
|
||||
i += feraiseexcept(0);
|
||||
i += fesetround(fegetround());
|
||||
i += fegetenv(&env);
|
||||
i += fesetenv(&env);
|
||||
i += feholdexcept(&env);
|
||||
if(i)
|
||||
i += feupdateenv(&env);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
38
test/boost_no_function_template_default_args.ipp
Normal file
38
test/boost_no_function_template_default_args.ipp
Normal file
@@ -0,0 +1,38 @@
|
||||
// (C) Copyright Mathias Gaunard 2009.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.
|
||||
|
||||
// MACRO: BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
// TITLE: Default template arguments for function templates
|
||||
// DESCRIPTION: Default template arguments for function templates are not supported.
|
||||
|
||||
namespace boost_no_function_template_default_args
|
||||
{
|
||||
|
||||
template<typename T = int>
|
||||
T foo()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
bool is_same(T, U)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
bool is_same(T, T)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
return !is_same(foo<>(), 0) || is_same(foo<>(), 0L);
|
||||
}
|
||||
|
||||
} // namespace boost_no_function_template_default_args
|
||||
34
test/boost_no_initializer_lists.ipp
Normal file
34
test/boost_no_initializer_lists.ipp
Normal file
@@ -0,0 +1,34 @@
|
||||
// (C) Copyright Daniel James 2008.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
|
||||
// MACRO: BOOST_NO_INITIALIZER_LISTS
|
||||
// TITLE: Initializer Lists
|
||||
// DESCRIPTION: If the compiler does not support C++0x initializer lists
|
||||
|
||||
#include <initializer_list>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
namespace boost_no_initializer_lists {
|
||||
|
||||
void quiet_warning(const std::initializer_list<int>&){}
|
||||
|
||||
void f(std::initializer_list<int>)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
std::vector<std::string> v{"once", "upon", "a", "time"}; // See C++ std 8.5.4
|
||||
f( { 1, 2, 3, 4 } );
|
||||
std::initializer_list<int> x = { 1, 2 };
|
||||
quiet_warning(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -43,9 +43,7 @@ __extension__
|
||||
|
||||
int test()
|
||||
{
|
||||
llt<mask> m;
|
||||
(void)m;
|
||||
return 0;
|
||||
return llt<mask>::value != (1uLL << 50);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user