forked from boostorg/config
Compare commits
13 Commits
boost-1.53
...
boost-1.55
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc54a0d743 | ||
|
|
19d3287bf6 | ||
|
|
0a34d7b07e | ||
|
|
806db13db7 | ||
|
|
12fccda6e6 | ||
|
|
abe73ce723 | ||
|
|
36502dd372 | ||
|
|
1bc3e46574 | ||
|
|
d8973bac08 | ||
|
|
5925c5a12e | ||
|
|
dc806c09b2 | ||
|
|
d4c041fbcc | ||
|
|
d6a0e39484 |
@@ -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.78.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">
|
||||
|
||||
@@ -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.78.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">
|
||||
@@ -26,7 +26,7 @@
|
||||
<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>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
|
||||
that describe C++03 defects</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
|
||||
@@ -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>
|
||||
@@ -392,24 +392,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Can only use deduced template arguments when calling function template
|
||||
instantiations.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span></code>
|
||||
@@ -574,9 +556,9 @@
|
||||
<span class="identifier">max_digits10</span></code> the number
|
||||
of decimal digits that are required to make sure that two distinct
|
||||
values of the type have distinct decimal representations. <code class="computeroutput"><span class="keyword">template</span><span class="special"><></span>
|
||||
<span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">char16_t</span><span class="special">>;</span></code>, see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>,
|
||||
<span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">char16_t</span><span class="special">>;</span></code>, see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>,
|
||||
<code class="computeroutput"><span class="keyword">template</span><span class="special"><></span>
|
||||
<span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">char32_t</span><span class="special">>;</span></code> see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>.
|
||||
<span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">char32_t</span><span class="special">>;</span></code> see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>.
|
||||
Replaces BOOST_NO_NUMERIC_LIMITS_LOWEST.
|
||||
</p>
|
||||
</td>
|
||||
@@ -1660,6 +1642,27 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_PRAGMA_ONCE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler recognizes the <code class="computeroutput"><span class="preprocessor">#pragma</span>
|
||||
<span class="identifier">once</span></code> directive which
|
||||
tells that the containing header should be included only once while
|
||||
preprocessing the current translation unit. The pragma may improve
|
||||
compile times of large projects with some compilers.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_DELAY_NP</span></code>
|
||||
@@ -1832,6 +1835,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 +1890,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 +1909,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 +1928,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 +1947,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 +1966,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 +1985,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 +2006,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 +2026,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 +2046,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 +2066,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 +2086,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 +2107,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 +2127,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 +2147,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>
|
||||
@@ -2335,6 +2377,19 @@
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALIGNAS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the <code class="computeroutput"><span class="keyword">alignas</span></code>
|
||||
keyword.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALLOCATOR</span></code>
|
||||
@@ -2589,6 +2644,18 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_INLINE_NAMESPACES</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support inline namespaces.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
|
||||
@@ -2641,7 +2708,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="identifier">char16_t</span></code>.
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2653,7 +2720,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="identifier">char32_t</span></code>.
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2677,7 +2744,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">constexpr</span></code>.
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2689,7 +2756,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">decltype</span></code>.
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2701,7 +2768,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the extension to <code class="computeroutput"><span class="identifier">decltype</span></code>
|
||||
The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
|
||||
described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
|
||||
accepted in Madrid, March 2011.
|
||||
</p>
|
||||
@@ -2819,7 +2886,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">noexcept</span></code>.
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">noexcept</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2831,7 +2898,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">nullptr</span></code>.
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">nullptr</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2891,7 +2958,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">static_assert</span></code>.
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">static_assert</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2909,6 +2976,20 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TRAILING_RESULT_TYPES</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the new function result type specification
|
||||
syntax (e.g. <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span>
|
||||
<span class="special">-></span> <span class="identifier">T</span><span class="special">;</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNICODE_LITERALS</span></code>
|
||||
@@ -2935,6 +3016,18 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_USER_DEFINED_LITERALS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support user defined literals.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_TEMPLATES</span></code>
|
||||
@@ -2989,6 +3082,36 @@
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">BOOST_NO_ALIGNMENT</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Some compilers don't support the <code class="computeroutput"><span class="keyword">alignas</span></code>
|
||||
keyword but provide other means to specify alignment (usually,
|
||||
through compiler-specific attributes). The macro <code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
|
||||
will expand to the <code class="computeroutput"><span class="keyword">alignas</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code> keyword if the compiler supports
|
||||
it or to some compiler-specific attribute to achieve the specified
|
||||
alignment. If no such compiler-specific attribute is known then
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code> will expand to nothing and <code class="computeroutput"><span class="identifier">BOOST_NO_ALIGNMENT</span></code> will be defined.
|
||||
Unlike native <code class="computeroutput"><span class="keyword">alignas</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">X</span></code> must always be
|
||||
a compile-time integer constant. The macro can be used to specify
|
||||
alignment of types and data:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="identifier">my_data</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">char</span> <span class="identifier">c</span><span class="special">[</span><span class="number">16</span><span class="special">];</span>
|
||||
<span class="special">};</span>
|
||||
<span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="number">8</span><span class="special">)</span> <span class="keyword">int</span> <span class="identifier">arr</span><span class="special">[</span><span class="number">32</span><span class="special">];</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
|
||||
@@ -2996,11 +3119,11 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
|
||||
This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="keyword">constexpr</span></code>.
|
||||
This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="keyword">constexpr</span></code> elsewhere. For example,
|
||||
when defining a constexpr function or constructor replace:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
|
||||
</pre>
|
||||
<p>
|
||||
with:
|
||||
@@ -3019,12 +3142,12 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="keyword">constexpr</span></code>.
|
||||
This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
|
||||
on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
|
||||
on those compilers, and <code class="computeroutput"><span class="keyword">constexpr</span></code>
|
||||
elsewhere. For example, when defining const expr variables replace:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
with:
|
||||
@@ -3047,7 +3170,7 @@
|
||||
<span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>.
|
||||
For example, when defining const expr variables replace:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
with:
|
||||
@@ -3059,10 +3182,94 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_DEFAULTED_FUNCTION</span><span class="special">(</span><span class="identifier">fun</span><span class="special">,</span> <span class="identifier">body</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
This macro is intended to be used within a class definition in
|
||||
order to declare a default implementation of function <code class="computeroutput"><span class="identifier">fun</span></code>. For the compilers that do
|
||||
not support C++11 defaulted functions the macro will expand into
|
||||
an inline function definition with the <code class="computeroutput"><span class="identifier">body</span></code>
|
||||
implementation. For example:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">BOOST_DEFAULTED_FUNCTION</span><span class="special">(</span><span class="identifier">my_struct</span><span class="special">(),</span> <span class="special">{})</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
is equivalent to:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">my_struct</span><span class="special">()</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
or:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">my_struct</span><span class="special">()</span> <span class="special">{}</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">fun</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
This macro is intended to be used within a class definition in
|
||||
order to declare a deleted function <code class="computeroutput"><span class="identifier">fun</span></code>.
|
||||
For the compilers that do not support C++11 deleted functions the
|
||||
macro will expand into a private function declaration with no definition.
|
||||
Since the macro may change the access mode, it is recommended to
|
||||
use this macro at the end of the class definition. For example:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&))</span>
|
||||
<span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">noncopyable</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&))</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
is equivalent to:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
|
||||
<span class="identifier">noncopyable</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
or:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">private</span><span class="special">:</span>
|
||||
<span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&);</span>
|
||||
<span class="identifier">noncopyable</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&);</span>
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<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 +3278,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 +3286,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,22 +3294,42 @@
|
||||
</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>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<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_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 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="keyword">noexcept</span>
|
||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="keyword">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="keyword">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="keyword">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</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>
|
||||
@@ -3321,6 +3549,54 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_FALLTHROUGH</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||
between switch labels:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">switch</span> <span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">{</span>
|
||||
<span class="keyword">case</span> <span class="number">40</span><span class="special">:</span>
|
||||
<span class="keyword">case</span> <span class="number">41</span><span class="special">:</span>
|
||||
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">truth_is_out_there</span><span class="special">)</span> <span class="special">{</span>
|
||||
<span class="special">++</span><span class="identifier">x</span><span class="special">;</span>
|
||||
<span class="identifier">BOOST_FALLTHROUGH</span><span class="special">;</span> <span class="comment">// Use instead of/along with annotations in </span>
|
||||
<span class="comment">// comments. </span>
|
||||
<span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
|
||||
<span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
<span class="keyword">case</span> <span class="number">42</span><span class="special">:</span>
|
||||
<span class="special">...</span>
|
||||
</pre>
|
||||
<p>
|
||||
As shown in the example above, the BOOST_FALLTHROUGH macro should
|
||||
be followed by a semicolon. It is designed to mimic control-flow
|
||||
statements like 'break;', so it can be placed in most places where
|
||||
'break;' can, but only if there are no statements on the execution
|
||||
path between it and the next switch label.
|
||||
</p>
|
||||
<p>
|
||||
When compiled with Clang >3.2 in C++11 mode, the BOOST_FALLTHROUGH
|
||||
macro is expanded to <code class="computeroutput"><span class="special">[[</span><span class="identifier">clang</span><span class="special">::</span><span class="identifier">fallthrough</span><span class="special">]]</span></code>
|
||||
attribute, which is analysed when performing switch labels fall-through
|
||||
diagnostic ('-Wimplicit-fallthrough'). See clang <a href="http://clang.llvm.org/docs/LanguageExtensions.html#clang__fallthrough" target="_top">documentation
|
||||
on language extensions for details.</a>
|
||||
</p>
|
||||
<p>
|
||||
When used with unsupported compilers, the BOOST_FALLTHROUGH macro
|
||||
has no effect on diagnostics.
|
||||
</p>
|
||||
<p>
|
||||
In either case this macro has no effect on runtime behavior and
|
||||
performance of code.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
|
||||
@@ -3498,6 +3774,61 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NOINLINE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
This macro can be used in place of the <code class="computeroutput"><span class="keyword">inline</span></code>
|
||||
keyword to instruct the compiler that a function should never be
|
||||
inlined. One should typically use this macro to mark functions
|
||||
that are unlikely to be called, such as error handling routines.
|
||||
</p>
|
||||
<p>
|
||||
Usage example:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOINLINE</span> <span class="keyword">void</span> <span class="identifier">handle_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">descr</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="comment">// ...</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_LIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_UNLIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
These macros communicate to the compiler that the conditional expression
|
||||
<code class="computeroutput"><span class="identifier">X</span></code> is likely or
|
||||
unlikely to yield a positive result. The expression should result
|
||||
in a boolean value. The result of the macro is an integer or boolean
|
||||
value equivalent to the result of <code class="computeroutput"><span class="identifier">X</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The macros are intended to be used in branching statements. The
|
||||
additional hint they provide can be used by the compiler to arrange
|
||||
the compiled code of the branches more effectively.
|
||||
</p>
|
||||
<p>
|
||||
Usage example:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_UNLIKELY</span><span class="special">(</span><span class="identifier">ptr</span> <span class="special">==</span> <span class="identifier">NULL</span><span class="special">))</span>
|
||||
<span class="identifier">handle_error</span><span class="special">(</span><span class="string">"ptr is NULL"</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
@@ -3634,6 +3965,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>
|
||||
@@ -4794,12 +5148,12 @@
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR_16_T</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR16_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR_16_T</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
|
||||
(negated)
|
||||
</p>
|
||||
</td>
|
||||
@@ -4814,12 +5168,12 @@
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR_32_T</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR32_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR_32_T</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
|
||||
(negated)
|
||||
</p>
|
||||
</td>
|
||||
@@ -4839,7 +5193,7 @@
|
||||
<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>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility">Macros
|
||||
controlling shared library symbol visibility</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing">ABI
|
||||
@@ -4851,7 +5205,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>
|
||||
@@ -5107,7 +5461,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.78.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">
|
||||
@@ -27,7 +27,7 @@
|
||||
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
|
||||
Boost Authors</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
|
||||
Compiler Warnings</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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>
|
||||
|
||||
@@ -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.78.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">
|
||||
@@ -26,7 +26,7 @@
|
||||
<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>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
|
||||
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
|
||||
</dl></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.78.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>
|
||||
@@ -39,7 +39,7 @@
|
||||
</div>
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dl class="toc">
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
|
||||
Boost for Your Platform</a></span></dt>
|
||||
<dd><dl>
|
||||
@@ -102,7 +102,7 @@
|
||||
<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>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
|
||||
the default boost configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
|
||||
@@ -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;
|
||||
@@ -684,7 +684,7 @@
|
||||
<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>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
|
||||
1: creating our own frozen configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
|
||||
@@ -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: September 08, 2013 at 08:51:17 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][
|
||||
@@ -105,10 +105,6 @@ indeed doing so may be impossible in some cases. Those libraries that do
|
||||
honor this will typically abort if a critical error occurs - you have been
|
||||
warned!
|
||||
]]
|
||||
[[`BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS`][Compiler][
|
||||
Can only use deduced template arguments when calling function template
|
||||
instantiations.
|
||||
]]
|
||||
[[`BOOST_NO_FUNCTION_TEMPLATE_ORDERING`][Compiler][
|
||||
The compiler does not perform function template ordering or its function
|
||||
template ordering is incorrect.
|
||||
@@ -397,6 +393,12 @@ See [@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
|
||||
The standard library has a partially conforming `std::allocator` class, but
|
||||
without any of the member templates.
|
||||
]]
|
||||
[[`BOOST_HAS_PRAGMA_ONCE`][Compiler][
|
||||
The compiler recognizes the `#pragma once` directive which tells that the
|
||||
containing header should be included only once while preprocessing the
|
||||
current translation unit. The pragma may improve compile times of large projects
|
||||
with some compilers.
|
||||
]]
|
||||
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
|
||||
The platform has the POSIX API `pthread_delay_np`.
|
||||
]]
|
||||
@@ -429,7 +431,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 +444,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.
|
||||
@@ -546,6 +578,7 @@ that are not yet supported by a particular compiler or library.
|
||||
[table
|
||||
[[Macro ][Description ]]
|
||||
|
||||
[[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]]
|
||||
[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
|
||||
[[`BOOST_NO_CXX11_ATOMIC_SP`][The standard library <memory> does not support atomic smart pointer operations.]]
|
||||
[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
|
||||
@@ -567,40 +600,41 @@ that are not yet supported by a particular compiler or library.
|
||||
[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
|
||||
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
|
||||
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
|
||||
|
||||
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
|
||||
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
|
||||
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
|
||||
type `char16_t`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
|
||||
type `char32_t`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
|
||||
`constexpr`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
|
||||
`decltype`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
|
||||
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
|
||||
accepted in Madrid, March 2011.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
|
||||
deleted (`= delete`) functions.
|
||||
]]
|
||||
deleted (`= delete`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
|
||||
explicit conversion operators (`explicit operator T()`).
|
||||
explicit conversion operators (`explicit operator T()`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
|
||||
explicit instantiation forward declarations for templates (`extern template ...`).
|
||||
@@ -609,47 +643,51 @@ explicit instantiation forward declarations for templates (`extern template ...`
|
||||
default template arguments for function templates.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
|
||||
pass local classes as template parameters (this macro intentionally does not
|
||||
control passing of unnamed types as template parameters, see also
|
||||
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
|
||||
]]
|
||||
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support
|
||||
range-based for statements.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_RAW_LITERALS`][The compiler does not support
|
||||
raw string literals.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_RVALUE_REFERENCES`][The compiler does not support
|
||||
r-value references.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
|
||||
scoped enumerations (`enum class`).
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support
|
||||
`static_assert`.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support
|
||||
<unordered_map> and <unordered_set>.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type
|
||||
specification syntax (e.g. `auto foo(T) -> T;`).]]
|
||||
[[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support
|
||||
Unicode (`u8`, `u`, `U`) literals.
|
||||
]]
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
|
||||
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][The compiler does not support
|
||||
variadic templates.
|
||||
variadic templates.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support
|
||||
variadic macros.
|
||||
variadic macros.
|
||||
]]
|
||||
]
|
||||
|
||||
@@ -665,6 +703,21 @@ provide compliant C++11 support.
|
||||
[table
|
||||
[[Macro ][ Description ]]
|
||||
|
||||
[[`BOOST_ALIGNMENT(X)`, `BOOST_NO_ALIGNMENT`][
|
||||
Some compilers don't support the `alignas` keyword but provide other means to specify alignment
|
||||
(usually, through compiler-specific attributes). The macro `BOOST_ALIGNMENT(X)` will expand to the `alignas(X)`
|
||||
keyword if the compiler supports it or to some compiler-specific attribute to achieve the specified alignment.
|
||||
If no such compiler-specific attribute is known then `BOOST_ALIGNMENT(X)` will expand to nothing and
|
||||
`BOOST_NO_ALIGNMENT` will be defined. Unlike native `alignas`, `X` must always be a compile-time integer constant.
|
||||
The macro can be used to specify alignment of types and data:
|
||||
``
|
||||
struct BOOST_ALIGNMENT(16) my_data
|
||||
{
|
||||
char c[16];
|
||||
};
|
||||
BOOST_ALIGNMENT(8) int arr[32];
|
||||
``
|
||||
]]
|
||||
[[`BOOST_CONSTEXPR`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining a constexpr function or constructor replace:
|
||||
@@ -697,30 +750,97 @@ with:
|
||||
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[`BOOST_DEFAULTED_FUNCTION(fun, body)`][
|
||||
This macro is intended to be used within a class definition in order to declare a default implementation of function `fun`.
|
||||
For the compilers that do not support C++11 defaulted functions the macro will expand into an inline function definition
|
||||
with the `body` implementation. For example:
|
||||
``
|
||||
struct my_struct
|
||||
{
|
||||
BOOST_DEFAULTED_FUNCTION(my_struct(), {})
|
||||
};
|
||||
``
|
||||
is equivalent to:
|
||||
``
|
||||
struct my_struct
|
||||
{
|
||||
my_struct() = default;
|
||||
};
|
||||
``
|
||||
or:
|
||||
``
|
||||
struct my_struct
|
||||
{
|
||||
my_struct() {}
|
||||
};
|
||||
``
|
||||
]]
|
||||
[[`BOOST_DELETED_FUNCTION(fun)`][
|
||||
This macro is intended to be used within a class definition in order to declare a deleted function `fun`.
|
||||
For the compilers that do not support C++11 deleted functions the macro will expand into a private function
|
||||
declaration with no definition. Since the macro may change the access mode, it is recommended to use this macro
|
||||
at the end of the class definition. For example:
|
||||
``
|
||||
struct noncopyable
|
||||
{
|
||||
BOOST_DELETED_FUNCTION(noncopyable(noncopyable const&))
|
||||
BOOST_DELETED_FUNCTION(noncopyable& operator= (noncopyable const&))
|
||||
};
|
||||
``
|
||||
is equivalent to:
|
||||
``
|
||||
struct noncopyable
|
||||
{
|
||||
noncopyable(noncopyable const&) = delete;
|
||||
noncopyable& operator= (noncopyable const&) = delete;
|
||||
};
|
||||
``
|
||||
or:
|
||||
``
|
||||
struct noncopyable
|
||||
{
|
||||
private:
|
||||
noncopyable(noncopyable const&);
|
||||
noncopyable& operator= (noncopyable const&);
|
||||
};
|
||||
``
|
||||
]]
|
||||
[[
|
||||
``
|
||||
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]
|
||||
@@ -820,6 +940,41 @@ struct foo{
|
||||
Normally evaluates to nothing, but evaluates to return x; if the compiler
|
||||
requires a return, even when it can never be reached.
|
||||
]]
|
||||
[[`BOOST_FALLTHROUGH`][
|
||||
The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||
between switch labels:
|
||||
``
|
||||
switch (x) {
|
||||
case 40:
|
||||
case 41:
|
||||
if (truth_is_out_there) {
|
||||
++x;
|
||||
BOOST_FALLTHROUGH; // Use instead of/along with annotations in
|
||||
// comments.
|
||||
} else {
|
||||
return x;
|
||||
}
|
||||
case 42:
|
||||
...
|
||||
``
|
||||
As shown in the example above, the BOOST_FALLTHROUGH macro should be
|
||||
followed by a semicolon. It is designed to mimic control-flow statements
|
||||
like 'break;', so it can be placed in most places where 'break;' can, but
|
||||
only if there are no statements on the execution path between it and the
|
||||
next switch label.
|
||||
|
||||
When compiled with Clang >3.2 in C++11 mode, the BOOST_FALLTHROUGH macro is
|
||||
expanded to `[[clang::fallthrough]]` attribute, which is analysed when
|
||||
performing switch labels fall-through diagnostic ('-Wimplicit-fallthrough').
|
||||
See clang [@http://clang.llvm.org/docs/LanguageExtensions.html#clang__fallthrough
|
||||
documentation on language extensions for details.]
|
||||
|
||||
When used with unsupported compilers, the BOOST_FALLTHROUGH macro has no
|
||||
effect on diagnostics.
|
||||
|
||||
In either case this macro has no effect on runtime behavior and performance
|
||||
of code.
|
||||
]]
|
||||
[[`BOOST_EXPLICIT_TEMPLATE_TYPE(t)`
|
||||
`BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`
|
||||
`BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)`
|
||||
@@ -924,6 +1079,34 @@ Note that use of this macro can lead to cryptic error messages with some compile
|
||||
Consider defining it to `inline` before including the Boost.Config header in order to be
|
||||
able to debug errors more easily.
|
||||
]]
|
||||
[[`BOOST_NOINLINE`][
|
||||
This macro can be used in place of the `inline` keyword to instruct the compiler
|
||||
that a function should never be inlined. One should typically use this macro
|
||||
to mark functions that are unlikely to be called, such as error handling routines.
|
||||
|
||||
Usage example:
|
||||
``
|
||||
BOOST_NOINLINE void handle_error(const char* descr)
|
||||
{
|
||||
// ...
|
||||
}
|
||||
``
|
||||
]]
|
||||
[[`BOOST_LIKELY(X)`
|
||||
`BOOST_UNLIKELY(X)`][
|
||||
These macros communicate to the compiler that the conditional expression `X` is likely
|
||||
or unlikely to yield a positive result. The expression should result in a boolean value.
|
||||
The result of the macro is an integer or boolean value equivalent to the result of `X`.
|
||||
|
||||
The macros are intended to be used in branching statements. The additional hint they provide
|
||||
can be used by the compiler to arrange the compiled code of the branches more effectively.
|
||||
|
||||
Usage example:
|
||||
``
|
||||
if (BOOST_UNLIKELY(ptr == NULL))
|
||||
handle_error("ptr is NULL");
|
||||
``
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
@@ -961,6 +1144,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.
|
||||
@@ -1058,8 +1246,8 @@ They will be removed in a future version of boost.
|
||||
[[`BOOST_HAS_STATIC_ASSERT`][`BOOST_NO_CXX11_STATIC_ASSERT` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_VARIADIC_TMPL`][`BOOST_NO_CXX11_VARIADIC_TEMPLATES` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_RVALUE_REFS`][`BOOST_NO_CXX11_RVALUE_REFERENCES` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_CHAR_16_T`][`BOOST_NO_CXX11_CHAR_16_T` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_CHAR_32_T`][`BOOST_NO_CXX11_CHAR_32_T` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_CHAR16_T`][`BOOST_NO_CXX11_CHAR16_T` (negated)][Boost 1.53][]]
|
||||
[[`BOOST_HAS_CHAR32_T`][`BOOST_NO_CXX11_CHAR32_T` (negated)][Boost 1.53][]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Boost config.hpp configuration header file ------------------------------//
|
||||
|
||||
// (C) Copyright John Maddock 2002.
|
||||
// (C) Copyright John Maddock 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)
|
||||
@@ -56,15 +56,8 @@
|
||||
// get config suffix code:
|
||||
#include <boost/config/suffix.hpp>
|
||||
|
||||
#ifdef BOOST_HAS_PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#endif // BOOST_CONFIG_HPP
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -151,11 +151,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
// vc10:
|
||||
# define BOOST_LIB_TOOLSET "vc100"
|
||||
|
||||
# elif defined(BOOST_MSVC)
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
|
||||
|
||||
// vc11:
|
||||
# define BOOST_LIB_TOOLSET "vc110"
|
||||
|
||||
# elif defined(BOOST_MSVC)
|
||||
|
||||
// vc12:
|
||||
# define BOOST_LIB_TOOLSET "vc120"
|
||||
|
||||
# elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
@@ -421,3 +426,4 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
# undef BOOST_DYN_LINK
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#else
|
||||
@@ -190,6 +190,10 @@
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
#if __BORLANDC__ >= 0x590
|
||||
# define BOOST_HAS_TR1_HASH
|
||||
@@ -242,7 +246,7 @@
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
@@ -281,7 +285,3 @@
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
|
||||
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
// (C) Copyright Douglas Gregor 2010
|
||||
//
|
||||
// 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)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Clang compiler setup.
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
@@ -20,12 +22,20 @@
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#if defined(__int64)
|
||||
#if defined(__int64) && !defined(__GNUC__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Branch prediction hints
|
||||
#if defined(__has_builtin)
|
||||
#if __has_builtin(__builtin_expect)
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
@@ -38,6 +48,16 @@
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||
#endif
|
||||
|
||||
//
|
||||
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||
// between switch labels.
|
||||
//
|
||||
#if __cplusplus >= 201103L && defined(__has_warning)
|
||||
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
|
||||
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
@@ -132,6 +152,22 @@
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_user_literals)
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#endif
|
||||
|
||||
#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas))
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_trailing_return)
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_inline_namespaces)
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
// Clang always supports variadic macros
|
||||
// Clang always supports extern templates
|
||||
|
||||
|
||||
@@ -72,6 +72,12 @@
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
// Reportedly, #pragma once is supported since C++ Builder 2010
|
||||
#if (__CODEGEARC__ >= 0x620)
|
||||
# define BOOST_HAS_PRAGMA_ONCE
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x macros:
|
||||
//
|
||||
@@ -110,6 +116,10 @@
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
//
|
||||
// TR1 macros:
|
||||
@@ -150,7 +160,7 @@
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright Markus Schoepflin 2005.
|
||||
// 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)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
@@ -33,15 +33,15 @@
|
||||
|
||||
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
@@ -54,6 +54,11 @@
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
|
||||
// Not sure what version was the first to support #pragma once, but
|
||||
// different EDG-based compilers (e.g. Intel) supported it for ages.
|
||||
// Add a proper version check if it causes problems.
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
@@ -95,6 +100,10 @@
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
#ifdef c_plusplus
|
||||
// EDG has "long long" in non-strict mode
|
||||
|
||||
@@ -51,13 +51,15 @@
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||
//#define BOOST_HAS_FPCLASSIFY
|
||||
|
||||
#define BOOST_SP_USE_PTHREADS
|
||||
#define BOOST_AC_USE_PTHREADS
|
||||
#define BOOST_SP_USE_PTHREADS
|
||||
#define BOOST_AC_USE_PTHREADS
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (C) Christof Meerwald 2003
|
||||
// Copyright (C) Dan Watkins 2003
|
||||
//
|
||||
// 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)
|
||||
|
||||
// Digital Mars C++ compiler setup:
|
||||
@@ -11,15 +11,7 @@
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
#if (__DMC__ <= 0x833)
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
|
||||
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
#endif
|
||||
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
|
||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
#if !defined(BOOST_STRICT_CONFIG)
|
||||
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
@@ -30,11 +22,9 @@
|
||||
|
||||
//
|
||||
// has macros:
|
||||
#if (__DMC__ >= 0x840)
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_WINTHREADS
|
||||
#endif
|
||||
|
||||
#if (__DMC__ >= 0x847)
|
||||
#define BOOST_HAS_EXPM1
|
||||
@@ -86,12 +76,12 @@
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
#if (__DMC__ < 0x812)
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#if __DMC__ < 0x800
|
||||
#if (__DMC__ <= 0x840)
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
|
||||
@@ -1,63 +1,31 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Douglas Gregor 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Synge Todo 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Douglas Gregor 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Synge Todo 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// GNU C++ compiler setup:
|
||||
// GNU C++ compiler setup.
|
||||
|
||||
#if __GNUC__ < 3
|
||||
# if __GNUC_MINOR__ == 91
|
||||
// egcs 1.1 won't parse shared_ptr.hpp without this:
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# endif
|
||||
# if __GNUC_MINOR__ < 95
|
||||
//
|
||||
// Prior to gcc 2.95 member templates only partly
|
||||
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
// instead since inline member templates mostly work.
|
||||
//
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
# if __GNUC_MINOR__ >= 9
|
||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
# endif
|
||||
# endif
|
||||
//
|
||||
// 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_MINOR__ < 96
|
||||
# define BOOST_NO_SFINAE
|
||||
# endif
|
||||
|
||||
# if __GNUC_MINOR__ <= 97
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for gcc versions before 3.0
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#elif __GNUC__ == 3
|
||||
#if __GNUC__ == 3
|
||||
# if defined (__PATHSCALE__)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
//
|
||||
// gcc-3.x problems:
|
||||
//
|
||||
// Bug specific to gcc 3.1 and 3.2:
|
||||
//
|
||||
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
|
||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
# endif
|
||||
|
||||
# if __GNUC_MINOR__ < 4
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
@@ -73,6 +41,11 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
|
||||
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
|
||||
// Previous versions of GCC did not completely implement value-initialization:
|
||||
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
||||
@@ -97,7 +70,7 @@
|
||||
//
|
||||
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// gcc has "long long"
|
||||
@@ -107,28 +80,30 @@
|
||||
//
|
||||
// gcc implements the named return value optimization since version 3.1
|
||||
//
|
||||
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
|
||||
#define BOOST_HAS_NRVO
|
||||
#endif
|
||||
|
||||
// Branch prediction hints
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if __GNUC__ >= 4
|
||||
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||
// so does not define _WIN32 or its variants.
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
|
||||
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
|
||||
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
|
||||
# else
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# endif
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||
#else
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
|
||||
@@ -147,9 +122,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
|
||||
|
||||
@@ -169,7 +151,7 @@
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
|
||||
// Variadic templates compiler:
|
||||
// Variadic templates compiler:
|
||||
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
@@ -188,12 +170,19 @@
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
|
||||
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
|
||||
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
@@ -222,12 +211,24 @@
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.7.n and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#endif
|
||||
// C++0x features not supported at all yet
|
||||
|
||||
// C++0x features in 4.8.n and later
|
||||
//
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.8.1 and later
|
||||
//
|
||||
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
@@ -241,8 +242,8 @@
|
||||
#endif
|
||||
|
||||
// versions check:
|
||||
// we don't know gcc prior to version 2.90:
|
||||
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
||||
// we don't know gcc prior to version 3.30:
|
||||
#if (__GNUC__ < 3) || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))
|
||||
# error "Compiler not configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// 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.
|
||||
@@ -18,7 +18,7 @@
|
||||
//
|
||||
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// gcc has "long long"
|
||||
@@ -44,7 +44,7 @@
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
@@ -53,7 +53,11 @@
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||
// 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)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
@@ -43,7 +43,7 @@
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// optional features rather than defects:
|
||||
#if (__HP_aCC >= 33900)
|
||||
@@ -118,8 +118,12 @@
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
/*
|
||||
/*
|
||||
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
||||
*/
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#endif
|
||||
|
||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
@@ -47,11 +47,6 @@
|
||||
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
|
||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
||||
|
||||
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
|
||||
@@ -111,7 +106,7 @@
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||
// GCC or VC emulation:
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
@@ -154,10 +149,18 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_HAS_NRVO
|
||||
#endif
|
||||
|
||||
// Branch prediction hints
|
||||
// I'm not sure 8.0 was the first version to support these builtins,
|
||||
// update the condition if the version is not accurate. (Andrey Semashev)
|
||||
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
#endif
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Intel prior to version 5.0:
|
||||
#if BOOST_INTEL_CXX_VERSION < 500
|
||||
// we don't support Intel prior to version 6.0:
|
||||
#if BOOST_INTEL_CXX_VERSION < 600
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
@@ -173,15 +176,15 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
|
||||
//
|
||||
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||
// internal error on Intel <= 11.1 (last checked version), as was
|
||||
// internal error on Intel <= 11.1 (last checked version), as was
|
||||
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||
// cases when it should be value-initialized.
|
||||
// (Niels Dekker, LKEB, May 2010)
|
||||
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
#endif
|
||||
@@ -221,10 +224,11 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# undef BOOST_NO_CXX11_DECLTYPE
|
||||
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#endif
|
||||
|
||||
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
|
||||
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# undef BOOST_NO_CXX11_NULLPTR
|
||||
@@ -234,8 +238,44 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
// continues to list scoped enum support as "Partial"
|
||||
//# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
// continues to list scoped enum support as "Partial"
|
||||
//# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(_MSC_VER)
|
||||
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
// This one generates internal compiler errors in multiprecision, disabled for now:
|
||||
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
|
||||
//# undef BOOST_NO_CXX11_NOEXCEPT
|
||||
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1310)
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1400) && !defined(_MSC_VER)
|
||||
# undef BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# undef BOOST_NO_CXX11_RAW_LITERALS
|
||||
// This one generates errors when used with conditional exception specifications, for example in multiprecision:
|
||||
//# undef BOOST_NO_CXX11_NOEXCEPT
|
||||
// This breaks multiprecision:
|
||||
//# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# undef BOOST_NO_CXX11_HDR_THREAD
|
||||
# undef BOOST_NO_CXX11_CHAR32_T
|
||||
# undef BOOST_NO_CXX11_CHAR16_T
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
|
||||
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
|
||||
@@ -247,6 +287,9 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# if(BOOST_INTEL_CXX_VERSION < 1310)
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
@@ -256,9 +299,17 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310)
|
||||
# define BOOST_HAS_INT128
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1310)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# elif defined(_MSC_VER)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright David Abrahams 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Stefan Slapeta 2004.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright David Abrahams 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Stefan Slapeta 2004.
|
||||
// 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.
|
||||
@@ -15,7 +15,7 @@
|
||||
// locale support is disabled when linking with the dynamic runtime
|
||||
# ifdef _MSL_NO_LOCALE
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __MWERKS__ <= 0x2301 // 5.3
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
@@ -90,7 +90,7 @@
|
||||
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
#else
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
@@ -119,6 +119,10 @@
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 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 for most recent version.
|
||||
@@ -68,6 +68,10 @@
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
//
|
||||
// versions check:
|
||||
|
||||
@@ -14,15 +14,3 @@
|
||||
// NVIDIA Specific support
|
||||
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
||||
#define BOOST_GPU_ENABLED __host__ __device__
|
||||
|
||||
// Boost support macro for NVCC
|
||||
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
|
||||
#ifdef __GNUC__
|
||||
|
||||
#include <boost/config/compiler/gcc.hpp>
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
|
||||
#include <boost/config/compiler/visualc.hpp>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// (C) Copyright Bryce Lelbach 2011
|
||||
|
||||
// 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)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
@@ -76,5 +76,8 @@
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
#if defined(linux) || defined(__linux) || defined(__linux__)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// options --enable-test wants undefined
|
||||
#undef BOOST_NO_STDC_NAMESPACE
|
||||
@@ -111,6 +114,10 @@
|
||||
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||
#define BOOST_NO_CXX11_HDR_CHRONO
|
||||
#define BOOST_NO_CXX11_HDR_ARRAY
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
//
|
||||
// version check:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Peter Dimov 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Peter Dimov 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||
// (C) Copyright David 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 for most recent version.
|
||||
@@ -34,7 +34,7 @@
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC <= 0x530)
|
||||
# if (__SUNPRO_CC <= 0x530)
|
||||
// Requesting debug info (-g) with Boost.Python results
|
||||
// in an internal compiler error for "static const"
|
||||
// initialized in-class.
|
||||
@@ -57,7 +57,7 @@
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC < 0x570)
|
||||
# if (__SUNPRO_CC < 0x570)
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
||||
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
||||
@@ -65,7 +65,7 @@
|
||||
# define BOOST_NO_SFINAE
|
||||
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||
# endif
|
||||
# if (__SUNPRO_CC <= 0x580)
|
||||
# if (__SUNPRO_CC <= 0x580)
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
@@ -127,6 +127,10 @@
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
//
|
||||
// Version
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||
// (C) Copyright Lie-Quan Lee 2001.
|
||||
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||
// (C) Copyright Lie-Quan Lee 2001.
|
||||
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
@@ -16,7 +16,7 @@
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 502)
|
||||
#if (__IBMCPP__ <= 502)
|
||||
// Actually the compiler supports inclass member initialization but it
|
||||
// requires a definition for the class member and it doesn't recognize
|
||||
// it as an integral constant expression when used as a template argument.
|
||||
@@ -30,9 +30,9 @@
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 1110)
|
||||
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||
// high priority. -- Niels Dekker (LKEB), May 2010.
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
@@ -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
|
||||
@@ -106,6 +106,7 @@
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#if ! __IBMCPP_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
@@ -125,6 +126,6 @@
|
||||
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
@@ -34,67 +34,20 @@
|
||||
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
|
||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Visual C++ prior to version 6:
|
||||
#if _MSC_VER < 1200
|
||||
// we don't support Visual C++ prior to version 7.1:
|
||||
#if _MSC_VER < 1310
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
|
||||
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
|
||||
# if _MSC_VER == 1202
|
||||
# define BOOST_NO_STD_TYPEINFO
|
||||
# endif
|
||||
|
||||
#if _MSC_FULL_VER < 180020827
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
/// Visual Studio has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
#if (_MSC_VER < 1310) // 130X == VC++ 7.0
|
||||
|
||||
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# endif
|
||||
|
||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_DEDUCED_TYPENAME
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
|
||||
// VC++ 6/7 has member templates but they have numerous problems including
|
||||
// cases of silent failure, so for safety we define:
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
// For VC++ experts wishing to attempt workarounds, we define:
|
||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
# define BOOST_NO_SFINAE
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
|
||||
# if (_MSC_VER >= 1300)
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1400
|
||||
#if _MSC_VER < 1400
|
||||
// although a conforming signature for swprint exists in VC7.1
|
||||
// it appears not to actually work:
|
||||
# define BOOST_NO_SWPRINTF
|
||||
@@ -119,9 +72,9 @@
|
||||
#endif
|
||||
|
||||
|
||||
// MSVC (including the latest checked version) has not yet completely
|
||||
// MSVC (including the latest checked version) has not yet completely
|
||||
// implemented value-initialization, as is reported:
|
||||
// "VC++ does not value-initialize members of derived classes without
|
||||
// "VC++ does not value-initialize members of derived classes without
|
||||
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
||||
// "Presence of copy constructor breaks member class initialization",
|
||||
@@ -134,10 +87,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
|
||||
@@ -152,19 +101,17 @@
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
// check for exception handling support:
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// __int64 support:
|
||||
//
|
||||
#if (_MSC_VER >= 1200)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
|
||||
#define BOOST_HAS_MS_INT64
|
||||
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
@@ -214,31 +161,40 @@
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// C++ features supported by VC++ 11 (aka 2012)
|
||||
// C++11 features supported by VC++ 11 (aka 2012)
|
||||
//
|
||||
#if _MSC_VER < 1700
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif // _MSC_VER < 1700
|
||||
|
||||
// C++0x features not supported by any versions
|
||||
// C++11 features supported by VC++ 12 (aka 2013).
|
||||
//
|
||||
#if _MSC_FULL_VER < 180020827
|
||||
# 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_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# 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
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
|
||||
//
|
||||
// prefix and suffix headers:
|
||||
//
|
||||
@@ -251,17 +207,13 @@
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
// TODO:
|
||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
||||
// artificial versions assigned to them only refer to the versions of some IDE
|
||||
// these compilers have been shipped with, and even that is not all of it. Some
|
||||
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
||||
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
||||
# if defined(UNDER_CE)
|
||||
# if _MSC_VER < 1200
|
||||
// Note: these are so far off, they are not really supported
|
||||
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
|
||||
# define BOOST_COMPILER_VERSION evc4.0
|
||||
# elif _MSC_VER < 1400
|
||||
# if _MSC_VER < 1400
|
||||
// Note: I'm not aware of any CE compiler with version 13xx
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
@@ -276,6 +228,8 @@
|
||||
# define BOOST_COMPILER_VERSION evc10
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION evc11
|
||||
# elif _MSC_VER < 1900
|
||||
# define BOOST_COMPILER_VERSION evc12
|
||||
# else
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
@@ -284,11 +238,11 @@
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
# if _MSC_VER < 1200
|
||||
// Note: these are so far off, they are not really supported
|
||||
# if _MSC_VER < 1310
|
||||
// Note: Versions up to 7.0 aren't supported.
|
||||
# define BOOST_COMPILER_VERSION 5.0
|
||||
# elif _MSC_VER < 1300
|
||||
# define BOOST_COMPILER_VERSION 6.0
|
||||
# define BOOST_COMPILER_VERSION 6.0
|
||||
# elif _MSC_VER < 1310
|
||||
# define BOOST_COMPILER_VERSION 7.0
|
||||
# elif _MSC_VER < 1400
|
||||
@@ -300,7 +254,9 @@
|
||||
# elif _MSC_VER < 1700
|
||||
# define BOOST_COMPILER_VERSION 10.0
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# elif _MSC_VER < 1900
|
||||
# define BOOST_COMPILER_VERSION 12.0
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||
# endif
|
||||
@@ -310,8 +266,8 @@
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version is 1700 (VC11, aka 2011):
|
||||
#if (_MSC_VER > 1700)
|
||||
// last known and checked version is 18.00.20827.3 (VC12 RC, aka 2013 RC):
|
||||
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 180020827)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
||||
@@ -1,31 +1,369 @@
|
||||
// (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
|
||||
// with 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"
|
||||
// ====================================================================
|
||||
//
|
||||
// Some important information regarding the usage of POSIX semaphores:
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// VxWorks as a real time operating system handles threads somewhat
|
||||
// different from what "normal" OSes do, regarding their scheduling!
|
||||
// This could lead to a scenario called "priority inversion" when using
|
||||
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
|
||||
//
|
||||
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
|
||||
// priority inverting semaphores, which is fine. On the other hand,
|
||||
// for RTP's it defaults to using non priority inverting semaphores,
|
||||
// which could easily pose a serious problem for a real time process,
|
||||
// i.e. deadlocks! To overcome this two possibilities do exist:
|
||||
//
|
||||
// a) Patch every piece of boost that uses semaphores to instanciate
|
||||
// the proper type of semaphores. This is non-intrusive with respect
|
||||
// to the OS and could relatively easy been done by giving all
|
||||
// semaphores attributes deviating from the default (for in-depth
|
||||
// information see the POSIX functions pthread_mutexattr_init()
|
||||
// and pthread_mutexattr_setprotocol()). However this breaks all
|
||||
// too easily, as with every new version some boost library could
|
||||
// all in a sudden start using semaphores, resurrecting the very
|
||||
// same, hard to locate problem over and over again!
|
||||
//
|
||||
// b) We could change the default properties for POSIX-semaphores
|
||||
// that VxWorks uses for RTP's and this is being suggested here,
|
||||
// as it will more or less seamlessly integrate with boost. I got
|
||||
// the following information from WRS how to do this, compare
|
||||
// Wind River TSR# 1209768:
|
||||
//
|
||||
// Instructions for changing the default properties of POSIX-
|
||||
// semaphores for RTP's in VxWorks 6.9:
|
||||
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
|
||||
// in the root of your Workbench-installation.
|
||||
// - Around line 917 there should be the definition of the default
|
||||
// mutex attributes:
|
||||
//
|
||||
// LOCAL pthread_mutexattr_t defaultMutexAttr =
|
||||
// {
|
||||
// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
|
||||
// PTHREAD_MUTEX_DEFAULT
|
||||
// };
|
||||
//
|
||||
// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||
// - Around line 1236 there should be a definition for the function
|
||||
// pthread_mutexattr_init(). A couple of lines below you should
|
||||
// find a block of code like this:
|
||||
//
|
||||
// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
|
||||
// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
|
||||
// pAttr->mutexAttrPrioceiling = 0;
|
||||
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
|
||||
//
|
||||
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
|
||||
// with the changed properties. That's it! Now, using boost should
|
||||
// no longer cause any problems with task deadlocks!
|
||||
//
|
||||
// And here's another useful piece of information concerning VxWorks'
|
||||
// POSIX-functionality in general:
|
||||
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
|
||||
// kind of compatibility layer (sort of a wrapper) to emulate the
|
||||
// POSIX-functionality by using its own resources and functions.
|
||||
// At the time a task (thread) calls it's first POSIX-function during
|
||||
// runtime it is being transformed by the OS into a POSIX-thread.
|
||||
// This transformation does include a call to malloc() to allocate the
|
||||
// memory required for the housekeeping of POSIX-threads. In a high
|
||||
// priority RTP this malloc() call may be highly undesirable, as its
|
||||
// timing is more or less unpredictable (depending on what your actual
|
||||
// heap looks like). You can circumvent this problem by calling the
|
||||
// function thread_self() at a well defined point in the code of the
|
||||
// task, e.g. shortly after the task spawns up. Thereby you are able
|
||||
// to define the time when the task-transformation will take place and
|
||||
// you could shift it to an uncritical point where a malloc() call is
|
||||
// tolerable. So, if this could pose a problem for your code, remember
|
||||
// to call thread_self() from the affected task at an early stage.
|
||||
//
|
||||
// ====================================================================
|
||||
|
||||
#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
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
// locate which compiler we are using and define
|
||||
// BOOST_COMPILER_CONFIG as needed:
|
||||
|
||||
#if defined __CUDACC__
|
||||
// NVIDIA CUDA C++ compiler for GPU
|
||||
# include "boost/config/compiler/nvcc.hpp"
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__GCCXML__)
|
||||
// GCC-XML emulates other compilers, it has to appear first here!
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||
@@ -21,10 +27,6 @@
|
||||
// EDG based Cray compiler:
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||
|
||||
#elif defined __CUDACC__
|
||||
// NVIDIA CUDA C++ compiler for GPU
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
|
||||
|
||||
#elif defined __COMO__
|
||||
// Comeau C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||
@@ -33,6 +35,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 +47,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
|
||||
|
||||
@@ -110,7 +110,8 @@
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
#endif
|
||||
|
||||
#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
|
||||
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
|
||||
&& (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
@@ -128,10 +129,11 @@
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
#endif
|
||||
|
||||
// C++0x headers implemented in 610 (as shipped by Microsoft)
|
||||
//
|
||||
// C++0x headers not yet (fully) implemented:
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#ifdef _CPPLIB_VER
|
||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||
|| defined(_GLIBCXX__PTHREADS) \
|
||||
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||
|| defined(_WIN32)
|
||||
|| defined(_WIN32) \
|
||||
|| defined(_AIX)
|
||||
//
|
||||
// If the std lib has thread support turned on, then turn it on in Boost
|
||||
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// Copyright (c) 2001-2003 John Maddock
|
||||
// Copyright (c) 2001 Darin Adler
|
||||
// Copyright (c) 2001 Peter Dimov
|
||||
// Copyright (c) 2002 Bill Kempf
|
||||
// Copyright (c) 2002 Bill Kempf
|
||||
// Copyright (c) 2002 Jens Maurer
|
||||
// Copyright (c) 2002-2003 David Abrahams
|
||||
// Copyright (c) 2003 Gennaro Prota
|
||||
@@ -146,7 +146,7 @@
|
||||
# endif
|
||||
|
||||
//
|
||||
// Without partial specialization, partial
|
||||
// Without partial specialization, partial
|
||||
// specialization with default args won't work either:
|
||||
//
|
||||
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||
@@ -503,69 +503,8 @@ namespace boost{
|
||||
#endif
|
||||
|
||||
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
|
||||
//
|
||||
// Some compilers have problems with function templates whose template
|
||||
// parameters don't appear in the function parameter list (basically
|
||||
// they just link one instantiation of the template in the final
|
||||
// executable). These macros provide a uniform way to cope with the
|
||||
// problem with no effects on the calling syntax.
|
||||
|
||||
// Example:
|
||||
//
|
||||
// #include <iostream>
|
||||
// #include <ostream>
|
||||
// #include <typeinfo>
|
||||
//
|
||||
// template <int n>
|
||||
// void f() { std::cout << n << ' '; }
|
||||
//
|
||||
// template <typename T>
|
||||
// void g() { std::cout << typeid(T).name() << ' '; }
|
||||
//
|
||||
// int main() {
|
||||
// f<1>();
|
||||
// f<2>();
|
||||
//
|
||||
// g<int>();
|
||||
// g<double>();
|
||||
// }
|
||||
//
|
||||
// With VC++ 6.0 the output is:
|
||||
//
|
||||
// 2 2 double double
|
||||
//
|
||||
// To fix it, write
|
||||
//
|
||||
// template <int n>
|
||||
// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
|
||||
//
|
||||
// template <typename T>
|
||||
// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
|
||||
//
|
||||
|
||||
|
||||
#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
|
||||
|
||||
# include "boost/type.hpp"
|
||||
# include "boost/non_type.hpp"
|
||||
|
||||
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
|
||||
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
|
||||
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
|
||||
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
|
||||
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
|
||||
, BOOST_EXPLICIT_TEMPLATE_TYPE(t)
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
|
||||
, BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
|
||||
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
|
||||
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
|
||||
|
||||
#else
|
||||
|
||||
// no workaround needed: expand to nothing
|
||||
// These macros are obsolete. Port away and remove.
|
||||
|
||||
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
|
||||
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
|
||||
@@ -577,9 +516,6 @@ namespace boost{
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
|
||||
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
|
||||
|
||||
|
||||
#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
|
||||
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
|
||||
// the global definition into std namespace:
|
||||
#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
|
||||
@@ -632,7 +568,7 @@ namespace std{ using ::type_info; }
|
||||
// Set some default values GPU support
|
||||
//
|
||||
# ifndef BOOST_GPU_ENABLED
|
||||
# define BOOST_GPU_ENABLED
|
||||
# define BOOST_GPU_ENABLED
|
||||
# endif
|
||||
|
||||
// BOOST_FORCEINLINE ---------------------------------------------//
|
||||
@@ -641,12 +577,85 @@ namespace std{ using ::type_info; }
|
||||
# if defined(_MSC_VER)
|
||||
# define BOOST_FORCEINLINE __forceinline
|
||||
# elif defined(__GNUC__) && __GNUC__ > 3
|
||||
# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
|
||||
// Clang also defines __GNUC__ (as 4)
|
||||
# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
|
||||
# else
|
||||
# define BOOST_FORCEINLINE inline
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// BOOST_NOINLINE ---------------------------------------------//
|
||||
// Macro to use in place of 'inline' to prevent a function to be inlined
|
||||
#if !defined(BOOST_NOINLINE)
|
||||
# if defined(_MSC_VER)
|
||||
# define BOOST_NOINLINE __declspec(noinline)
|
||||
# elif defined(__GNUC__) && __GNUC__ > 3
|
||||
// Clang also defines __GNUC__ (as 4)
|
||||
# define BOOST_NOINLINE __attribute__ ((__noinline__))
|
||||
# else
|
||||
# define BOOST_NOINLINE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Branch prediction hints
|
||||
// These macros are intended to wrap conditional expressions that yield true or false
|
||||
//
|
||||
// if (BOOST_LIKELY(var == 10))
|
||||
// {
|
||||
// // the most probable code here
|
||||
// }
|
||||
//
|
||||
#if !defined(BOOST_LIKELY)
|
||||
# define BOOST_LIKELY(x) x
|
||||
#endif
|
||||
#if !defined(BOOST_UNLIKELY)
|
||||
# define BOOST_UNLIKELY(x) x
|
||||
#endif
|
||||
|
||||
// Type and data alignment specification
|
||||
//
|
||||
#if !defined(BOOST_NO_CXX11_ALIGNAS)
|
||||
# define BOOST_ALIGNMENT(x) alignas(x)
|
||||
#elif defined(_MSC_VER)
|
||||
# define BOOST_ALIGNMENT(x) __declspec(align(x))
|
||||
#elif defined(__GNUC__)
|
||||
# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
|
||||
#else
|
||||
# define BOOST_NO_ALIGNMENT
|
||||
# define BOOST_ALIGNMENT(x)
|
||||
#endif
|
||||
|
||||
// Defaulted and deleted function declaration helpers
|
||||
// These macros are intended to be inside a class definition.
|
||||
// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its
|
||||
// body, which will be used if the compiler doesn't support defaulted functions.
|
||||
// BOOST_DELETED_FUNCTION only accepts the function declaration. It
|
||||
// will expand to a private function declaration, if the compiler doesn't support
|
||||
// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION
|
||||
// in the end of the class definition.
|
||||
//
|
||||
// class my_class
|
||||
// {
|
||||
// public:
|
||||
// // Default-constructible
|
||||
// BOOST_DEFAULTED_FUNCTION(my_class(), {})
|
||||
// // Copying prohibited
|
||||
// BOOST_DELETED_FUNCTION(my_class(my_class const&))
|
||||
// BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&))
|
||||
// };
|
||||
//
|
||||
#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS))
|
||||
# define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default;
|
||||
#else
|
||||
# define BOOST_DEFAULTED_FUNCTION(fun, body) fun body
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
|
||||
# define BOOST_DELETED_FUNCTION(fun) fun = delete;
|
||||
#else
|
||||
# define BOOST_DELETED_FUNCTION(fun) private: fun;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
|
||||
//
|
||||
@@ -671,7 +680,7 @@ namespace std{ using ::type_info; }
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
|
||||
#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_BOOST_NO_0X_HDR_ARRAY)
|
||||
#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
|
||||
@@ -695,7 +704,7 @@ namespace std{ using ::type_info; }
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
|
||||
#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
@@ -874,17 +883,29 @@ 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
|
||||
//
|
||||
// Helper macro BOOST_FALLTHROUGH
|
||||
// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended
|
||||
// fall-through between case labels in a switch statement. We use a definition
|
||||
// that requires a semicolon after it to avoid at least one type of misuse even
|
||||
// on unsupported compilers.
|
||||
//
|
||||
#ifndef BOOST_FALLTHROUGH
|
||||
# define BOOST_FALLTHROUGH ((void)0)
|
||||
#endif
|
||||
|
||||
//
|
||||
// constexpr workarounds
|
||||
//
|
||||
//
|
||||
#if defined(BOOST_NO_CXX11_CONSTEXPR)
|
||||
#define BOOST_CONSTEXPR
|
||||
#define BOOST_CONSTEXPR_OR_CONST const
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#ifdef BOOST_NO_LIMITS
|
||||
# include <boost/detail/limits.hpp>
|
||||
# error "There is no std::numeric_limits suppport available."
|
||||
#else
|
||||
# include <limits>
|
||||
#endif
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||
// BOOST_VERSION / 100000 is the major version
|
||||
|
||||
#define BOOST_VERSION 105300
|
||||
#define BOOST_VERSION 105500
|
||||
|
||||
//
|
||||
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
||||
@@ -27,6 +27,6 @@
|
||||
// number, y is the minor version number, and z is the patch level if not 0.
|
||||
// This is used by <config/auto_link.hpp> to select which library version to link to.
|
||||
|
||||
#define BOOST_LIB_VERSION "1_53"
|
||||
#define BOOST_LIB_VERSION "1_55"
|
||||
|
||||
#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)
|
||||
@@ -59,4 +65,5 @@ test-suite config
|
||||
]
|
||||
[ compile-fail threads/test_thread_fail1.cpp ]
|
||||
[ compile-fail threads/test_thread_fail2.cpp ]
|
||||
[ compile boost_fallthrough_test.cpp : <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ]
|
||||
;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
20
test/boost_fallthrough_test.cpp
Normal file
20
test/boost_fallthrough_test.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
// 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)
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
int test(int n)
|
||||
{
|
||||
switch (n)
|
||||
{
|
||||
case 0:
|
||||
n++;
|
||||
BOOST_FALLTHROUGH;
|
||||
case 1:
|
||||
n++;
|
||||
break;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
36
test/boost_no_cxx11_alignas.ipp
Normal file
36
test/boost_no_cxx11_alignas.ipp
Normal file
@@ -0,0 +1,36 @@
|
||||
// (C) Copyright Andrey Semashev 2013
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_ALIGNAS
|
||||
// TITLE: C++11 alignas keyword.
|
||||
// DESCRIPTION: The compiler does not support the C++11 alignment specification with alignas keyword.
|
||||
|
||||
namespace boost_no_cxx11_alignas {
|
||||
|
||||
struct alignas(16) my_data1
|
||||
{
|
||||
char data[10];
|
||||
};
|
||||
|
||||
struct alignas(double) my_data2
|
||||
{
|
||||
char data[16];
|
||||
};
|
||||
|
||||
my_data1 dummy1[2];
|
||||
my_data2 dummy2;
|
||||
alignas(16) char dummy3[10];
|
||||
alignas(double) char dummy4[32];
|
||||
|
||||
int test()
|
||||
{
|
||||
// TODO: Test that the data is actually aligned on platforms with uintptr_t
|
||||
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*>&)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
30
test/boost_no_cxx11_inline_namespaces.ipp
Normal file
30
test/boost_no_cxx11_inline_namespaces.ipp
Normal file
@@ -0,0 +1,30 @@
|
||||
// (C) Copyright Andrey Semashev 2013
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
// TITLE: C++11 inline namespaces.
|
||||
// DESCRIPTION: The compiler does not support C++11 inline namespaces.
|
||||
|
||||
namespace boost_no_cxx11_inline_namespaces {
|
||||
|
||||
inline namespace my_ns {
|
||||
|
||||
int data = 0;
|
||||
|
||||
} // namespace my_ns
|
||||
|
||||
int test()
|
||||
{
|
||||
data = 1;
|
||||
if (&data == &my_ns::data)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
26
test/boost_no_cxx11_trailing_result_types.ipp
Normal file
26
test/boost_no_cxx11_trailing_result_types.ipp
Normal file
@@ -0,0 +1,26 @@
|
||||
// (C) Copyright Andrey Semashev 2013
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
// TITLE: C++11 trailing function result types syntax.
|
||||
// DESCRIPTION: The compiler does not support the new C++11 function result types specification syntax.
|
||||
|
||||
namespace boost_no_cxx11_trailing_result_types {
|
||||
|
||||
template< typename T >
|
||||
auto foo(T const& t) -> T
|
||||
{
|
||||
return t;
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
return foo(0);
|
||||
}
|
||||
|
||||
}
|
||||
67
test/boost_no_cxx11_user_lit.ipp
Normal file
67
test/boost_no_cxx11_user_lit.ipp
Normal file
@@ -0,0 +1,67 @@
|
||||
// (C) Copyright John Maddock 2013
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
// TITLE: C++11 user defined literals.
|
||||
// DESCRIPTION: The compiler does not support the C++11 literals including user-defined suffixes.
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace boost_no_cxx11_user_defined_literals {
|
||||
|
||||
struct my_literal
|
||||
{
|
||||
constexpr my_literal() : val(0) {}
|
||||
constexpr my_literal(int i) : val(i) {}
|
||||
constexpr my_literal(const my_literal& a) : val(a.val) {}
|
||||
constexpr bool operator==(const my_literal& a) { return val == a.val; }
|
||||
int val;
|
||||
};
|
||||
|
||||
template <unsigned base, unsigned long long val, char... Digits>
|
||||
struct parse_int
|
||||
{
|
||||
// The default specialization is also the termination condition:
|
||||
// it gets invoked only when sizeof...Digits == 0.
|
||||
static_assert(base<=16u,"only support up to hexadecimal");
|
||||
static constexpr unsigned long long value{ val };
|
||||
};
|
||||
|
||||
template <unsigned base, unsigned long long val, char c, char... Digits>
|
||||
struct parse_int<base, val, c, Digits...>
|
||||
{
|
||||
static constexpr unsigned long long char_value = (c >= '0' && c <= '9')
|
||||
? c - '0'
|
||||
: (c >= 'a' && c <= 'f')
|
||||
? c - 'a'
|
||||
: (c >= 'A' && c <= 'F')
|
||||
? c - 'A'
|
||||
: 400u;
|
||||
static_assert(char_value < base, "Encountered a digit out of range");
|
||||
static constexpr unsigned long long value{ parse_int<base, val * base +
|
||||
char_value, Digits...>::value };
|
||||
};
|
||||
|
||||
constexpr my_literal operator "" _suf1(unsigned long long v)
|
||||
{
|
||||
return my_literal(v);
|
||||
}
|
||||
template <char...PACK>
|
||||
constexpr my_literal operator "" _bin()
|
||||
{
|
||||
return parse_int<2, 0, PACK...>::value;
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
constexpr my_literal a = 0x23_suf1;
|
||||
constexpr my_literal b = 1001_bin;
|
||||
return ((a == my_literal(0x23)) && (b == my_literal(9))) ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -563,6 +563,8 @@ void print_stdlib_macros()
|
||||
PRINT_MACRO(_HAS_EXCEPTIONS);
|
||||
PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
|
||||
PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
|
||||
// Libc++:
|
||||
PRINT_MACRO(_LIBCPP_VERSION);
|
||||
// STLPort and generic SGI STL options:
|
||||
PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
|
||||
PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
|
||||
@@ -990,6 +992,7 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
|
||||
PRINT_MACRO(BOOST_NO_CWCHAR);
|
||||
PRINT_MACRO(BOOST_NO_CWCTYPE);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_ALIGNAS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_AUTO_DECLARATIONS);
|
||||
@@ -1023,6 +1026,7 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPE_TRAITS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_MAP);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_SET);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_INLINE_NAMESPACES);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
|
||||
@@ -1035,8 +1039,10 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
|
||||
PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
|
||||
@@ -1098,25 +1104,6 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
|
||||
PRINT_MACRO(BOOST_NO_VOID_RETURNS);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// END GENERATED BLOCK
|
||||
@@ -1130,6 +1117,8 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
|
||||
PRINT_MACRO(BOOST_NOEXCEPT);
|
||||
PRINT_MACRO(BOOST_FORCEINLINE);
|
||||
PRINT_MACRO(BOOST_NOINLINE);
|
||||
PRINT_MACRO(BOOST_FALLTHROUGH);
|
||||
}
|
||||
|
||||
void print_separator()
|
||||
|
||||
3010
test/config_test.cpp
3010
test/config_test.cpp
File diff suppressed because it is too large
Load Diff
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_auto_declarations::test();
|
||||
return boost_no_cxx11_auto_declarations::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#include "boost_no_auto_declarations.ipp"
|
||||
#else
|
||||
namespace boost_no_auto_declarations = empty_boost;
|
||||
namespace boost_no_cxx11_auto_declarations = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_auto_declarations::test();
|
||||
return boost_no_cxx11_auto_declarations::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_auto_multideclarations::test();
|
||||
return boost_no_cxx11_auto_multideclarations::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#include "boost_no_auto_multidecl.ipp"
|
||||
#else
|
||||
namespace boost_no_auto_multideclarations = empty_boost;
|
||||
namespace boost_no_cxx11_auto_multideclarations = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_auto_multideclarations::test();
|
||||
return boost_no_cxx11_auto_multideclarations::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_char16_t::test();
|
||||
return boost_no_cxx11_char16_t::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_CHAR16_T
|
||||
#include "boost_no_char16_t.ipp"
|
||||
#else
|
||||
namespace boost_no_char16_t = empty_boost;
|
||||
namespace boost_no_cxx11_char16_t = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_char16_t::test();
|
||||
return boost_no_cxx11_char16_t::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_char32_t::test();
|
||||
return boost_no_cxx11_char32_t::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_CHAR32_T
|
||||
#include "boost_no_char32_t.ipp"
|
||||
#else
|
||||
namespace boost_no_char32_t = empty_boost;
|
||||
namespace boost_no_cxx11_char32_t = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_char32_t::test();
|
||||
return boost_no_cxx11_char32_t::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_constexpr::test();
|
||||
return boost_no_cxx11_constexpr::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_CONSTEXPR
|
||||
#include "boost_no_constexpr.ipp"
|
||||
#else
|
||||
namespace boost_no_constexpr = empty_boost;
|
||||
namespace boost_no_cxx11_constexpr = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_constexpr::test();
|
||||
return boost_no_cxx11_constexpr::test();
|
||||
}
|
||||
|
||||
|
||||
37
test/no_cxx11_alignas_fail.cpp
Normal file
37
test/no_cxx11_alignas_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_ALIGNAS
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_ALIGNAS should not be defined.
|
||||
// See file boost_no_cxx11_alignas.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_ALIGNAS
|
||||
#include "boost_no_cxx11_alignas.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_alignas::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_alignas_pass.cpp
Normal file
37
test/no_cxx11_alignas_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_ALIGNAS
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_ALIGNAS should be defined.
|
||||
// See file boost_no_cxx11_alignas.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_ALIGNAS
|
||||
#include "boost_no_cxx11_alignas.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_alignas = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_alignas::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_inline_namespaces_fail.cpp
Normal file
37
test/no_cxx11_inline_namespaces_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_INLINE_NAMESPACES should not be defined.
|
||||
// See file boost_no_cxx11_inline_namespaces.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#include "boost_no_cxx11_inline_namespaces.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_inline_namespaces::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_inline_namespaces_pass.cpp
Normal file
37
test/no_cxx11_inline_namespaces_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_INLINE_NAMESPACES should be defined.
|
||||
// See file boost_no_cxx11_inline_namespaces.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#include "boost_no_cxx11_inline_namespaces.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_inline_namespaces = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_inline_namespaces::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_trailing_result_types_fail.cpp
Normal file
37
test/no_cxx11_trailing_result_types_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should not be defined.
|
||||
// See file boost_no_cxx11_trailing_result_types.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#include "boost_no_cxx11_trailing_result_types.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_trailing_result_types::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_trailing_result_types_pass.cpp
Normal file
37
test/no_cxx11_trailing_result_types_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should be defined.
|
||||
// See file boost_no_cxx11_trailing_result_types.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#include "boost_no_cxx11_trailing_result_types.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_trailing_result_types = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_trailing_result_types::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_user_lit_fail.cpp
Normal file
37
test/no_cxx11_user_lit_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_USER_DEFINED_LITERALS should not be defined.
|
||||
// See file boost_no_cxx11_user_lit.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#include "boost_no_cxx11_user_lit.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_user_defined_literals::test();
|
||||
}
|
||||
|
||||
37
test/no_cxx11_user_lit_pass.cpp
Normal file
37
test/no_cxx11_user_lit_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Sun Apr 28 18:36:48 2013
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_USER_DEFINED_LITERALS should be defined.
|
||||
// See file boost_no_cxx11_user_lit.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#include "boost_no_cxx11_user_lit.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_user_defined_literals = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_user_defined_literals::test();
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_decltype::test();
|
||||
return boost_no_cxx11_decltype::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_DECLTYPE
|
||||
#include "boost_no_decltype.ipp"
|
||||
#else
|
||||
namespace boost_no_decltype = empty_boost;
|
||||
namespace boost_no_cxx11_decltype = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_decltype::test();
|
||||
return boost_no_cxx11_decltype::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_defaulted_functions::test();
|
||||
return boost_no_cxx11_defaulted_functions::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#include "boost_no_defaulted_functions.ipp"
|
||||
#else
|
||||
namespace boost_no_defaulted_functions = empty_boost;
|
||||
namespace boost_no_cxx11_defaulted_functions = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_defaulted_functions::test();
|
||||
return boost_no_cxx11_defaulted_functions::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_deleted_functions::test();
|
||||
return boost_no_cxx11_deleted_functions::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#include "boost_no_deleted_functions.ipp"
|
||||
#else
|
||||
namespace boost_no_deleted_functions = empty_boost;
|
||||
namespace boost_no_cxx11_deleted_functions = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_deleted_functions::test();
|
||||
return boost_no_cxx11_deleted_functions::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_explicit_conversion_operators::test();
|
||||
return boost_no_cxx11_explicit_conversion_operators::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#include "boost_no_explicit_cvt_ops.ipp"
|
||||
#else
|
||||
namespace boost_no_explicit_conversion_operators = empty_boost;
|
||||
namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_explicit_conversion_operators::test();
|
||||
return boost_no_cxx11_explicit_conversion_operators::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_extern_template::test();
|
||||
return boost_no_cxx11_extern_template::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#include "boost_no_extern_template.ipp"
|
||||
#else
|
||||
namespace boost_no_extern_template = empty_boost;
|
||||
namespace boost_no_cxx11_extern_template = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_extern_template::test();
|
||||
return boost_no_cxx11_extern_template::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_function_template_default_args::test();
|
||||
return boost_no_cxx11_function_template_default_args::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#include "boost_no_function_template_default_args.ipp"
|
||||
#else
|
||||
namespace boost_no_function_template_default_args = empty_boost;
|
||||
namespace boost_no_cxx11_function_template_default_args = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_function_template_default_args::test();
|
||||
return boost_no_cxx11_function_template_default_args::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_lambdas::test();
|
||||
return boost_no_cxx11_lambdas::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_LAMBDAS
|
||||
#include "boost_no_lambdas.ipp"
|
||||
#else
|
||||
namespace boost_no_lambdas = empty_boost;
|
||||
namespace boost_no_cxx11_lambdas = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_lambdas::test();
|
||||
return boost_no_cxx11_lambdas::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_noexcept::test();
|
||||
return boost_no_cxx11_noexcept::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_NOEXCEPT
|
||||
#include "boost_no_noexcept.ipp"
|
||||
#else
|
||||
namespace boost_no_noexcept = empty_boost;
|
||||
namespace boost_no_cxx11_noexcept = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_noexcept::test();
|
||||
return boost_no_cxx11_noexcept::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_nullptr::test();
|
||||
return boost_no_cxx11_nullptr::test();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#ifndef BOOST_NO_CXX11_NULLPTR
|
||||
#include "boost_no_nullptr.ipp"
|
||||
#else
|
||||
namespace boost_no_nullptr = empty_boost;
|
||||
namespace boost_no_cxx11_nullptr = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_nullptr::test();
|
||||
return boost_no_cxx11_nullptr::test();
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user