Add BOOST_NOEXCEPT_OR_NOTHROW

[SVN r82331]
This commit is contained in:
Beman Dawes
2013-01-03 14:55:24 +00:00
parent a0272a7c68
commit 50a562867e
4 changed files with 126 additions and 8 deletions

View File

@@ -2898,7 +2898,7 @@
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERD</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
</p> </p>
</td> </td>
<td> <td>
@@ -3063,6 +3063,7 @@
<p> <p>
</p> </p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOEXCEPT</span> <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_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> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span>
</pre> </pre>
@@ -3071,7 +3072,7 @@
</td> </td>
<td> <td>
<p> <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 is defined (i.e. C++03 compliant compilers) these macros are defined
as: as:
</p> </p>
@@ -3079,6 +3080,7 @@
<p> <p>
</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> <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_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> <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> </pre>
@@ -3086,7 +3088,7 @@
</p> </p>
</blockquote></div> </blockquote></div>
<p> <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 is not defined (i.e. C++11 compliant compilers) they are defined
as: as:
</p> </p>
@@ -3094,6 +3096,7 @@
<p> <p>
</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> <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="identifier">noexcept</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="identifier">noexcept</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span> <span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_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> <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> </pre>
@@ -4610,12 +4613,12 @@
<tr> <tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERD</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERED</span></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERD</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
</p> </p>
</td> </td>
<td> <td>
@@ -4721,6 +4724,116 @@
<td> <td>
</td> </td>
</tr> </tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_STATIC_ASSERT</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
(negated)
</p>
</td>
<td>
<p>
Boost 1.53
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_VARIADIC_TMPL</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_TEMPLATES</span></code>
(negated)
</p>
</td>
<td>
<p>
Boost 1.53
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_RVALUE_REFS</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RVALUE_REFERENCES</span></code>
(negated)
</p>
</td>
<td>
<p>
Boost 1.53
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR_16_T</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR_16_T</span></code>
(negated)
</p>
</td>
<td>
<p>
Boost 1.53
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR_32_T</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR_32_T</span></code>
(negated)
</p>
</td>
<td>
<p>
Boost 1.53
</p>
</td>
<td>
</td>
</tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>

View File

@@ -951,7 +951,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: October 25, 2012 at 12:28:15 GMT</small></p></td> <td align="left"><p><small>Last revised: January 03, 2013 at 13:01:40 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -700,22 +700,25 @@ with:
[[ [[
`` ``
BOOST_NOEXCEPT BOOST_NOEXCEPT
BOOST_NOEXCEPT_OR_NOTHROW
BOOST_NOEXCEPT_IF(Predicate) BOOST_NOEXCEPT_IF(Predicate)
BOOST_NOEXCEPT_EXPR(Expression) 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
#define BOOST_NOEXCEPT_OR_NOTHROW throw()
#define BOOST_NOEXCEPT_IF(Predicate) #define BOOST_NOEXCEPT_IF(Predicate)
#define BOOST_NOEXCEPT_EXPR(Expression) false #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 noexcept
#define BOOST_NOEXCEPT_OR_NOTHROW noexcept
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate)) #define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) #define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
`` ``

View File

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