Merge changes from Trunk.

Fixes #6013.
Fixes #7151.
Fixes #7359.
Fixes #7389.
Fixes #7452.
Fixes #7528.
Fixes #7703.
Fixes #7841.
Fixes #7898.
Fixes #7938.
Fixes #8048.

[SVN r83139]
This commit is contained in:
John Maddock
2013-02-24 19:07:59 +00:00
parent d6a0e39484
commit d4c041fbcc
37 changed files with 602 additions and 171 deletions

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">
@ -21,7 +21,7 @@
<div class="spirit-nav">
<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">
<div class="section boost_config_acknowledgements">
<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>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost Macro Reference</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="../index.html" title="Boost.Config">
@ -22,7 +22,7 @@
<div class="spirit-nav">
<a accesskey="p" href="../index.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="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.boost_macro_reference"></a><a class="link" href="boost_macro_reference.html" title="Boost Macro Reference">Boost Macro Reference</a>
</h2></div></div></div>
@ -46,7 +46,7 @@
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_that_describe_c__03_defects">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__03_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects" title="Macros that describe C++03 defects">Macros
that describe C++03 defects</a>
@ -93,7 +93,7 @@
</td>
<td>
<p>
The compiler exibits certain partial specialisation bug - probably
The compiler exhibits certain partial specialisation bug - probably
Borland C++ Builder specific.
</p>
</td>
@ -1338,7 +1338,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_that_describe_optional_features">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_optional_features"></a><a name="config_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features" title="Macros that describe optional features">Macros
that describe optional features</a>
@ -1832,6 +1832,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">array</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_ARRAY.
</p>
</td>
</tr>
@ -1884,7 +1887,9 @@
</td>
<td>
<p>
The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1901,7 +1906,9 @@
</td>
<td>
<p>
The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1918,7 +1925,9 @@
</td>
<td>
<p>
The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1935,7 +1944,9 @@
</td>
<td>
<p>
The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1952,7 +1963,9 @@
</td>
<td>
<p>
The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1969,7 +1982,9 @@
</td>
<td>
<p>
The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1988,6 +2003,9 @@
<p>
The library has a TR1 conforming <code class="computeroutput"><span class="identifier">shared_ptr</span></code>
class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_SMART_PTR.
</p>
</td>
</tr>
@ -2005,6 +2023,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">random</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_RANDOM.
</p>
</td>
</tr>
@ -2022,6 +2043,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">regex</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_REGEX.
</p>
</td>
</tr>
@ -2039,6 +2063,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tuple</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@ -2056,6 +2083,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
</p>
</td>
</tr>
@ -2074,6 +2104,9 @@
<p>
The library has the TR1 additions to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>
(tuple interface to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>).
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@ -2091,6 +2124,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_map</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
</p>
</td>
</tr>
@ -2108,6 +2144,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_set</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
</p>
</td>
</tr>
@ -2267,7 +2306,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_that_describe_possible_c___future_features">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
that describe possible C++ future features</a>
@ -2307,7 +2346,7 @@
</tr></tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_that_describe_c__11_features_not_supported">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
that describe C++11 features not supported</a>
@ -2961,7 +3000,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_that_allow_use_of_c__11_features_with_c__03_compilers">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers"></a><a name="config_11_for_03"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers" title="Macros that allow use of C++11 features with C++03 compilers">Macros
that allow use of C++11 features with C++03 compilers</a>
@ -3063,6 +3102,7 @@
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOEXCEPT</span>
<span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span>
<span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
<span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span>
</pre>
@ -3071,7 +3111,7 @@
</td>
<td>
<p>
If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
is defined (i.e. C++03 compliant compilers) these macros are defined
as:
</p>
@ -3079,6 +3119,7 @@
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="keyword">throw</span><span class="special">()</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="keyword">false</span>
</pre>
@ -3086,7 +3127,7 @@
</p>
</blockquote></div>
<p>
If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
is not defined (i.e. C++11 compliant compilers) they are defined
as:
</p>
@ -3094,6 +3135,7 @@
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="identifier">noexcept</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="identifier">noexcept</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
</pre>
@ -3102,10 +3144,29 @@
</blockquote></div>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_MSVC_ENABLE_2012_NOV_CTP</span></code>
</p>
</td>
<td>
<p>
For Microsoft Visual C++ 2012, enable the C++11 features supplied
by the November 2012 Community Technology Preview. These features
are not automatically enabled because the CTP is non-supported
alpha code that is not recommended for production use. This macro
must be defined before including any Boost headers, and must be
defined for all translation units in the program, including Boost
library builds. This macro will no longer have any effect once
an official Microsoft release supports the CTP features.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_boost_helper_macros">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
Helper Macros</a>
@ -3501,7 +3562,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_boost_informational_macros">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_informational_macros"></a><a name="config_info_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros" title="Boost Informational Macros">Boost
Informational Macros</a>
@ -3634,6 +3695,29 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_GCC</span></code>
</p>
</td>
<td>
<p>
<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>
</p>
</td>
<td>
<p>
Defined if the compiler is really GCC, as opposed to one of the
many other compilers that also define <code class="computeroutput"><span class="identifier">__GNUC__</span></code>.
Has the value: <code class="computeroutput"><span class="identifier">__GNUC__</span>
<span class="special">*</span> <span class="number">10000</span>
<span class="special">+</span> <span class="identifier">__GNUC_MINOR__</span>
<span class="special">*</span> <span class="number">100</span>
<span class="special">+</span> <span class="identifier">__GNUC_PATCHLEVEL__</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code>
@ -3779,7 +3863,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_boost_deprecated_macros">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_deprecated_macros"></a><a name="deprecated_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_deprecated_macros" title="Boost Deprecated Macros">Boost
Deprecated Macros</a>
@ -4834,7 +4918,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code" title="Macros for libraries with separate source code">Macros
for libraries with separate source code</a>
@ -4851,7 +4935,7 @@
The following macros and helper headers are of use to authors whose libraries
include separate source code, and are intended to address several issues:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Controlling shared library symbol visibility
</li>
@ -4867,7 +4951,7 @@
See <a href="http://svn.boost.org/trac/boost/wiki/Guidelines/Separate" target="_top">Guidelines
for Authors of Boost Libraries Containing Separate Source</a>
</p>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_macros_controlling_shared_library_symbol_visibility">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility" title="Macros controlling shared library symbol visibility">Macros
controlling shared library symbol visibility</a>
@ -5022,7 +5106,7 @@
<span class="special">...</span>
</pre>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_abi_fixing">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing" title="ABI Fixing">ABI
Fixing</a>
@ -5080,7 +5164,7 @@
to point to their own prefix/suffix headers if they so wish.
</p>
</div>
<div class="section">
<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_automatic_library_selection">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection" title="Automatic library selection">Automatic
library selection</a>
@ -5107,7 +5191,7 @@
</p>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dl class="variablelist">
<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_NAME</span></code></span></dt>
<dd><p>
Required: An identifier containing the basename of the library, for

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
@ -22,7 +22,7 @@
<div class="spirit-nav">
<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">
<div class="section boost_config_guidelines_for_boost_authors">
<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,7 +61,7 @@
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-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
@ -103,7 +103,7 @@
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li>
</ul></div>
<div class="section">
<div class="section boost_config_guidelines_for_boost_authors_warnings">
<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,7 +116,7 @@
<p>
Note that:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-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
@ -182,7 +182,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_guidelines_for_boost_authors_adding_new_defect_macros">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a>
@ -233,7 +233,7 @@
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-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>
@ -266,7 +266,7 @@
<p>
Then you should:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Define the defect macro in those config headers that require it.
</li>
@ -285,7 +285,7 @@
</li>
</ul></div>
</div>
<div class="section">
<div class="section boost_config_guidelines_for_boost_authors_adding_new_feature_test_macros">
<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>
@ -309,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">
<div class="section boost_config_guidelines_for_boost_authors_modifying_the_boost_configuration_headers">
<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>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
@ -22,7 +22,7 @@
<div class="spirit-nav">
<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">
<div class="section boost_config_rationale">
<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">
<div class="section boost_config_rationale_the_problem">
<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>
@ -90,7 +90,7 @@
code must be provided.
</p>
</div>
<div class="section">
<div class="section boost_config_rationale_the_solution">
<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>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Config</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="index.html" title="Boost.Config">
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
</head>
@ -97,7 +97,7 @@
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
</dl>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
Boost for Your Platform</a>
@ -116,7 +116,7 @@
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
the boost configuration</a></span></dt>
</dl></div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_using_the_default_boost_configuration">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
the default boost configuration</a>
@ -140,7 +140,7 @@
and submitting a support request.
</p>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_the__boost_config_hpp__header">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The
&lt;boost/config.hpp&gt; header</a>
@ -171,7 +171,7 @@
developers list.
</p>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_using_the_configure_script">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
the configure script</a>
@ -292,7 +292,7 @@
(located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
There are two ways you can use this header:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
provided by boost. This option allows only one configure-generated setup;
@ -313,7 +313,7 @@
</li>
</ul></div>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_user_settable_options">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
settable options</a>
@ -679,7 +679,7 @@
</tbody>
</table></div>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
configuration usage</a>
@ -723,7 +723,7 @@
<p>
The following usage examples represent just a few of the possibilities:
</p>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_1__creating_our_own_frozen_configuration">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1: creating our own frozen configuration">Example
1: creating our own frozen configuration</a>
@ -755,7 +755,7 @@
yet supported by boost.
</p>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_2__skipping_files_that_you_don_t_need">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
2: skipping files that you don't need</a>
@ -774,7 +774,7 @@
a dependency on two boost headers.
</p>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_3__using_configure_script_to_freeze_the_boost_configuration">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
3: using configure script to freeze the boost configuration</a>
@ -787,7 +787,7 @@
</p>
</div>
</div>
<div class="section">
<div class="section boost_config_configuring_boost_for_your_platform_testing_the_boost_configuration">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
the boost configuration</a>
@ -951,7 +951,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: December 28, 2012 at 17:08:34 GMT</small></p></td>
<td align="left"><p><small>Last revised: February 19, 2013 at 16:25:18 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -28,7 +28,7 @@ compiler's conformance with the 2003 standard.
[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][
The compiler exibits certain partial specialisation bug - probably Borland
The compiler exhibits certain partial specialisation bug - probably Borland
C++ Builder specific.
]]
[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][
@ -429,7 +429,9 @@ The standard library lacks a conforming `std::use_facet`, but has a workaround
class-version that does the job. This is primarily for the STLport std lib.
]]
[[`BOOST_HAS_TR1_ARRAY`][Standard library][
The library has a TR1 conforming version of `<array>`.
The library has a TR1 conforming version of `<array>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_ARRAY.
]]
[[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
The library has a version of `<complex>` that supports passing scalars to the
@ -440,46 +442,74 @@ The library has a version of `<complex>` that includes the new inverse trig
functions from TR1.
]]
[[`BOOST_HAS_TR1_REFERENCE_WRAPPER`][Standard library][
The library has TR1 conforming reference wrappers in `<functional>`.
The library has TR1 conforming reference wrappers in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_RESULT_OF`][Standard library][
The library has a TR1 conforming result_of template in `<functional>`.
The library has a TR1 conforming result_of template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_MEM_FN`][Standard library][
The library has a TR1 conforming mem_fn function template in `<functional>`.
The library has a TR1 conforming mem_fn function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_BIND`][Standard library][
The library has a TR1 conforming bind function template in `<functional>`.
The library has a TR1 conforming bind function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_FUNCTION`][Standard library][
The library has a TR1 conforming function class template in `<functional>`.
The library has a TR1 conforming function class template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_HASH`][Standard library][
The library has a TR1 conforming hash function template in `<functional>`.
The library has a TR1 conforming hash function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_SHARED_PTR`][Standard library][
The library has a TR1 conforming `shared_ptr` class template in `<memory>`.
The library has a TR1 conforming `shared_ptr` class template in `<memory>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_SMART_PTR.
]]
[[`BOOST_HAS_TR1_RANDOM`][Standard library][
The library has a TR1 conforming version of `<random>`.
The library has a TR1 conforming version of `<random>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_RANDOM.
]]
[[`BOOST_HAS_TR1_REGEX`][Standard library][
The library has a TR1 conforming version of `<regex>`.
The library has a TR1 conforming version of `<regex>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_REGEX.
]]
[[`BOOST_HAS_TR1_TUPLE`][Standard library][
The library has a TR1 conforming version of `<tuple>`.
The library has a TR1 conforming version of `<tuple>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_TYPE_TRAITS`][Standard library][
The library has a TR1 conforming version of `<type_traits>`.
The library has a TR1 conforming version of `<type_traits>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
]]
[[`BOOST_HAS_TR1_UTILITY`][Standard library][
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`).
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`). This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_UNORDERED_MAP`][Standard library][
The library has a TR1 conforming version of `<unordered_map>`.
The library has a TR1 conforming version of `<unordered_map>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
]]
[[`BOOST_HAS_TR1_UNORDERED_SET`][Standard library][
The library has a TR1 conforming version of `<unordered_set>`.
The library has a TR1 conforming version of `<unordered_set>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
]]
[[`BOOST_HAS_TR1`][Standard library][
Implies all the other `BOOST_HAS_TR1_*` macros should be set.
@ -700,27 +730,39 @@ with:
[[
``
BOOST_NOEXCEPT
BOOST_NOEXCEPT_OR_NOTHROW
BOOST_NOEXCEPT_IF(Predicate)
BOOST_NOEXCEPT_EXPR(Expression)
``
][
If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
If `BOOST_NO_CXX11_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
[:
``
#define BOOST_NOEXCEPT
#define BOOST_NOEXCEPT_OR_NOTHROW throw()
#define BOOST_NOEXCEPT_IF(Predicate)
#define BOOST_NOEXCEPT_EXPR(Expression) false
``
]
If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
If `BOOST_NO_CXX11_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
[:
``
#define BOOST_NOEXCEPT noexcept
#define BOOST_NOEXCEPT_OR_NOTHROW noexcept
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
``
]
]]
[[`BOOST_MSVC_ENABLE_2012_NOV_CTP`][
For Microsoft Visual C++ 2012, enable the C++11 features supplied by the
November 2012 Community Technology Preview. These features are not automatically
enabled because the CTP is non-supported alpha code that is not recommended
for production use. This macro must be defined before including any Boost headers,
and must be defined for all translation units in the program, including Boost library builds.
This macro will no longer have any effect once an official Microsoft
release supports the CTP features.
]]
]
[endsect]
@ -961,6 +1003,11 @@ Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only h
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_GCC`][`<boost/config.hpp>`][
Defined if the compiler is really GCC, as opposed to one
of the many other compilers that also define `__GNUC__`. Has the value:
`__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__`.
]]
[[`BOOST_INTEL`][`<boost/config.hpp>`][
Defined if the compiler is an Intel compiler, takes the same value as the
compiler version macro.

View File

@ -20,7 +20,7 @@
# define BOOST_NO_TYPEID
#endif
#if defined(__int64)
#if defined(__int64) && !defined(__GNUC__)
# define BOOST_HAS_MS_INT64
#endif

View File

@ -11,7 +11,14 @@
// See http://www.boost.org for most recent version.
// GNU C++ compiler setup:
// GNU C++ compiler setup.
//
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
//
#if !defined(__CUDACC__)
#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#if __GNUC__ < 3
# if __GNUC_MINOR__ == 91
@ -147,9 +154,16 @@
#endif
//
// Recent GCC versions have __int128 when in 64-bit mode:
// Recent GCC versions have __int128 when in 64-bit mode.
//
#if defined(__SIZEOF_INT128__)
// We disable this if the compiler is really nvcc as it
// doesn't actually support __int128 as of CUDA_VERSION=5000
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/8048
// Only re-enable this for nvcc if you're absolutely sure
// of the circumstances under which it's supported:
//
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
# define BOOST_HAS_INT128
#endif

View File

@ -53,8 +53,8 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1110:
#if (__IBMCPP__ > 1110)
// last known and checked version is 1210:
#if (__IBMCPP__ > 1210)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif

View File

@ -134,10 +134,6 @@
// (Niels Dekker, LKEB, May 2010)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#if _MSC_VER < 1600 || !defined(BOOST_STRICT_CONFIG) // 150X == VC++ 9.0
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
@ -221,24 +217,31 @@
# define BOOST_NO_CXX11_SCOPED_ENUMS
#endif // _MSC_VER < 1700
// C++0x features not supported by any versions
// C++11 features supported by VC++ 11 (aka 2012) November 2012 CTP
// Because the CTP is unsupported, unrelease, and only alpha quality,
// it is only supported if BOOST_ENABLE_MSVC_2012_NOV_CTP is defined.
//
#if _MSC_FULL_VER < 170051025 || !defined(BOOST_MSVC_ENABLE_2012_NOV_CTP)
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_CXX11_RAW_LITERALS
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#endif
// C++11 features not supported by any versions
#define BOOST_NO_CXX11_CHAR16_T
#define BOOST_NO_CXX11_CHAR32_T
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_RAW_LITERALS
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
#define BOOST_NO_CXX11_UNICODE_LITERALS
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
//
// prefix and suffix headers:
//

View File

@ -1,31 +1,288 @@
// (C) Copyright Dustin Spicuzza 2009.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright Dustin Spicuzza 2009.
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// vxWorks specific config options:
// Since WRS does not yet properly support boost under vxWorks
// and this file was badly outdated, but I was keen on using it,
// I patched boost myself to make things work. This has been tested
// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
// to earlier 6.X versions! The only thing I know for sure is that
// very old versions of vxWorks (namely everything below 6.x) are
// absolutely unable to use boost. This is mainly due to the completely
// outdated libraries and ancient compiler (GCC 2.96 or worse). Do
// not even think of getting this to work, a miserable failure will
// be guaranteed!
// Equally, this file has been tested for RTPs (Real Time Processes)
// only, not for DKMs (Downloadable Kernel Modules). These two types
// of executables differ largely in the available functionality of
// the C-library, STL, and so on. A DKM uses a library similar to those
// of vxWorks 5.X - with all its limitations and incompatibilities
// in respect to ANSI C++ and STL. So probably there might be problems
// with the usage of boost from DKMs. WRS or any voluteers are free to
// prove the opposite!
#define BOOST_PLATFORM "vxWorks"
#define BOOST_NO_CWCHAR
#define BOOST_NO_INTRINSIC_WCHAR_T
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
#define BOOST_NO_INT64_T
// Block out all versions before vxWorks 6.x, as these don't work:
// Include header with the vxWorks version information and query them
#include <version.h>
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
# error "The vxWorks version you're using is so badly outdated,\
it doesn't work at all with boost, sorry, no chance!"
#endif
// Handle versions above 5.X but below 6.9
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
// TODO: Starting from what version does vxWorks work with boost?
// We can't reasonably insert a #warning "" as a user hint here,
// as this will show up with every file including some boost header,
// badly bugging the user... So for the time being we just leave it.
#endif
// vxWorks specific config options:
// --------------------------------
#define BOOST_PLATFORM "vxWorks"
// Special behaviour for DKMs:
#ifdef _WRS_KERNEL
// DKMs do not have the <cwchar>-header,
// but apparently they do have an intrinsic wchar_t meanwhile!
# define BOOST_NO_CWCHAR
// Lots of wide-functions and -headers are unavailable for DKMs as well:
# define BOOST_NO_CWCTYPE
# define BOOST_NO_SWPRINTF
# define BOOST_NO_STD_WSTRING
# define BOOST_NO_STD_WSTREAMBUF
#endif
// Generally available headers:
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_SLIST
// these allow posix_features to work, since vxWorks doesn't
// define them itself
#define _POSIX_TIMERS 1
#define _POSIX_THREADS 1
// vxWorks does not have installed an iconv-library by default,
// so unfortunately no Unicode support from scratch is available!
// Thus, instead it is suggested to switch to ICU, as this seems
// to be the most complete and portable option...
#define BOOST_LOCALE_WITH_ICU
// vxworks doesn't work with asio serial ports
// Generally available functionality:
#define BOOST_HAS_THREADS
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_MACRO_USE_FACET
// Generally unavailable functionality, delivered by boost's test function:
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
#define BOOST_NO_CXX11_VARIADIC_MACROS
// Generally available threading API's:
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_SIGACTION
// Functionality available for RTPs only:
#ifdef __RTP__
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_LOG1P
# define BOOST_HAS_EXPM1
#endif
// Functionality available for DKMs only:
#ifdef _WRS_KERNEL
// Luckily, at the moment there seems to be none!
#endif
// These #defines allow posix_features to work, since vxWorks doesn't
// #define them itself for DKMs (for RTPs on the contrary it does):
#ifdef _WRS_KERNEL
# ifndef _POSIX_TIMERS
# define _POSIX_TIMERS 1
# endif
# ifndef _POSIX_THREADS
# define _POSIX_THREADS 1
# endif
#endif
// vxWorks doesn't work with asio serial ports:
#define BOOST_ASIO_DISABLE_SERIAL_PORT
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
// ways to handle serial ports, incompatible with POSIX or anything...
// Maybe a specific implementation would be possible, but until the
// straight need arises... This implementation would presumably consist
// of some vxWorks specific ioctl-calls, etc. Any voluteers?
// boilerplate code:
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
// miserably fails to #include the required <sysLib.h> to make
// sysClkRateGet() available! So we manually include it here.
#ifdef __RTP__
# include <time.h>
# include <sysLib.h>
#endif
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
// UINT64_C() are defined errorneously, yielding not a signed/
// unsigned long/long long type, but a signed/unsigned int/long
// type. Eventually this leads to compile errors in ratio_fwd.hpp,
// when trying to define several constants which do not fit into a
// long type! We correct them here by redefining.
#include <cstdint>
// Some macro-magic to do the job
#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
#define VX_DO_JOIN2(X, Y) X##Y
// Correctly setup the macros
#undef INT32_C
#undef UINT32_C
#undef INT64_C
#undef UINT64_C
#define INT32_C(x) VX_JOIN(x, L)
#define UINT32_C(x) VX_JOIN(x, UL)
#define INT64_C(x) VX_JOIN(x, LL)
#define UINT64_C(x) VX_JOIN(x, ULL)
// #include Libraries required for the following function adaption
#include <ioLib.h>
#include <tickLib.h>
#include <sys/time.h>
// Use C-linkage for the following helper functions
extern "C" {
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
// But we have the similar functions getprlimit() and setprlimit(),
// which may serve the purpose.
// Problem: The vxWorks-documentation regarding these functions
// doesn't deserve its name! It isn't documented what the first two
// parameters idtype and id mean, so we must fall back to an educated
// guess - null, argh... :-/
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
// Thus for DKMs there would have to be another implementation.
#ifdef __RTP__
inline int getrlimit(int resource, struct rlimit *rlp){
return getprlimit(0, 0, resource, rlp);
}
inline int setrlimit(int resource, const struct rlimit *rlp){
return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
}
#endif
// vxWorks has ftruncate() only, so we do simulate truncate():
inline int truncate(const char *p, off_t l){
int fd = open(p, O_WRONLY);
if (fd == -1){
errno = EACCES;
return -1;
}
if (ftruncate(fd, l) == -1){
close(fd);
errno = EACCES;
return -1;
}
return close(fd);
}
// Fake symlink handling by dummy functions:
inline int symlink(const char*, const char*){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
inline ssize_t readlink(const char*, char*, size_t){
// vxWorks has no symlinks -> always return an error!
errno = EACCES;
return -1;
}
// vxWorks claims to implement gettimeofday in sys/time.h
// but nevertheless does not provide it! See
// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
// We implement a surrogate version here via clock_gettime:
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
tv->tv_sec = ts.tv_sec;
tv->tv_usec = ts.tv_nsec / 1000;
return 0;
}
// vxWorks does provide neither struct tms nor function times()!
// We implement an empty dummy-function, simply setting the user
// and system time to the half of thew actual system ticks-value
// and the child user and system time to 0.
// Rather ugly but at least it suppresses compiler errors...
// Unfortunately, this of course *does* have an severe impact on
// dependant libraries, actually this is chrono only! Here it will
// not be possible to correctly use user and system times! But
// as vxWorks is lacking the ability to calculate user and system
// process times there seems to be no other possible solution.
struct tms{
clock_t tms_utime; // User CPU time
clock_t tms_stime; // System CPU time
clock_t tms_cutime; // User CPU time of terminated child processes
clock_t tms_cstime; // System CPU time of terminated child processes
};
inline clock_t times(struct tms *t){
struct timespec ts;
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
t->tms_utime = ticks/2U;
t->tms_stime = ticks/2U;
t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
t->tms_cstime = 0; // -> Set the wait times for childs to 0
return ticks;
}
} // extern "C"
// Put the selfmade functions into the std-namespace, just in case
namespace std {
# ifdef __RTP__
using ::getrlimit;
using ::setrlimit;
# endif
using ::truncate;
using ::symlink;
using ::readlink;
using ::times;
using ::gettimeofday;
}
// Some more macro-magic:
// vxWorks-around: Some functions are not present or broken in vxWorks
// but may be patched to life via helper macros...
// Include signal.h which might contain a typo to be corrected here
#include <signal.h>
#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
#ifndef S_ISSOCK
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
#endif
#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks!
#ifndef FPE_FLTINV
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
#endif
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
#endif
//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks!
// #include boilerplate code:
#include <boost/config/posix_features.hpp>
// vxWorks lies about XSI conformance, there is no nl_types.h:
#undef BOOST_HAS_NL_TYPES_H

View File

@ -33,7 +33,9 @@
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
# define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS
# ifndef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
# endif
# define BOOST_HAS_DIRENT_H
# define BOOST_HAS_UNISTD_H
#endif

View File

@ -33,6 +33,10 @@
// PathScale EKOPath compiler (has to come before clang and gcc)
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
#elif defined __clang__
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
@ -41,10 +45,6 @@
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
// Intel
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
# elif defined __GNUC__
// GNU C++:
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"

View File

@ -87,7 +87,7 @@
#endif
#include <typeinfo>
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
# define BOOST_NO_STD_TYPEINFO
#endif

View File

@ -874,10 +874,12 @@ namespace std{ using ::type_info; }
//
#ifdef BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NOEXCEPT
# define BOOST_NOEXCEPT_OR_NOTHROW throw()
# define BOOST_NOEXCEPT_IF(Predicate)
# define BOOST_NOEXCEPT_EXPR(Expression) false
#else
# define BOOST_NOEXCEPT noexcept
# define BOOST_NOEXCEPT_OR_NOTHROW noexcept
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
#endif

View File

@ -1,13 +1,19 @@
#
# Copyright John Maddock 2008.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# 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 you need to alter build preferences then set them in
# the template defined in options_v2.jam.
#
project
: requirements
<toolset>gcc:<cxxflags>-Wno-deprecated-declarations
;
import modules ;
local is_unix = [ modules.peek : UNIX ] ;
@ -24,20 +30,20 @@ if $(is_unix)
}
test-suite config
:
:
[ compile config_test_c.c ]
[ run config_test.cpp
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>multi
: config_test_threaded
]
[ run config_test.cpp
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -13,10 +13,11 @@
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# ifdef BOOST_NO_CXX11_STD_UNORDERED
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define _BACKWARD_BACKWARD_WARNING_H 1 /* turn off warnings from the headers below */
# include <ext/hash_set>
# include <ext/hash_map>
# else
// If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must
// If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must
// not include the <ext/*> headers as they clash with the C++0x
// headers. ie in any given translation unit we can include one
// or the other, but not both.

View File

@ -1,7 +1,7 @@
// (C) Copyright Terje Slettebo 2001.
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -18,7 +18,7 @@ class test_class
{
public:
test_class() {}
test_class(const test_class &other)
test_class(const test_class&)
{
++copy_count;
}

View File

@ -11,7 +11,7 @@
namespace boost_no_cxx11_auto_declarations {
void check_f(int& x)
void check_f(int&)
{
}

View File

@ -11,7 +11,7 @@
namespace boost_no_cxx11_auto_multideclarations {
void check_f(int& x, int*& y)
void check_f(int&, int*&)
{
}

View File

@ -24,8 +24,8 @@ void f(const unsigned long*){}
int test()
{
const char16_t* p;
f(p);
const char16_t p(0);
f(&p);
return 0;
}

View File

@ -23,8 +23,8 @@ void f(const unsigned long*){}
int test()
{
const char32_t* p;
f(p);
const char32_t p(0);
f(&p);
return 0;
}

View File

@ -17,6 +17,7 @@ namespace boost_no_cxx11_allocator {
int test()
{
std::pointer_traits<char*>* p = 0;
(void) p;
//std::pointer_safety s = std::relaxed;
//char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable;
@ -28,6 +29,9 @@ int test()
std::uses_allocator<int, std::allocator<int> > ua;
std::allocator_traits<std::allocator<int> > at;
(void)aat;
(void)ua;
(void)at;
return 0;
}

View File

@ -16,7 +16,7 @@ namespace boost_no_cxx11_hdr_array {
int test()
{
std::array<int, 3> a = { 1, 2, 3 };
std::array<int, 3> a = {{ 1, 2, 3 }};
return a.size() == 3 ? 0 : 1;
}

View File

@ -14,7 +14,7 @@
namespace boost_no_cxx11_hdr_initializer_list {
void foo(const std::initializer_list<const char*>& l)
void foo(const std::initializer_list<const char*>&)
{
}

View File

@ -26,6 +26,9 @@ int test()
std::hash<std::shared_ptr<int> > h1;
std::hash<std::unique_ptr<int> > h2;
(void)h1;
(void)h2;
return 0;
}

View File

@ -40,11 +40,11 @@ void baz(F f)
int test()
{
int i;
decltype(i) j;
// quiet_warning(j);
decltype(i) j(0);
quiet_warning(j);
decltype(get_test_class()) k;
#ifndef _MSC_VER
// Although the VC++ decltype is buggy, we none the less enable support,
#ifndef _MSC_VER
// Although the VC++ decltype is buggy, we none the less enable support,
// so don't test the bugs for now!
baz(get_test_class);
#endif

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock and Dave Abrahams 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock and Dave Abrahams 2002.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -46,7 +46,7 @@ struct abstract{ virtual void foo() = 0; };
int test()
{
return is_abstract_test<non_abstract>::value == is_abstract_test<abstract>::value;
return static_cast<bool>(is_abstract_test<non_abstract>::value) == static_cast<bool>(is_abstract_test<abstract>::value);
}
}

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -35,7 +35,7 @@ protected:
private:
parser_buf& operator=(const parser_buf&)
{ return *this; };
parser_buf(const parser_buf&){};
parser_buf(const parser_buf&);
};
template<class charT, class traits>
@ -56,7 +56,7 @@ parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, :
int size = this->egptr() - this->eback();
int pos = this->gptr() - this->eback();
charT* g = this->eback();
switch(way)
switch((int)way)
{
case ::std::ios_base::beg:
if((off < 0) || (off > size))

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -29,12 +29,12 @@ int test()
{
char c = 0;
#ifndef BOOST_NO_CTYPE_FUNCTIONS
std::isspace(c);
std::isalpha(c);
std::ispunct(c);
(void)std::isspace(c);
(void)std::isalpha(c);
(void)std::ispunct(c);
#endif
(void)std::strlen(&c);
std::clock();
(void)std::clock();
return 0;
}

View File

@ -19,7 +19,7 @@
namespace boost_no_cxx11_local_class_template_parameters {
template<typename T> struct a { void use() {} };
template<typename T> void f(T x) {}
template<typename T> void f(T) {}
int test() {
class local_class {} local_obj;

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2008.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2008.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -17,6 +17,7 @@ namespace boost_no_templated_iostreams{
int test()
{
std::basic_ostream<char, std::char_traits<char> >& osr = std::cout;
(void)osr;
return 0;
}

View File

@ -16,7 +16,7 @@ namespace boost_no_typeid
int test()
{
typeid(int);
(void)typeid(int);
return 0;
}

View File

@ -26,6 +26,7 @@ typename T::type f() {
int test() {
A a = f<B<A> >();
(void)a;
return 0;
}

View File

@ -12,7 +12,8 @@
namespace boost_no_cxx11_unicode_literals {
void quiet_warning(const char*){}
template <class CharT>
void quiet_warning(const CharT*){}
int test()
{
@ -20,6 +21,8 @@ int test()
const char16_t* c16 = u"";
const char32_t* c32 = U"";
quiet_warning(c8);
quiet_warning(c16);
quiet_warning(c32);
return 0;
}

View File

@ -13,13 +13,13 @@
namespace boost_no_cxx11_unified_initialization_syntax {
struct BasicStruct
struct BasicStruct
{
int x;
double y;
};
struct AltStruct
struct AltStruct
{
public:
AltStruct(int x, double y) : x_{x}, y_{y} {}
@ -27,8 +27,8 @@ private:
int x_;
double y_;
};
struct IdString
struct IdString
{
std::string name;
int identifier;
@ -37,7 +37,7 @@ struct IdString
return identifier == other.identifier && name == other.name;
}
};
IdString get_string()
{
return {"SomeName", 4}; //Note the lack of explicit type.
@ -47,6 +47,8 @@ int test()
{
BasicStruct var1{5, 3.2};
AltStruct var2{2, 4.3};
(void) var1;
(void) var2;
IdString id{"SomeName", 4};
return id == get_string() ? 0 : 1;

View File

@ -1,6 +1,6 @@
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@ -40,7 +40,7 @@ namespace user_ns
{ return 0; }
template <class T>
int f(T x)
int f(T x)
{
// use this as a workaround:
//using namespace boost;
@ -60,6 +60,7 @@ int test()
typedef void* pv;
i = user_ns::f(pv());
i = user_ns::f(boost_ns::inner2::X<int>());
(void)i;
return 0;
}