Compare commits

...

22 Commits

Author SHA1 Message Date
Beman Dawes
906ebac63f Release 1.44.0 beta 1
[SVN r64617]
2010-08-05 16:04:40 +00:00
Niels Dekker
71fb00764a Merged [63583] (removal of BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER)
[SVN r63587]
2010-07-04 11:37:42 +00:00
Daniel James
648508cb89 Merge documentation update.
[SVN r63517]
2010-07-02 08:27:42 +00:00
John Maddock
ceeb9d5366 Merge a few minor config tweaks from Trunk
[SVN r63470]
2010-07-01 11:59:21 +00:00
Daniel James
fbb893adf0 Merge documentation fixes.
* Use `doc/src/*.css` instead of `doc/html/*.css`.
* Remove wiki and people directories.
* Some documentation fixes.
* Left out `minimal.css` changes and boostbook changes because of clashes.


[SVN r63347]
2010-06-26 12:30:09 +00:00
John Maddock
ff9a447c71 Add BOOST_NO_0X_HDR_TYPEINDEX.
[SVN r62795]
2010-06-11 11:51:24 +00:00
John Maddock
e5b586dc02 Merge changes from Trunk - mostly new macro for <typeindex>.
[SVN r62792]
2010-06-11 11:16:34 +00:00
Beman Dawes
49e17b082e Merge all config diffs from trunk
[SVN r62379]
2010-06-02 14:30:04 +00:00
Douglas Gregor
4ce3e43a4e Merge BOOST_CLANG from trunk r62089.
[SVN r62090]
2010-05-18 18:13:10 +00:00
Steven Watanabe
3d7932ae61 Merge [60624] from the trunk. Refs #4012
[SVN r62086]
2010-05-18 16:53:58 +00:00
Douglas Gregor
7634ba7ec2 Merge Clang NRVO config setting from trunk
[SVN r62005]
2010-05-15 18:48:28 +00:00
Beman Dawes
4542714613 1.44.0 prep
[SVN r61887]
2010-05-10 01:22:04 +00:00
Douglas Gregor
08ebe416a1 Merge Clang configuration for Boost.Config from trunk
[SVN r61874]
2010-05-09 12:32:33 +00:00
Daniel James
d17f79ab80 Merge release info, and some other hanging changes.
[SVN r61540]
2010-04-24 16:25:05 +00:00
John Maddock
027571bf6e Merge patches from Trunk.
[SVN r60622]
2010-03-15 17:55:47 +00:00
John Maddock
7254d6c9c8 Merge doc updates from Trunk.
[SVN r60621]
2010-03-15 17:53:53 +00:00
John Maddock
203833a212 Merge both config and integer changes from Trunk: these are interlinked.
[SVN r58381]
2009-12-14 18:14:48 +00:00
Beman Dawes
39b41a8708 1.42.0 prep
[SVN r57970]
2009-11-27 14:33:19 +00:00
Troy D. Straszheim
b6760d3082 rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
Beman Dawes
d9ea70034c config: merge trunk
[SVN r56776]
2009-10-13 12:56:44 +00:00
John Maddock
3d32b20f45 Merge interlinked changes in config, type_traits and TR1 libraries.
[SVN r56678]
2009-10-09 16:16:02 +00:00
Beman Dawes
28b846cf72 Set release number to 1.41.0
[SVN r55843]
2009-08-28 18:28:55 +00:00
82 changed files with 5044 additions and 2515 deletions

View File

@@ -1,28 +0,0 @@
#
# Copyright Troy D. Straszheim
#
# Distributed under the Boost Software License, Version 1.0.
# See http://www.boost.org/LICENSE_1_0.txt
#
#----------------------------------------------------------------------------
# This file was automatically generated from the original CMakeLists.txt file
# Add a variable to hold the headers for the library
set (lib_headers
config.hpp
config
)
# Add a library target to the build system
boost_library_project(
config
# SRCDIRS
TESTDIRS test
HEADERS ${lib_headers}
# DOCDIRS
DESCRIPTION "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
MODULARIZED
AUTHORS "John Maddock <john -at- johnmaddock.co.uk>"
# MAINTAINERS
)

View File

@@ -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

View File

@@ -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]]

View File

@@ -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.

View File

@@ -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 V1.73.2">
<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.75.2">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">
</head>
@@ -19,9 +19,9 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
@@ -47,7 +47,7 @@
</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 &#169; 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 +55,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -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 V1.73.2">
<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.75.2">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<link rel="next" href="rationale.html" title="Rationale">
@@ -20,9 +20,9 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a>
@@ -61,49 +61,49 @@
<p>
Note that:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>",
and are not required in any 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">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>"
is the preferred way to obtain configuration information not available from
the standard headers such as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>,
etc.
</li>
<li>
If configuration information can be deduced from standard headers such as
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather than
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</li>
<li>
Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
should have sensible, standard conforming, default behavior if the macro
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
to a new platform is simply to define 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">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
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">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>" is the preferred way to obtain
configuration information not available from the standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, etc.
</li>
<li class="listitem">
If configuration information can be deduced from standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather
than <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</li>
<li class="listitem">
Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
should have sensible, standard conforming, default behavior if the macro
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to a new platform is simply to define
nothing at all specific to that platform. In the rare case where there
is no sensible default behavior, an #error message should describe the
problem.
</li>
<li class="listitem">
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
post a request on the Boost mailing list. There is no guarantee such a
request will be honored; the intent is to limit the complexity of config.hpp.
</li>
<li class="listitem">
The intent is to support only compilers which appear on their way to becoming
C++ Standard compliant, and only recent releases of those compilers at
that.
</li>
<li class="listitem">
The intent is not to disable mainstream features now well-supported by
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li>
</ul></div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">
Disabling Compiler Warnings</a>
@@ -116,21 +116,21 @@
<p>
Note that:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
This header <span class="bold"><strong><span class="emphasis"><em>should never be included by
another Boost header</em></span></strong></span>, it should only ever be used
by a library source file or a test case.
</li>
<li>
The header should be included <span class="bold"><strong><span class="emphasis"><em>before you
include any other header</em></span></strong></span>.
</li>
<li>
This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or in
one compilers own standard library headers.
</li>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
by another Boost header</em></span></strong></span>, it should only ever be
used by a library source file or a test case.
</li>
<li class="listitem">
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
you include any other header</em></span></strong></span>.
</li>
<li class="listitem">
This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or in
one compilers own standard library headers.
</li>
</ul></div>
<p>
Currently it disables the following warnings:
@@ -142,47 +142,47 @@
</colgroup>
<thead><tr>
<th>
<p>
Compiler
</p>
<p>
Compiler
</p>
</th>
<th>
<p>
Warning
</p>
<p>
Warning
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
Visual C++ 8 and later
</p>
<p>
Visual C++ 8 and later
</p>
</td>
<td>
<p>
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
Error 'function': was declared deprecated
</p>
<p>
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
Error 'function': was declared deprecated
</p>
</td>
</tr>
<tr>
<td>
<p>
Intel C++
</p>
<p>
Intel C++
</p>
</td>
<td>
<p>
Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.
</p>
<p>
Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a>
@@ -220,7 +220,6 @@
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:
@@ -234,54 +233,59 @@
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>
: this generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.
</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 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>
@@ -305,7 +309,7 @@
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
</p>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
the Boost Configuration Headers</a>
@@ -358,7 +362,7 @@
</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 &#169; 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 +370,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -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 V1.73.2">
<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.75.2">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
@@ -20,9 +20,9 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
@@ -39,7 +39,7 @@
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
article</a>.
</p>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
</h3></div></div></div>
@@ -56,16 +56,10 @@
have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed Principle:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
<span class="bold"><strong>"A module should be open for extension but
closed for modification."</strong></span>
</p>
<p>
</p>
</blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"A module should be open for extension but closed
for modification."</strong></span>
</p></blockquote></div>
<p>
Extending a traditional configuration header implies modifying existing code.
</p>
@@ -78,15 +72,9 @@
of the entire library, and more stable elements of Boost would depend on
it. This violates the Stable Dependencies Principle:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p>
<p>
</p>
</blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p></blockquote></div>
<p>
After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow
@@ -102,7 +90,7 @@
code must be provided.
</p>
</div>
<div class="section" lang="en">
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
</h3></div></div></div>
@@ -121,7 +109,7 @@
</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 &#169; 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 +117,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -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.
@@ -204,6 +208,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 +317,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 +333,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>`.
]]
@@ -542,6 +546,7 @@ that are not yet supported by a particular compiler or library.
[[`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>.]]
@@ -574,11 +579,14 @@ 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.
@@ -627,6 +635,34 @@ 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_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
@@ -772,7 +808,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.
]]
@@ -785,12 +821,21 @@ 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.
]]
@@ -821,9 +866,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]
@@ -945,3 +1079,6 @@ match that used to create the libraries via bjam 's install rules.
[endsect]
[endsect]

View File

@@ -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

View File

@@ -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.
@@ -183,8 +188,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")
@@ -195,8 +208,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")
@@ -207,7 +228,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
@@ -219,8 +242,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")
@@ -231,8 +262,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")
@@ -243,7 +282,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"
@@ -270,16 +312,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
@@ -309,16 +361,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 commentcomment(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")
# 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
@@ -361,13 +418,3 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# undef BOOST_AUTO_LINK_NOMANGLE
#endif

View File

@@ -17,7 +17,7 @@
#endif
// last known compiler version:
#if (__BORLANDC__ > 0x610)
#if (__BORLANDC__ > 0x613)
//# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
//# else
@@ -66,7 +66,6 @@
// Borland C++ Builder 6 and below:
#if (__BORLANDC__ <= 0x564)
# define BOOST_NO_INTEGRAL_INT64_T
# ifdef NDEBUG
// fix broken <cstring> so that Boost.test works:
@@ -107,30 +106,30 @@
# endif
#endif
// Borland C++ Builder 2007 December 2007 Update and below:
//#if (__BORLANDC__ <= 0x593)
#if (__BORLANDC__ <= 0x610) // Beman has asked Alisdair for more info
#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
//
@@ -169,12 +168,14 @@
#define BOOST_NO_CONSTEXPR
#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
@@ -217,7 +218,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
//
@@ -229,13 +230,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
@@ -260,6 +262,13 @@
# 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__)

View File

@@ -0,0 +1,62 @@
// (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)
#else
# define BOOST_NO_RTTI
#endif
#if defined(__int64)
# define BOOST_HAS_MS_INT64
#endif
#define BOOST_HAS_NRVO
// NOTE: Clang's C++0x support is not worth detecting. However, it
// supports both extern templates and "long long" even in C++98/03
// mode.
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#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_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
// HACK: Clang does support extern templates, but Boost's test for
// them is wrong.
#define BOOST_NO_EXTERN_TEMPLATE
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__
#endif
// Macro used to identify the Clang compiler.
#define BOOST_CLANG 1

View File

@@ -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,23 +29,37 @@
#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
// 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
# ifdef NDEBUG
// fix broken <cstring> so that Boost.test works:
# include <cstring>
@@ -58,10 +72,14 @@
# 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
@@ -80,12 +98,13 @@
#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_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
@@ -116,7 +135,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
//
@@ -128,8 +147,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:

View File

@@ -44,7 +44,7 @@
#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
@@ -59,6 +59,9 @@
//
// See above for BOOST_NO_LONG_LONG
//
#if (__EDG_VERSION__ < 310)
# define BOOST_NO_EXTERN_TEMPLATE
#endif
#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
// No support for initializer lists
# define BOOST_NO_INITIALIZER_LISTS
@@ -74,12 +77,13 @@
#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_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_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS

View File

@@ -51,7 +51,7 @@
// check for exception handling support:
#ifndef _CPPUNWIND
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -75,6 +75,7 @@
#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

View File

@@ -42,6 +42,7 @@
# 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
#elif __GNUC__ == 3
# if defined (__PATHSCALE__)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
@@ -58,15 +59,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,27 +108,46 @@
#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)
// 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
//
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS until it
// gets fixed. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_TEMPLATE_ALIASES
// C++0x features in 4.3.n and later
@@ -126,6 +162,7 @@
# 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
@@ -149,6 +186,26 @@
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_SCOPED_ENUMS
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
# define BOOST_NO_SFINAE_EXPR
#endif
// C++0x features in 4.4.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40401) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.4.1
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
# define BOOST_NO_SCOPED_ENUMS
#endif
// C++0x features in 4.5.n 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
@@ -172,8 +229,8 @@
# 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.4 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4))
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else

View File

@@ -25,6 +25,31 @@
//
#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_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_VARIADIC_TEMPLATES
# 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_COMPILER "GCC-XML C++ version " __GCCXML__

View File

@@ -103,12 +103,14 @@
#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_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

View File

@@ -99,7 +99,7 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# endif
#endif
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1100)
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110)
// GCC or VC emulation:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
@@ -157,9 +157,32 @@ 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)
#if defined(__INTEL_COMPILER)
# if __INTEL_COMPILER <= 1110
# 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
//
// last known and checked version:
#if (BOOST_INTEL_CXX_VERSION > 1100)
#if (BOOST_INTEL_CXX_VERSION > 1110)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# elif defined(_MSC_VER)

View File

@@ -17,7 +17,7 @@
# 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

View File

@@ -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
@@ -103,11 +103,13 @@
#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_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

View File

@@ -51,12 +51,14 @@
#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_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

View File

@@ -0,0 +1,86 @@
// (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
#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
#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_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_LAMBDAS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_MS_INT64_NUMERIC_LIMITS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DECLTYPE
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CHAR16_T
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_0X_HDR_UNORDERED_SET
#define BOOST_NO_0X_HDR_UNORDERED_MAP
#define BOOST_NO_0X_HDR_TYPE_TRAITS
#define BOOST_NO_0X_HDR_TUPLE
#define BOOST_NO_0X_HDR_THREAD
#define BOOST_NO_0X_HDR_TYPEINDEX
#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_MEMORY_CONCEPTS
#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
#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_CONTAINER_CONCEPTS
#define BOOST_NO_0X_HDR_CONDITION_VARIABLE
#define BOOST_NO_0X_HDR_CONCEPTS
#define BOOST_NO_0X_HDR_CODECVT
#define BOOST_NO_0X_HDR_CHRONO
#define BOOST_NO_0X_HDR_ARRAY

View File

@@ -16,11 +16,28 @@
// if no threading API is detected.
//
#if (__PGIC__ >= 7)
// PGI 10.x doesn't seem to define __PGIC__
// versions earlier than 10.x do define __PGIC__
#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
@@ -32,8 +49,6 @@
//
// 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_CONCEPTS
@@ -43,12 +58,14 @@
#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_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

View File

@@ -69,6 +69,25 @@
# 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:
//
@@ -78,12 +97,7 @@
//
// C++0x features
//
#if(__SUNPRO_CC >= 0x590)
# define BOOST_HAS_LONG_LONG
#else
# define BOOST_NO_LONG_LONG
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
@@ -96,12 +110,14 @@
#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_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

View File

@@ -30,6 +30,14 @@
# define BOOST_NO_INITIALIZER_LISTS
#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:
//
@@ -72,11 +80,13 @@
#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_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_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS

View File

@@ -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
@@ -73,6 +79,8 @@
// 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
#endif
#if defined(UNDER_CE)
@@ -93,6 +101,24 @@
# 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
@@ -109,7 +135,7 @@
//
// check for exception handling support:
#ifndef _CPPUNWIND
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -119,7 +145,7 @@
#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
@@ -138,11 +164,6 @@
# define BOOST_NO_RTTI
#endif
//
// all versions support __declspec:
//
#define BOOST_HAS_DECLSPEC
//
// C++0x features
//
@@ -153,11 +174,14 @@
#if _MSC_VER < 1600
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_DECLTYPE
#define BOOST_NO_LAMBDAS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR
#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
@@ -165,17 +189,17 @@
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DECLTYPE
#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_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
//
// prefix and suffix headers:
//

View File

@@ -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

View File

@@ -0,0 +1,94 @@
// (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
# include <cstdlib>
// 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

View File

@@ -21,10 +21,17 @@
# 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)))
# define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS

View File

@@ -15,6 +15,7 @@
// compilers we support:
# define BOOST_CXX_GCCXML 0
# define BOOST_CXX_CLANG 0
# define BOOST_CXX_COMO 0
# define BOOST_CXX_DMC 0
# define BOOST_CXX_INTEL 0
@@ -31,6 +32,7 @@
# define BOOST_CXX_IBMCPP 0
# define BOOST_CXX_MSVC 0
# define BOOST_CXX_PGI 0
# define BOOST_CXX_NVCC 0
// locate which compiler we are using and define
@@ -40,10 +42,18 @@
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.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 __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"

View File

@@ -65,6 +65,10 @@
// vxWorks:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
#elif defined(__SYMBIAN32__)
// Symbian:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
#else
# if defined(unix) \

View File

@@ -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,11 @@
# define BOOST_NO_STD_LOCALE
#endif
#include <typeinfo>
#if !_HAS_EXCEPTIONS
# define BOOST_NO_STD_TYPEINFO
#endif
// C++0x headers implemented in 520 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
@@ -98,6 +105,12 @@
# 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
#endif
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
# define BOOST_NO_0X_HDR_TUPLE
#endif
// C++0x headers not yet implemented
@@ -112,7 +125,6 @@
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER

View File

@@ -54,6 +54,7 @@
# 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

View File

@@ -123,5 +123,6 @@
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_TYPEINDEX
// --- end ---

View File

@@ -43,6 +43,7 @@
# 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

View File

@@ -67,6 +67,7 @@
# 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

View File

@@ -173,6 +173,7 @@
# 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

View File

@@ -126,6 +126,7 @@
# 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

View File

@@ -221,6 +221,7 @@ namespace boost { using std::min; using std::max; }
# 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

View File

@@ -33,6 +33,7 @@
# 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

View File

@@ -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,6 +25,19 @@
#ifndef BOOST_CONFIG_SUFFIX_HPP
#define BOOST_CONFIG_SUFFIX_HPP
//
// 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,
@@ -82,6 +95,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:
@@ -314,6 +334,13 @@
# define BOOST_NO_INITIALIZER_LISTS
#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
// 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:
@@ -554,6 +581,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:
#ifdef BOOST_NO_STD_TYPEINFO
#include <typeinfo>
namespace std{ using ::typeinfo; }
#endif
// ---------------------------------------------------------------------------//
@@ -596,6 +629,11 @@ namespace boost{
# endif
# endif
//
// Set some default values GPU support
//
# ifndef BOOST_GPU_ENABLED
# define BOOST_GPU_ENABLED
# endif
#endif

View File

@@ -65,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

View File

@@ -19,7 +19,7 @@
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 104000
#define BOOST_VERSION 104400
//
// 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_40"
#define BOOST_LIB_VERSION "1_44"
#endif

View File

View File

@@ -1,37 +0,0 @@
# Copyright John Maddock and Douglas Gregor.
# 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)
if(MSVC)
set(BOOST_CONFIG_MSVC_STATIC_OPTIONS STATIC STATIC_RUNTIME)
endif(MSVC)
if(BORLAND)
set(BOOST_CONFIG_BORLAND_STATIC_OPTIONS STATIC STATIC_RUNTIME)
endif(BORLAND)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(BOOST_CONFIG_STATIC_THREAD_LIBS LINK_LIBS pthread rt)
endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
boost_additional_test_dependencies(config BOOST_DEPENDS test)
boost_test_run(config_test_threaded config_test.cpp
EXTRA_OPTIONS MULTI_THREADED)
boost_test_run(config_test
EXTRA_OPTIONS SINGLE_THREADED ${BOOST_CONFIG_MSVC_STATIC_OPTIONS}
${BOOST_CONFIG_STATIC_THREAD_LIBS})
boost_test_run(config_info_threaded config_info.cpp
EXTRA_OPTIONS MULTI_THREADED)
boost_test_run(config_info
EXTRA_OPTIONS SINGLE_THREADED ${BOOST_CONFIG_MSVC_STATIC_OPTIONS})
boost_test_run(math_info
EXTRA_OPTIONS ${BOOST_CONFIG_BORLAND_STATIC_OPTIONS})
boost_test_run(limits_test DEPENDS boost_test_exec_monitor)
boost_test_run(abi_test abi/abi_test.cpp abi/main.cpp)
# TODO: config_link_test
boost_test_compile_fail(test_thread_fail1 threads/test_thread_fail1.cpp)
boost_test_compile_fail(test_thread_fail2 threads/test_thread_fail2.cpp)

View File

@@ -18,7 +18,7 @@ if $(is_unix)
switch $(osname)
{
case "Sun*" : OTHERFLAGS = "-lpthread" ;
case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ;
case "*BSD*" : OTHERFLAGS = "-lpthread" ;
}
}

View File

@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Thu May 21 11:08:48 2009
# This file was automatically generated on Fri Jun 04 12:51:35 2010
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -229,6 +229,9 @@ test-suite "BOOST_NO_0X_HDR_THREAD" :
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 ] ;
@@ -265,6 +268,9 @@ test-suite "BOOST_NO_CHAR16_T" :
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_CONCEPTS" :
[ run ../no_concepts_pass.cpp ]
[ compile-fail ../no_concepts_fail.cpp ] ;
@@ -319,6 +325,9 @@ test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
test-suite "BOOST_NO_EXTERN_TEMPLATE" :
[ run ../no_extern_template_pass.cpp ]
[ compile-fail ../no_extern_template_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 ] ;
@@ -418,6 +427,9 @@ test-suite "BOOST_NO_SCOPED_ENUMS" :
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 ] ;

View File

@@ -16,6 +16,7 @@ namespace boost_no_0x_hdr_tuple {
int test()
{
std::tuple<int, int, long> t(0, 1, 2);
return 0;
}

View 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;
}
}

View File

@@ -11,14 +11,14 @@
namespace boost_no_auto_declarations {
void check(int& x)
void check_f(int& x)
{
}
int test()
{
auto x = 10;
check(x);
check_f(x);
return 0;
}

View File

@@ -11,14 +11,14 @@
namespace boost_no_auto_multideclarations {
void check(int& x, int*& y)
void check_f(int& x, int*& y)
{
}
int test()
{
auto x = 10, *y = &x;
check(x, y);
check_f(x, y);
return 0;
}

View File

@@ -1,3 +1,4 @@
// (C) Copyright Beman Dawes 2008
// Use, modification and distribution are subject to the
@@ -14,7 +15,7 @@ namespace boost_no_char16_t {
int test()
{
char16_t c;
const char16_t* p = u"abc";
return 0;
}

View File

@@ -14,7 +14,7 @@ namespace boost_no_char32_t {
int test()
{
char32_t c;
const char32_t* p = U"abc";
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
// (C) Copyright Beman Dawes 2008
// Use, modification and distribution are subject to the
@@ -12,10 +13,34 @@
namespace boost_no_decltype {
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;
decltype(get_test_class()) k;
baz(get_test_class);
return 0;
}

View File

@@ -7,10 +7,10 @@
// 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
// TITLE: C++0x =delete functions unavailable
// DESCRIPTION: The compiler does not support C++0x =delete functions
namespace boost_no_constexpr {
namespace boost_no_deleted_functions {
struct foo {
foo() = delete;

View File

@@ -12,7 +12,26 @@
namespace boost_no_extern_template {
extern template<class T> void f(T);
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()
{

View 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

View File

@@ -11,11 +11,18 @@
// DESCRIPTION: If the compiler does not support C++0x initializer lists
#include <initializer_list>
#include <vector>
namespace boost_no_initializer_lists {
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 };
return 0;
}

View File

@@ -43,9 +43,7 @@ __extension__
int test()
{
llt<mask> m;
(void)m;
return 0;
return llt<mask>::value != (1uLL << 50);
}
}

View File

@@ -14,8 +14,8 @@ namespace boost_no_raw_literals {
int test()
{
const char* s = R"[abc]";
const wchar_t* ws = LR"[abc]";
const char* s = R"(abc)";
const wchar_t* ws = LR"(abc)";
return 0;
}

View File

@@ -36,7 +36,7 @@ void B::t()
namespace boost_no_rtti
{
int check(const A& a)
int check_f(const A& a)
{
return typeid(a) == typeid(B) ? 0 : 1;
}
@@ -45,7 +45,7 @@ int test()
{
try{
B b;
return check(b);
return check_f(b);
}
catch(...)
{

View File

@@ -0,0 +1,37 @@
// (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_SFINAE_EXPR
// TITLE: SFINAE for expressions
// DESCRIPTION: SFINAE for expressions not supported.
namespace boost_no_sfinae_expr
{
template<typename T>
struct has_foo
{
typedef char NotFound;
struct Found { char x[2]; };
template<int> struct dummy {};
template<class X> static Found test(dummy< sizeof((*(X*)0).foo(), 0) >*);
template<class X> static NotFound test( ... );
static const bool value = (sizeof(Found) == sizeof(test<T>(0)));
};
struct test1 {};
struct test2 { void foo(); };
int test()
{
return has_foo<test1>::value || !has_foo<test2>::value;
}
} // namespace boost_no_sfinae_expr

View File

@@ -8,15 +8,14 @@
// MACRO: BOOST_NO_UNICODE_LITERALS
// TITLE: C++0x unicode literals unavailable
// DESCRIPTION: The compiler does not support C++0x unicode literals
// DESCRIPTION: The compiler does not support C++0x Unicode literals (N2442)
namespace boost_no_unicode_literals {
int test()
{
const char* u8 = u8"";
const char16_t* u16 = u"";
const char32_t* u32 = U"";
const char* c8 = u8"";
return 0;
}

View File

@@ -305,6 +305,8 @@ void print_compiler_macros()
PRINT_MACRO(__QNXNTO__);
PRINT_MACRO(__QNX__);
PRINT_MACRO(_NTO_VERSION);
PRINT_MACRO(__OPEN64__);
PRINT_MACRO(__open64);
}
void print_stdlib_macros()
@@ -972,6 +974,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_0X_HDR_SYSTEM_ERROR);
PRINT_MACRO(BOOST_NO_0X_HDR_THREAD);
PRINT_MACRO(BOOST_NO_0X_HDR_TUPLE);
PRINT_MACRO(BOOST_NO_0X_HDR_TYPEINDEX);
PRINT_MACRO(BOOST_NO_0X_HDR_TYPE_TRAITS);
PRINT_MACRO(BOOST_NO_0X_HDR_UNORDERED_MAP);
PRINT_MACRO(BOOST_NO_0X_HDR_UNORDERED_SET);
@@ -983,6 +986,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_AUTO_PTR);
PRINT_MACRO(BOOST_NO_CHAR16_T);
PRINT_MACRO(BOOST_NO_CHAR32_T);
PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
PRINT_MACRO(BOOST_NO_CONCEPTS);
PRINT_MACRO(BOOST_NO_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
@@ -1000,6 +1004,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
PRINT_MACRO(BOOST_NO_EXTERN_TEMPLATE);
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
@@ -1031,6 +1036,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_RVALUE_REFERENCES);
PRINT_MACRO(BOOST_NO_SCOPED_ENUMS);
PRINT_MACRO(BOOST_NO_SFINAE);
PRINT_MACRO(BOOST_NO_SFINAE_EXPR);
PRINT_MACRO(BOOST_NO_STATIC_ASSERT);
PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
PRINT_MACRO(BOOST_NO_STD_ALLOCATOR);
@@ -1073,6 +1079,11 @@ void print_boost_macros()
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Thu May 21 11:08:48 2009
// This file was automatically generated on Fri Jun 04 12:51:35 2010
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -112,6 +112,11 @@ namespace boost_no_0x_hdr_thread = empty_boost;
#else
namespace boost_no_0x_hdr_tuple = empty_boost;
#endif
#ifndef BOOST_NO_0X_HDR_TYPEINDEX
#include "boost_no_0x_hdr_typeindex.ipp"
#else
namespace boost_no_0x_hdr_typeindex = empty_boost;
#endif
#ifndef BOOST_NO_0X_HDR_TYPE_TRAITS
#include "boost_no_0x_hdr_type_traits.ipp"
#else
@@ -172,6 +177,11 @@ namespace boost_no_char16_t = empty_boost;
#else
namespace boost_no_char32_t = empty_boost;
#endif
#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#include "boost_no_com_value_init.ipp"
#else
namespace boost_no_complete_value_initialization = empty_boost;
#endif
#ifndef BOOST_NO_CONCEPTS
#include "boost_no_concepts.ipp"
#else
@@ -262,6 +272,11 @@ namespace boost_no_explicit_function_template_arguments = empty_boost;
#else
namespace boost_no_extern_template = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
namespace boost_no_function_template_default_args = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
#include "boost_no_function_type_spec.ipp"
#else
@@ -427,6 +442,11 @@ namespace boost_no_scoped_enums = empty_boost;
#else
namespace boost_no_sfinae = empty_boost;
#endif
#ifndef BOOST_NO_SFINAE_EXPR
#include "boost_no_sfinae_expr.ipp"
#else
namespace boost_no_sfinae_expr = empty_boost;
#endif
#ifndef BOOST_NO_STRINGSTREAM
#include "boost_no_sstream.ipp"
#else
@@ -1181,6 +1201,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_0X_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_0x_hdr_typeindex::test())
{
std::cerr << "Failed test for BOOST_NO_0X_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_0x_hdr_type_traits::test())
{
std::cerr << "Failed test for BOOST_NO_0X_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1241,6 +1266,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CHAR32_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_complete_value_initialization::test())
{
std::cerr << "Failed test for BOOST_NO_COMPLETE_VALUE_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_concepts::test())
{
std::cerr << "Failed test for BOOST_NO_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1331,6 +1361,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_template_default_args::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_type_specializations::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1496,6 +1531,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_SFINAE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_sfinae_expr::test())
{
std::cerr << "Failed test for BOOST_NO_SFINAE_EXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_stringstream::test())
{
std::cerr << "Failed test for BOOST_NO_STRINGSTREAM at: " << __FILE__ << ":" << __LINE__ << std::endl;

View File

@@ -14,3 +14,6 @@ lib link_test : link_test.cpp
debug release
;
run main.cpp link_test : : : <define>BOOST_DYN_LINK=1 <define>BOOST_CONFIG_NO_LIB <link>shared <runtime-link>shared <threading>single : link_test_test ;

View File

@@ -9,6 +9,8 @@
#define BOOST_CONFIG_SOURCE
#include "link_test.hpp"
#include <iostream>
#include <iomanip>
bool BOOST_CONFIG_DECL check_options(
bool m_dyn_link,
@@ -17,10 +19,36 @@ bool BOOST_CONFIG_DECL check_options(
bool m_debug,
bool m_stlp_debug)
{
return (m_dyn_link == dyn_link)
&& (m_dyn_rtl == dyn_rtl)
&& (m_has_threads == has_threads)
&& (m_debug == debug)
&& (m_stlp_debug == stl_debug);
if(m_dyn_link != dyn_link)
{
std::cout << "Dynamic link options do not match" << std::endl;
std::cout << "Application setting = " << m_dyn_link << " Library setting = " << dyn_link << std::endl;
return false;
}
if(m_dyn_rtl != dyn_rtl)
{
std::cout << "Runtime library options do not match" << std::endl;
std::cout << "Application setting = " << m_dyn_rtl << " Library setting = " << dyn_rtl << std::endl;
return false;
}
if(m_has_threads != has_threads)
{
std::cout << "Threading options do not match" << std::endl;
std::cout << "Application setting = " << m_has_threads << " Library setting = " << has_threads << std::endl;
return false;
}
if(m_debug != debug)
{
std::cout << "Debug options do not match" << std::endl;
std::cout << "Application setting = " << m_debug << " Library setting = " << debug << std::endl;
return false;
}
if(m_stlp_debug != stl_debug)
{
std::cout << "STLPort debug options do not match" << std::endl;
std::cout << "Application setting = " << m_stlp_debug << " Library setting = " << stl_debug << std::endl;
return false;
}
return true;
}

View File

@@ -44,11 +44,11 @@ static const bool stl_debug = false;
//
// set up import and export options:
//
#if defined(BOOST_HAS_DECLSPEC) && defined(BOOST_DYN_LINK)
#if defined(BOOST_DYN_LINK)
# ifdef BOOST_CONFIG_SOURCE
# define BOOST_CONFIG_DECL __declspec(dllexport)
# define BOOST_CONFIG_DECL BOOST_SYMBOL_EXPORT
# else
# define BOOST_CONFIG_DECL __declspec(dllimport)
# define BOOST_CONFIG_DECL BOOST_SYMBOL_IMPORT
# endif
#endif
#ifndef BOOST_CONFIG_DECL
@@ -73,5 +73,36 @@ bool BOOST_CONFIG_DECL check_options(
# include <boost/config/auto_link.hpp>
#endif
#ifndef BOOST_NO_EXTERN_TEMPLATE
template <class T>
T test_free_proc(T v)
{
return v;
}
template <class T>
struct tester
{
static int test();
};
template <class T>
int tester<T>::test()
{
return 0;
}
#ifdef BOOST_CONFIG_SOURCE
template BOOST_SYMBOL_EXPORT int test_free_proc<int>(int);
template BOOST_SYMBOL_EXPORT int tester<int>::test();
#else
extern template BOOST_SYMBOL_IMPORT int test_free_proc<int>(int);
extern template BOOST_SYMBOL_IMPORT int tester<int>::test();
#endif
#endif // BOOST_NO_EXTERN_TEMPLATE
#endif // BOOST_LINK_TEST_HPP

View File

@@ -9,6 +9,10 @@
int main()
{
#ifndef BOOST_NO_EXTERN_TEMPLATE
test_free_proc<int>(0);
tester<int>::test();
#endif
return check_options(dyn_link, dyn_rtl, has_threads, debug, stl_debug) ? 0 : -1;
}

View File

@@ -69,13 +69,14 @@ autolink-lib link_test : ../link_test.cpp
:
;
explicit link_test ;
run ../main.cpp link_test
: : : <toolset>msvc-8.0:<build>no <link>static <runtime-link>static <threading>single debug : link_test_ssd ;
: : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single debug : link_test_ssd ;
run ../main.cpp link_test
: : : <toolset>msvc-8.0:<build>no <link>static <runtime-link>static <threading>single release : link_test_ssr ;
: : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single release : link_test_ssr ;
run ../main.cpp link_test
: : : <link>static <runtime-link>static <threading>multi debug : link_test_smd ;
@@ -113,3 +114,4 @@ run ../main.cpp link_test

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Jun 04 12:51:34 2010
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
//
// Test file for macro BOOST_NO_0X_HDR_TYPEINDEX
// This file should not compile, if it does then
// BOOST_NO_0X_HDR_TYPEINDEX should not be defined.
// See file boost_no_0x_hdr_typeindex.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_0X_HDR_TYPEINDEX
#include "boost_no_0x_hdr_typeindex.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_0x_hdr_typeindex::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Jun 04 12:51:34 2010
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
//
// Test file for macro BOOST_NO_0X_HDR_TYPEINDEX
// This file should compile, if it does not then
// BOOST_NO_0X_HDR_TYPEINDEX should be defined.
// See file boost_no_0x_hdr_typeindex.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_0X_HDR_TYPEINDEX
#include "boost_no_0x_hdr_typeindex.ipp"
#else
namespace boost_no_0x_hdr_typeindex = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_0x_hdr_typeindex::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Apr 09 12:24:53 2010
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
//
// Test file for macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION
// This file should not compile, if it does then
// BOOST_NO_COMPLETE_VALUE_INITIALIZATION should not be defined.
// See file boost_no_com_value_init.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#include "boost_no_com_value_init.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_complete_value_initialization::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Apr 09 12:24:53 2010
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
//
// Test file for macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION
// This file should compile, if it does not then
// BOOST_NO_COMPLETE_VALUE_INITIALIZATION should be defined.
// See file boost_no_com_value_init.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#include "boost_no_com_value_init.ipp"
#else
namespace boost_no_complete_value_initialization = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_complete_value_initialization::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sun Aug 02 08:25:59 2009
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id$
//
// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
// This file should not compile, if it does then
// BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS should not be defined.
// See file boost_no_function_template_default_args.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_function_template_default_args::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sun Aug 02 08:25:59 2009
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id$
//
// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
// This file should compile, if it does not then
// BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS should be defined.
// See file boost_no_function_template_default_args.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
namespace boost_no_function_template_default_args = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_function_template_default_args::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sun Aug 02 08:25:59 2009
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id$
//
// Test file for macro BOOST_NO_SFINAE_EXPR
// This file should not compile, if it does then
// BOOST_NO_SFINAE_EXPR should not be defined.
// See file boost_no_sfinae_expr.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_SFINAE_EXPR
#include "boost_no_sfinae_expr.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_sfinae_expr::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Sun Aug 02 08:25:59 2009
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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.//
// Revision $Id$
//
// Test file for macro BOOST_NO_SFINAE_EXPR
// This file should compile, if it does not then
// BOOST_NO_SFINAE_EXPR should be defined.
// See file boost_no_sfinae_expr.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_SFINAE_EXPR
#include "boost_no_sfinae_expr.ipp"
#else
namespace boost_no_sfinae_expr = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_sfinae_expr::test();
}