mirror of
https://github.com/boostorg/config.git
synced 2025-07-30 04:17:16 +02:00
Merge config changes from Trunk.
[SVN r76122]
This commit is contained in:
@ -27,14 +27,16 @@
|
||||
<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>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
|
||||
that describe defects</a></span></dt>
|
||||
<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
|
||||
that describe optional features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
|
||||
that describe possible C++0x features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
|
||||
that describe C++0x features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
|
||||
that describe possible C++ future features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
|
||||
that describe C++11 features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
|
||||
that allow use of C++11 features with C++03 compilers</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
|
||||
Helper Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
|
||||
@ -44,13 +46,13 @@
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects" title="Macros that describe defects">Macros
|
||||
that describe defects</a>
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_c__03_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects" title="Macros that describe C++03 defects">Macros
|
||||
that describe C++03 defects</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The following macros all describe features that are required by the C++ standard,
|
||||
if one of the following macros is defined, then it represents a defect in
|
||||
the compiler's conformance with the standard.
|
||||
The following macros all describe features that are required by the C++03
|
||||
standard, if one of the following macros is defined, then it represents a
|
||||
defect in the compiler's conformance with the 2003 standard.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
@ -2235,13 +2237,12 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features" title="Macros that describe possible C++0x features">Macros
|
||||
that describe possible C++0x features</a>
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
|
||||
that describe possible C++ future features</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The following macros describe features that are likely to be included in
|
||||
the upcoming ISO C++ standard, C++0x, but have not yet been approved for
|
||||
inclusion in the language.
|
||||
The following macros describe features that may be included in some future
|
||||
ISO C++ standard, but have not yet been approved for inclusion in the language.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
@ -2276,12 +2277,12 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported" title="Macros that describe C++0x features not supported">Macros
|
||||
that describe C++0x features not supported</a>
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
|
||||
that describe C++11 features not supported</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The following macros describe features in the upcoming ISO C++ standard,
|
||||
C++0x, that are not yet supported by a particular compiler or library.
|
||||
The following macros describe features in the 2011 ISO C++ standard, formerly
|
||||
known as C++0x, that are not yet supported by a particular compiler or library.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
@ -2877,6 +2878,159 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers"></a><a name="config_11_for_03"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers" title="Macros that allow use of C++11 features with C++03 compilers">Macros
|
||||
that allow use of C++11 features with C++03 compilers</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The following macros allow use of C++11 features even with compilers that
|
||||
do not yet provide compliant C++11 support.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Macro
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Section
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
|
||||
</p>
|
||||
</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,
|
||||
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>
|
||||
<p>
|
||||
with:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">tuple</span><span class="special">();</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">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>
|
||||
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>
|
||||
<p>
|
||||
with:
|
||||
</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">BOOST_CONSTEXPR_OR_CONST</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>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
|
||||
<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>
|
||||
<p>
|
||||
with:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_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>
|
||||
</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_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>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
|
||||
is defined (i.e. C++03 compliant compilers) these macros 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="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>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<p>
|
||||
If <code class="computeroutput"><span class="identifier">BOOST_NO_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>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
|
||||
Helper Macros</a>
|
||||
</h3></div></div></div>
|
||||
@ -3237,71 +3391,34 @@
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_FORCEINLINE</span></code>
|
||||
</p>
|
||||
</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,
|
||||
when defining a constexpr function or constructor replace:
|
||||
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 always
|
||||
be inlined. Overuse of this macro can lead to significant bloat,
|
||||
while good use can increase performance in certain cases, such
|
||||
as computation-intensive code built through generative programming
|
||||
techniques.
|
||||
</p>
|
||||
<p>
|
||||
Usage example:
|
||||
</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>
|
||||
<p>
|
||||
with:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_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">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
||||
<span class="identifier">BOOST_FORCEINLINE</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">return</span> <span class="identifier">t</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">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>
|
||||
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>
|
||||
<p>
|
||||
with:
|
||||
</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">BOOST_CONSTEXPR_OR_CONST</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>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
|
||||
<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>
|
||||
<p>
|
||||
with:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_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>
|
||||
Note that use of this macro can lead to cryptic error messages
|
||||
with some compilers. Consider defining it to <code class="computeroutput"><span class="keyword">inline</span></code>
|
||||
before including the Boost.Config header in order to be able to
|
||||
debug errors more easily.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -29,7 +29,7 @@
|
||||
<div><p class="copyright">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id910601"></a><p>
|
||||
<a name="id988561"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
@ -58,14 +58,16 @@
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
|
||||
that describe defects</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/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_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
|
||||
that describe optional features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
|
||||
that describe possible C++0x features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
|
||||
that describe C++0x features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
|
||||
that describe possible C++ future features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
|
||||
that describe C++11 features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
|
||||
that allow use of C++11 features with C++03 compilers</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
|
||||
Helper Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
|
||||
@ -947,7 +949,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: July 13, 2011 at 18:00:55 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: October 11, 2011 at 17:21:29 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -16,11 +16,11 @@
|
||||
|
||||
[#config_defects]
|
||||
|
||||
[section Macros that describe defects]
|
||||
[section Macros that describe C++03 defects]
|
||||
|
||||
The following macros all describe features that are required by the C++ standard,
|
||||
The following macros all describe features that are required by the C++03 standard,
|
||||
if one of the following macros is defined, then it represents a defect in the
|
||||
compiler's conformance with the standard.
|
||||
compiler's conformance with the 2003 standard.
|
||||
|
||||
|
||||
[table
|
||||
@ -514,11 +514,10 @@ standard).
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Macros that describe possible C++0x features]
|
||||
[section Macros that describe possible C++ future features]
|
||||
|
||||
The following macros describe features that are likely to be included in the
|
||||
upcoming ISO C++ standard, C++0x, but have not yet been approved for inclusion
|
||||
in the language.
|
||||
The following macros describe features that may be included in some future
|
||||
ISO C++ standard, but have not yet been approved for inclusion in the language.
|
||||
|
||||
|
||||
[table
|
||||
@ -531,9 +530,9 @@ The compiler supports concepts.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Macros that describe C++0x features not supported]
|
||||
[section Macros that describe C++11 features not supported]
|
||||
|
||||
The following macros describe features in the upcoming ISO C++ standard, C++0x,
|
||||
The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,
|
||||
that are not yet supported by a particular compiler or library.
|
||||
|
||||
[table
|
||||
@ -641,6 +640,76 @@ variadic macros.
|
||||
|
||||
[endsect]
|
||||
|
||||
[#config_11_for_03]
|
||||
|
||||
[section Macros that allow use of C++11 features with C++03 compilers]
|
||||
|
||||
The following macros allow use of C++11 features even with compilers that do not yet
|
||||
provide compliant C++11 support.
|
||||
|
||||
[table
|
||||
[[Macro ][Section ][ Description ]]
|
||||
|
||||
[[`BOOST_CONSTEXPR`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining a constexpr function or constructor replace:
|
||||
``
|
||||
constexpr tuple();
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_CONSTEXPR tuple();
|
||||
``
|
||||
]]
|
||||
[[`BOOST_CONSTEXPR_OR_CONST`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[`BOOST_STATIC_CONSTEXPR`][
|
||||
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[
|
||||
``
|
||||
BOOST_NOEXCEPT
|
||||
BOOST_NOEXCEPT_IF(Predicate)
|
||||
BOOST_NOEXCEPT_EXPR(Expression)
|
||||
``
|
||||
][
|
||||
If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
|
||||
[:
|
||||
``
|
||||
#define BOOST_NOEXCEPT
|
||||
#define BOOST_NOEXCEPT_IF(Predicate)
|
||||
#define BOOST_NOEXCEPT_EXPR(Expression) false
|
||||
``
|
||||
]
|
||||
If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
|
||||
[:
|
||||
``
|
||||
#define BOOST_NOEXCEPT noexcept
|
||||
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
|
||||
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
|
||||
``
|
||||
]
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
[#config_helpers]
|
||||
|
||||
[section Boost Helper Macros]
|
||||
@ -820,37 +889,25 @@ the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
|
||||
used to create a mangled name in combination with a predefined macro such a
|
||||
\_\_LINE__.
|
||||
]]
|
||||
[[`BOOST_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:
|
||||
[[`BOOST_FORCEINLINE`][
|
||||
This macro can be used in place of the `inline` keyword to instruct the compiler
|
||||
that a function should always be inlined.
|
||||
Overuse of this macro can lead to significant bloat, while good use can increase
|
||||
performance in certain cases, such as computation-intensive code built through
|
||||
generative programming techniques.
|
||||
|
||||
Usage example:
|
||||
``
|
||||
constexpr tuple();
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_CONSTEXPR tuple();
|
||||
``
|
||||
]]
|
||||
[[`BOOST_CONSTEXPR_OR_CONST`][
|
||||
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
|
||||
elsewhere. For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
|
||||
``
|
||||
]]
|
||||
[[`BOOST_STATIC_CONSTEXPR`][
|
||||
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
|
||||
``
|
||||
static constexpr UIntType xor_mask = a;
|
||||
``
|
||||
with:
|
||||
``
|
||||
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
|
||||
template<class T>
|
||||
BOOST_FORCEINLINE T& f(T& t)
|
||||
{
|
||||
return t;
|
||||
}
|
||||
``
|
||||
|
||||
Note that use of this macro can lead to cryptic error messages with some compilers.
|
||||
Consider defining it to `inline` before including the Boost.Config header in order to be
|
||||
able to debug errors more easily.
|
||||
]]
|
||||
]
|
||||
|
||||
|
@ -145,11 +145,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
// vc90:
|
||||
# define BOOST_LIB_TOOLSET "vc90"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
|
||||
|
||||
// vc10:
|
||||
# define BOOST_LIB_TOOLSET "vc100"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
|
||||
|
||||
// vc11:
|
||||
# define BOOST_LIB_TOOLSET "vc110"
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
|
@ -25,35 +25,65 @@
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
# define BOOST_NO_CHAR16_T
|
||||
# define BOOST_NO_CHAR32_T
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_constexpr)
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype)
|
||||
# define BOOST_NO_DECLTYPE
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
|
||||
#if !__has_feature(cxx_defaulted_functions)
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_deleted_functions)
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#if !__has_feature(cxx_explicit_conversions)
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_INITIALIZER_LISTS
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_lambdas)
|
||||
# define BOOST_NO_LAMBDAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_noexcept)
|
||||
# define BOOST_NO_NOEXCEPT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_nullptr)
|
||||
# define BOOST_NO_NULLPTR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_raw_string_literals)
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rvalue_references)
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
@ -67,8 +97,13 @@
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#if !__has_feature(cxx_alias_templates)
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_unicode_literals)
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_variadic_templates)
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
|
@ -221,6 +221,21 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
|
||||
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# undef BOOST_NO_NULLPTR
|
||||
# undef BOOST_NO_RVALUE_REFERENCES
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
# undef BOOST_NO_TEMPLATE_ALIASES
|
||||
# undef BOOST_NO_VARIADIC_TEMPLATES
|
||||
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
// continues to list scoped enum support as "Partial"
|
||||
//# undef BOOST_NO_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
//
|
||||
// fenv.h appears not to work with Intel prior to 12.0:
|
||||
|
@ -236,6 +236,8 @@
|
||||
# define BOOST_COMPILER_VERSION evc9
|
||||
# elif _MSC_VER == 1600
|
||||
# define BOOST_COMPILER_VERSION evc10
|
||||
# elif _MSC_VER == 1700
|
||||
# define BOOST_COMPILER_VERSION evc11
|
||||
# else
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
@ -259,6 +261,8 @@
|
||||
# define BOOST_COMPILER_VERSION 9.0
|
||||
# elif _MSC_VER == 1600
|
||||
# define BOOST_COMPILER_VERSION 10.0
|
||||
# elif _MSC_VER == 1700
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||
# endif
|
||||
@ -273,8 +277,8 @@
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 1600 (VC10, aka 2010):
|
||||
#if (_MSC_VER > 1600)
|
||||
// last known and checked version is 1700 (VC11, aka 2011):
|
||||
#if (_MSC_VER > 1700)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
@ -635,6 +635,20 @@ namespace std{ using ::type_info; }
|
||||
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
|
||||
#define BOOST_DO_JOIN2( X, Y ) X##Y
|
||||
|
||||
//
|
||||
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
|
||||
// These aid the transition to C++11 while still supporting C++03 compilers
|
||||
//
|
||||
#ifdef BOOST_NO_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT_IF(Predicate)
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) false
|
||||
#else
|
||||
# define BOOST_NOEXCEPT noexcept
|
||||
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set some default values for compiler/library/platform names.
|
||||
// These are for debugging config setup only:
|
||||
@ -674,5 +688,17 @@ namespace std{ using ::type_info; }
|
||||
|
||||
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
|
||||
|
||||
// BOOST_FORCEINLINE ---------------------------------------------//
|
||||
// Macro to use in place of 'inline' to force a function to be inline
|
||||
#if !defined(BOOST_FORCEINLINE)
|
||||
# if defined(_MSC_VER)
|
||||
# define BOOST_FORCEINLINE __forceinline
|
||||
# elif defined(__GNUC__) && __GNUC__ > 3
|
||||
# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
|
||||
# else
|
||||
# define BOOST_FORCEINLINE inline
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Regression test Jamfile for boost configuration setup.
|
||||
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||
# This file was automatically generated on Wed Jul 13 18:50:14 2011
|
||||
# This file was automatically generated on Sun Nov 27 09:43:19 2011
|
||||
# by libs/config/tools/generate.cpp
|
||||
# Copyright John Maddock.
|
||||
# Use, modification and distribution are subject to the
|
||||
|
@ -14,10 +14,9 @@
|
||||
|
||||
namespace boost_has_ftime{
|
||||
|
||||
void f()
|
||||
void f(FILETIME)
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
}
|
||||
|
||||
int test()
|
||||
|
@ -13,9 +13,19 @@
|
||||
|
||||
namespace boost_no_char16_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char16_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char16_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char16_t* p = u"abc";
|
||||
const char16_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,9 +12,19 @@
|
||||
|
||||
namespace boost_no_char32_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char32_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char32_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char32_t* p = U"abc";
|
||||
const char32_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,8 @@
|
||||
|
||||
namespace boost_no_constexpr {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
constexpr int square(int x) { return x * x; } // from N2235
|
||||
|
||||
// from 5.19:
|
||||
@ -37,6 +39,7 @@ X<a> xx; // OK: unique conversion to int
|
||||
int test()
|
||||
{
|
||||
int i = square(5);
|
||||
quiet_warning(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,8 @@
|
||||
|
||||
namespace boost_no_decltype {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
struct test_class
|
||||
{
|
||||
test_class() {}
|
||||
@ -39,6 +41,7 @@ int test()
|
||||
{
|
||||
int i;
|
||||
decltype(i) j;
|
||||
// quiet_warning(j);
|
||||
decltype(get_test_class()) k;
|
||||
#ifndef _MSC_VER
|
||||
// Although the VC++ decltype is buggy, we none the less enable support,
|
||||
|
@ -11,7 +11,7 @@
|
||||
// DESCRIPTION: The compiler does not support C++0x defaulted functions
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error Defaulted functions aren't really supported in non-C++0x mode
|
||||
# error Defaulted functions are not supported in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_defaulted_functions {
|
||||
|
@ -11,7 +11,7 @@
|
||||
// DESCRIPTION: The compiler does not support C++0x =delete functions
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error Deleted functions aren't really supported in non-C++0x mode
|
||||
# error Deleted functions are not supported in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_deleted_functions {
|
||||
|
@ -11,11 +11,13 @@
|
||||
// DESCRIPTION: The compiler does not support C++0x explicit conversion operators
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error This feature isn't really available in non-C++0x mode
|
||||
# error This feature is not available in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_explicit_conversion_operators {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
struct foo {
|
||||
explicit operator int() { return 1; }
|
||||
};
|
||||
@ -24,6 +26,7 @@ int test()
|
||||
{
|
||||
foo f;
|
||||
int i = int(f);
|
||||
quiet_warning(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
namespace boost_no_initializer_lists {
|
||||
|
||||
void quiet_warning(const std::initializer_list<int>&){}
|
||||
|
||||
void f(std::initializer_list<int>)
|
||||
{
|
||||
}
|
||||
@ -25,6 +27,7 @@ int test()
|
||||
std::vector<std::string> v{"once", "upon", "a", "time"}; // See C++ std 8.5.4
|
||||
f( { 1, 2, 3, 4 } );
|
||||
std::initializer_list<int> x = { 1, 2 };
|
||||
quiet_warning(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
// DESCRIPTION: The compiler does not support the C++0x lambda feature
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error This feature isn't really available in non-C++0x mode
|
||||
# error This feature is not available in non-C++0x mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_lambdas {
|
||||
|
@ -11,12 +11,15 @@
|
||||
|
||||
namespace boost_no_noexcept {
|
||||
|
||||
void quiet_warning(bool){}
|
||||
|
||||
int f() noexcept ;
|
||||
int g() noexcept( noexcept( f() ) ) ;
|
||||
|
||||
int test()
|
||||
{
|
||||
bool b = noexcept( g() );
|
||||
quiet_warning(b);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,9 +12,12 @@
|
||||
|
||||
namespace boost_no_nullptr {
|
||||
|
||||
void quiet_warning(const int*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
int * p = nullptr;
|
||||
quiet_warning(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,15 @@
|
||||
|
||||
namespace boost_no_raw_literals {
|
||||
|
||||
void quiet_warning(const char*){}
|
||||
void quiet_warning(const wchar_t*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char* s = R"(abc)";
|
||||
quiet_warning(s);
|
||||
const wchar_t* ws = LR"(abc)";
|
||||
quiet_warning(ws);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -13,10 +13,12 @@
|
||||
|
||||
namespace boost_no_std_typeinfo
|
||||
{
|
||||
void quiet_warning(const std::type_info*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
std::type_info * p = 0;
|
||||
quiet_warning(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,14 @@
|
||||
|
||||
namespace boost_no_unicode_literals {
|
||||
|
||||
void quiet_warning(const char*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char* c8 = u8"";
|
||||
const char16_t* c16 = u"";
|
||||
const char32_t* c32 = U"";
|
||||
quiet_warning(c8);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -49,13 +49,15 @@
|
||||
|
||||
namespace boost_no_variadic_macros {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
template<TEST_VARIADIC_MACRO_STRIP_PARENS((typename T,int))> struct test_variadic_macro_class {};
|
||||
|
||||
int test()
|
||||
{
|
||||
|
||||
int x = TEST_VARIADIC_MACRO_STRIP_PARENS(3);
|
||||
|
||||
quiet_warning(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1102,6 +1102,10 @@ void print_boost_macros()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// END GENERATED BLOCK
|
||||
|
||||
PRINT_MACRO(BOOST_INTEL);
|
||||
@ -1111,6 +1115,8 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_CONSTEXPR);
|
||||
PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
|
||||
PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
|
||||
PRINT_MACRO(BOOST_NOEXCEPT);
|
||||
PRINT_MACRO(BOOST_FORCEINLINE);
|
||||
}
|
||||
|
||||
void print_separator()
|
||||
|
@ -1,4 +1,4 @@
|
||||
// This file was automatically generated on Wed Jul 13 18:50:14 2011
|
||||
// This file was automatically generated on Sun Nov 27 09:43:19 2011
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
|
Reference in New Issue
Block a user