mirror of
https://github.com/boostorg/config.git
synced 2025-07-30 04:17:16 +02:00
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:
@ -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>
|
||||
|
@ -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"><</span><span class="identifier">array</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">functional</span><span class="special">></span></code>.
|
||||
The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special"><</span><span class="identifier">functional</span><span class="special">></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"><</span><span class="identifier">memory</span><span class="special">></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"><</span><span class="identifier">random</span><span class="special">></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"><</span><span class="identifier">regex</span><span class="special">></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"><</span><span class="identifier">tuple</span><span class="special">></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"><</span><span class="identifier">type_traits</span><span class="special">></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"><</span><span class="identifier">utility</span><span class="special">></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"><</span><span class="identifier">unordered_map</span><span class="special">></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"><</span><span class="identifier">unordered_set</span><span class="special">></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"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</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
|
||||
|
@ -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"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>", and are not required in any
|
||||
@ -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"><</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>).
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<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>
|
||||
|
@ -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>
|
||||
|
@ -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 <boost/config.hpp> header">The
|
||||
<boost/config.hpp> 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><boost-root></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><boost-root></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>
|
||||
|
@ -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.
|
||||
|
@ -20,7 +20,7 @@
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#if defined(__int64)
|
||||
#if defined(__int64) && !defined(__GNUC__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
//
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
namespace boost_no_cxx11_auto_declarations {
|
||||
|
||||
void check_f(int& x)
|
||||
void check_f(int&)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
namespace boost_no_cxx11_auto_multideclarations {
|
||||
|
||||
void check_f(int& x, int*& y)
|
||||
void check_f(int&, int*&)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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*>&)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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))
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ namespace boost_no_typeid
|
||||
|
||||
int test()
|
||||
{
|
||||
typeid(int);
|
||||
(void)typeid(int);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ typename T::type f() {
|
||||
|
||||
int test() {
|
||||
A a = f<B<A> >();
|
||||
(void)a;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user