forked from boostorg/config
Compare commits
8 Commits
boost-1.47
...
boost-1.49
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30b85fc2a5 | ||
|
|
e1657372eb | ||
|
|
6f18ead6db | ||
|
|
3b7ff73e9d | ||
|
|
7bd78dda03 | ||
|
|
e7dd982de7 | ||
|
|
18be7dcf00 | ||
|
|
0bcba7df38 |
@@ -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.74.0">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="rationale.html" title="Rationale">
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
|
||||
</h2></div></div></div>
|
||||
@@ -47,7 +47,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<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>
|
||||
|
||||
@@ -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.74.0">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="../index.html" title="Boost.Config">
|
||||
@@ -22,19 +22,21 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<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>
|
||||
<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
|
||||
@@ -42,15 +44,15 @@
|
||||
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
|
||||
for libraries with separate source code</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_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>
|
||||
<a name="config_defects"></a><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.
|
||||
<p>
|
||||
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>
|
||||
@@ -422,16 +424,16 @@
|
||||
The compiler does not perform function template ordering or its
|
||||
function template ordering is incorrect.
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="comment">// #1
|
||||
</span><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="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="comment">// #1</span>
|
||||
<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="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
|
||||
|
||||
<span class="comment">// #2
|
||||
</span><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="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">(*)(</span><span class="identifier">U</span><span class="special">));</span>
|
||||
<span class="comment">// #2</span>
|
||||
<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="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">(*)(</span><span class="identifier">U</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">void</span> <span class="identifier">bar</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
|
||||
|
||||
<span class="identifier">f</span><span class="special">(&</span><span class="identifier">bar</span><span class="special">);</span> <span class="comment">// should choose #2.
|
||||
</span></pre>
|
||||
<span class="identifier">f</span><span class="special">(&</span><span class="identifier">bar</span><span class="special">);</span> <span class="comment">// should choose #2.</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
@@ -1324,12 +1326,12 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_optional_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features" title="Macros that describe optional features">Macros
|
||||
<a name="boost_config.boost_macro_reference.macros_that_describe_optional_features"></a><a name="config_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features" title="Macros that describe optional features">Macros
|
||||
that describe optional features</a>
|
||||
</h3></div></div></div>
|
||||
<a name="config_features"></a><p>
|
||||
<p>
|
||||
The following macros describe features that are not required by the C++ standard.
|
||||
The macro is only defined if the feature is present.
|
||||
</p>
|
||||
@@ -1439,7 +1441,24 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The platform has the Win32 API <code class="computeroutput"><span class="identifier">GetSystemTimeAsFileTime</span></code>.
|
||||
The platform has the Win32 API type FTIME.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_GETSYSTEMTIMEASFILETIME</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Platform
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The platform has the Win32 API GetSystemTimeAsFileTime.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2216,15 +2235,14 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<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>
|
||||
@@ -2257,14 +2275,14 @@
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<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>
|
||||
@@ -2593,6 +2611,20 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE_N3276</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the extension to <code class="computeroutput"><span class="identifier">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>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code>
|
||||
@@ -2714,7 +2746,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support 'nullptr'.
|
||||
The compiler does not support <code class="computeroutput"><span class="identifier">nullptr</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2844,12 +2876,165 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
|
||||
<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>
|
||||
<a name="config_helpers"></a><p>
|
||||
<p>
|
||||
The following macros are either simple helpers, or macros that provide workarounds
|
||||
for compiler/standard library defects.
|
||||
</p>
|
||||
@@ -2889,10 +3074,10 @@
|
||||
usage is then:
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">MACRONAME</span><span class="special">,</span> <span class="identifier">CONDITION</span><span class="special">)</span>
|
||||
<span class="comment">// workaround code goes here...
|
||||
</span><span class="preprocessor">#else</span>
|
||||
<span class="comment">// Standard conforming code goes here...
|
||||
</span><span class="preprocessor">#endif</span>
|
||||
<span class="comment">// workaround code goes here...</span>
|
||||
<span class="preprocessor">#else</span>
|
||||
<span class="comment">// Standard conforming code goes here...</span>
|
||||
<span class="preprocessor">#endif</span>
|
||||
</pre>
|
||||
<p>
|
||||
where <code class="computeroutput"><span class="identifier">MACRONAME</span></code>
|
||||
@@ -3206,83 +3391,46 @@
|
||||
<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>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.boost_informational_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros" title="Boost Informational Macros">Boost
|
||||
<a name="boost_config.boost_macro_reference.boost_informational_macros"></a><a name="config_info_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros" title="Boost Informational Macros">Boost
|
||||
Informational Macros</a>
|
||||
</h3></div></div></div>
|
||||
<a name="config_info_macros"></a><p>
|
||||
<p>
|
||||
The following macros describe boost features; these are, generally speaking
|
||||
the only boost macros that should be tested in user code.
|
||||
</p>
|
||||
@@ -3555,7 +3703,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code" title="Macros for libraries with separate source code">Macros
|
||||
for libraries with separate source code</a>
|
||||
@@ -3572,14 +3720,14 @@
|
||||
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 type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Controlling shared library symbol visibility
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Fixing the ABI of the compiled library
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Selecting which compiled library to link against based upon the compilers
|
||||
settings
|
||||
</li>
|
||||
@@ -3588,7 +3736,7 @@
|
||||
See <a href="http://svn.boost.org/trac/boost/wiki/Guidelines/Separate" target="_top">Guidelines
|
||||
for Authors of Boost Libraries Containing Separate Source</a>
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility" title="Macros controlling shared library symbol visibility">Macros
|
||||
controlling shared library symbol visibility</a>
|
||||
@@ -3743,7 +3891,7 @@
|
||||
<span class="special">...</span>
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing" title="ABI Fixing">ABI
|
||||
Fixing</a>
|
||||
@@ -3771,28 +3919,28 @@
|
||||
<pre class="programlisting"><span class="preprocessor">#ifndef</span> <span class="identifier">MY_INCLUDE_GUARD</span>
|
||||
<span class="preprocessor">#define</span> <span class="identifier">MY_INCLUDE_GUARD</span>
|
||||
|
||||
<span class="comment">// all includes go here:
|
||||
</span><code class="literal"><span class="bold"><strong>#include <boost/config.hpp></strong></span></code>
|
||||
<span class="comment">// all includes go here:</span>
|
||||
<code class="literal"><span class="bold"><strong>#include <boost/config.hpp></strong></span></code>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">whatever</span><span class="special">></span>
|
||||
|
||||
<code class="literal"><span class="bold"><strong>#include <boost/config/abi_prefix.hpp></strong></span></code> <span class="comment">// must be the last #include
|
||||
</span>
|
||||
<code class="literal"><span class="bold"><strong>#include <boost/config/abi_prefix.hpp></strong></span></code> <span class="comment">// must be the last #include</span>
|
||||
|
||||
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
|
||||
|
||||
<span class="comment">// your code goes here
|
||||
</span>
|
||||
<span class="comment">// your code goes here</span>
|
||||
|
||||
<span class="special">}</span>
|
||||
|
||||
<code class="literal"><span class="bold"><strong>#include <boost/config/abi_suffix.hpp></strong></span></code> <span class="comment">// pops abi_prefix.hpp pragmas
|
||||
</span>
|
||||
<span class="preprocessor">#endif</span> <span class="comment">// include guard
|
||||
</span></pre>
|
||||
<code class="literal"><span class="bold"><strong>#include <boost/config/abi_suffix.hpp></strong></span></code> <span class="comment">// pops abi_prefix.hpp pragmas</span>
|
||||
|
||||
<span class="preprocessor">#endif</span> <span class="comment">// include guard</span>
|
||||
</pre>
|
||||
<p>
|
||||
<span class="bold"><strong>my_library.cpp</strong></span>
|
||||
</p>
|
||||
<pre class="programlisting"><span class="special">...</span>
|
||||
<span class="comment">// nothing special need be done in the implementation file
|
||||
</span><span class="special">...</span>
|
||||
<span class="comment">// nothing special need be done in the implementation file</span>
|
||||
<span class="special">...</span>
|
||||
</pre>
|
||||
<p>
|
||||
The user can disable this mechanism by defining <code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>,
|
||||
@@ -3801,7 +3949,7 @@
|
||||
to point to their own prefix/suffix headers if they so wish.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection" title="Automatic library selection">Automatic
|
||||
library selection</a>
|
||||
@@ -3856,12 +4004,12 @@
|
||||
<span class="bold"><strong>my_library.hpp</strong></span>
|
||||
</p>
|
||||
<pre class="programlisting"><span class="special">...</span>
|
||||
<span class="comment">//
|
||||
</span><span class="comment">// Don't include auto-linking code if the user has disabled it by
|
||||
</span><span class="comment">// defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this
|
||||
</span><span class="comment">// is one of our own source files (signified by BOOST_MY_LIBRARY_SOURCE):
|
||||
</span><span class="comment">//
|
||||
</span><span class="preprocessor">#if</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_ALL_NO_LIB</span><span class="special">)</span> <span class="special">&&</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_NO_LIB</span><span class="special">)</span> <span class="special">&&</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_SOURCE</span><span class="special">)</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="comment">// Don't include auto-linking code if the user has disabled it by</span>
|
||||
<span class="comment">// defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this </span>
|
||||
<span class="comment">// is one of our own source files (signified by BOOST_MY_LIBRARY_SOURCE):</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="preprocessor">#if</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_ALL_NO_LIB</span><span class="special">)</span> <span class="special">&&</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_NO_LIB</span><span class="special">)</span> <span class="special">&&</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_SOURCE</span><span class="special">)</span>
|
||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_LIB_NAME</span> <span class="identifier">boost_my_library</span>
|
||||
<span class="preprocessor"># ifdef</span> <span class="identifier">BOOST_MY_LIBRARY_DYN_LINK</span>
|
||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_DYN_LINK</span>
|
||||
@@ -3873,10 +4021,10 @@
|
||||
<p>
|
||||
<span class="bold"><strong>my_library.cpp</strong></span>
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
|
||||
</span><span class="comment">// library is being built (possibly exporting rather than importing code)
|
||||
</span><span class="comment">//
|
||||
</span><span class="preprocessor">#define</span> <span class="identifier">BOOST_MY_LIBRARY_SOURCE</span>
|
||||
<pre class="programlisting"><span class="comment">// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the</span>
|
||||
<span class="comment">// library is being built (possibly exporting rather than importing code)</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_MY_LIBRARY_SOURCE</span>
|
||||
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">my_library</span><span class="special">/</span><span class="identifier">my_library</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="special">...</span>
|
||||
@@ -3886,7 +4034,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<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>
|
||||
|
||||
@@ -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.74.0">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
|
||||
@@ -22,7 +22,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
|
||||
Boost Authors</a>
|
||||
@@ -61,26 +61,26 @@
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" 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
|
||||
way to support compilers that do not comply with the C++ Standard (ISO/IEC
|
||||
14882).
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
If a library implementer wishes to support some non-conforming compiler,
|
||||
or to support some platform specific feature, "<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>" is the preferred way to obtain
|
||||
configuration information not available from the standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, etc.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
If configuration information can be deduced from standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, use those standard headers rather
|
||||
than <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>.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Boost files that use macros defined in <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>
|
||||
should have sensible, standard conforming, default behavior if the macro
|
||||
is not defined. This means that the starting point for porting <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> to a new platform is simply to define
|
||||
@@ -88,22 +88,22 @@
|
||||
is no sensible default behavior, an #error message should describe the
|
||||
problem.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||||
post a request on the Boost mailing list. There is no guarantee such a
|
||||
request will be honored; the intent is to limit the complexity of config.hpp.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
The intent is to support only compilers which appear on their way to becoming
|
||||
C++ Standard compliant, and only recent releases of those compilers at
|
||||
that.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
The intent is not to disable mainstream features now well-supported by
|
||||
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">Disabling
|
||||
Compiler Warnings</a>
|
||||
@@ -116,17 +116,17 @@
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" 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
|
||||
used by a library source file or a test case.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
|
||||
you include any other header</em></span></strong></span>.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
This header only disables warnings that are hard or impossible to otherwise
|
||||
deal with, and which are typically emitted by one compiler only, or in
|
||||
one compilers own standard library headers.
|
||||
@@ -182,7 +182,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
|
||||
New Defect Macros</a>
|
||||
@@ -206,10 +206,10 @@
|
||||
the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
|
||||
file with the following comments near the top:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO
|
||||
</span><span class="comment">// TITLE: foo
|
||||
</span><span class="comment">// DESCRIPTION: If the compiler fails to support foo
|
||||
</span></pre>
|
||||
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO</span>
|
||||
<span class="comment">// TITLE: foo</span>
|
||||
<span class="comment">// DESCRIPTION: If the compiler fails to support foo</span>
|
||||
</pre>
|
||||
<p>
|
||||
These comments are processed by the autoconf script, so make sure the format
|
||||
follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
|
||||
@@ -222,9 +222,9 @@
|
||||
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
|
||||
<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
|
||||
<span class="special">{</span>
|
||||
<span class="comment">// test code goes here:
|
||||
</span> <span class="comment">//
|
||||
</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="comment">// test code goes here:</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="special">}</span>
|
||||
@@ -233,15 +233,15 @@
|
||||
Once the test code is in place in libs/config/test, updating the configuration
|
||||
test system proceeds as:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" 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>
|
||||
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
|
||||
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br>
|
||||
<br>
|
||||
</li>
|
||||
<li>
|
||||
<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">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
|
||||
</code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
|
||||
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
|
||||
@@ -253,7 +253,7 @@
|
||||
is defined when it should not be defined, xxx_fail_test will not report
|
||||
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
|
||||
</li>
|
||||
<li>
|
||||
<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">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
|
||||
<span class="identifier">config_info</span> <span class="identifier">config_test</span>
|
||||
</code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
|
||||
@@ -266,26 +266,26 @@
|
||||
<p>
|
||||
Then you should:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Define the defect macro in those config headers that require it.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Document the macro in this documentation (please do not forget this step!!)
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Commit everything.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Keep an eye on the regression tests for new failures in Boost.Config
|
||||
caused by the addition.
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
Start using the macro.
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
|
||||
New Feature Test Macros</a>
|
||||
@@ -309,7 +309,7 @@
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>).
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
|
||||
the Boost Configuration Headers</a>
|
||||
@@ -362,7 +362,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<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>
|
||||
|
||||
@@ -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.74.0">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
|
||||
@@ -22,7 +22,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
|
||||
</h2></div></div></div>
|
||||
@@ -39,7 +39,7 @@
|
||||
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
|
||||
article</a>.
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
|
||||
</h3></div></div></div>
|
||||
@@ -90,7 +90,7 @@
|
||||
code must be provided.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
|
||||
</h3></div></div></div>
|
||||
@@ -109,7 +109,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<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>
|
||||
|
||||
@@ -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.74.0">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.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>
|
||||
@@ -18,7 +18,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
|
||||
<div class="article" lang="en">
|
||||
<div class="article">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><h2 class="title">
|
||||
@@ -26,9 +26,10 @@
|
||||
<div><div class="authorgroup"><div class="author"><h3 class="author">
|
||||
<span class="firstname">Vesa Karvonen, John Maddock</span> <span class="surname">Beman Dawes</span>
|
||||
</h3></div></div></div>
|
||||
<div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
|
||||
<div><p class="copyright">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id996438"></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>
|
||||
@@ -57,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
|
||||
@@ -92,7 +95,7 @@
|
||||
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
|
||||
Boost for Your Platform</a>
|
||||
@@ -111,7 +114,7 @@
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
|
||||
the boost configuration</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
|
||||
the default boost configuration</a>
|
||||
@@ -135,7 +138,7 @@
|
||||
and submitting a support request.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The <boost/config.hpp> header">The
|
||||
<boost/config.hpp> header</a>
|
||||
@@ -166,12 +169,12 @@
|
||||
developers list.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
|
||||
the configure script</a>
|
||||
</h3></div></div></div>
|
||||
<a name="config_config_script"></a><div class="important"><table border="0" summary="Important">
|
||||
<div class="important"><table border="0" summary="Important">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../doc/src/images/important.png"></td>
|
||||
<th align="left">Important</th>
|
||||
@@ -287,15 +290,15 @@
|
||||
(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 type="disc">
|
||||
<li>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" 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;
|
||||
boost developers should avoid this option, as it incurs the danger of
|
||||
accidentally committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
to the cvs repository (something you will not be thanked for!).
|
||||
</li>
|
||||
<li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
|
||||
name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For
|
||||
example create a new sub-directory <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> <code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example
|
||||
@@ -308,12 +311,12 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
|
||||
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
|
||||
settable options</a>
|
||||
</h3></div></div></div>
|
||||
<a name="config_user_settable"></a><p>
|
||||
<p>
|
||||
There are some configuration-options that represent user choices, rather
|
||||
than compiler defects or platform specific options. These are listed in
|
||||
<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">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
@@ -674,7 +677,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
|
||||
configuration usage</a>
|
||||
@@ -718,7 +721,7 @@
|
||||
<p>
|
||||
The following usage examples represent just a few of the possibilities:
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example
|
||||
1, creating our own frozen configuration</a>
|
||||
@@ -750,7 +753,7 @@
|
||||
yet supported by boost.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
|
||||
2: skipping files that you don't need</a>
|
||||
@@ -769,7 +772,7 @@
|
||||
a dependency on two boost headers.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
|
||||
3: using configure script to freeze the boost configuration</a>
|
||||
@@ -782,7 +785,7 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
|
||||
the boost configuration</a>
|
||||
@@ -946,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: May 09, 2011 at 11:33:33 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
|
||||
@@ -348,7 +348,10 @@ The platform has the POSIX header `<dirent.h>`.
|
||||
The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
|
||||
]]
|
||||
[[`BOOST_HAS_FTIME`][Platform][
|
||||
The platform has the Win32 API `GetSystemTimeAsFileTime`.
|
||||
The platform has the Win32 API type FTIME.
|
||||
]]
|
||||
[[`BOOST_HAS_GETSYSTEMTIMEASFILETIME`][Platform][
|
||||
The platform has the Win32 API GetSystemTimeAsFileTime.
|
||||
]]
|
||||
[[`BOOST_HAS_GETTIMEOFDAY`][Platform][
|
||||
The platform has the POSIX API `gettimeofday`.
|
||||
@@ -511,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
|
||||
@@ -528,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
|
||||
@@ -575,6 +577,10 @@ type `char32_t`.
|
||||
[[`BOOST_NO_DECLTYPE`][The compiler does not support
|
||||
`decltype`.
|
||||
]]
|
||||
[[`BOOST_NO_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_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
@@ -599,7 +605,7 @@ The C++ compiler does not support C++0x initializer lists.
|
||||
]]
|
||||
[[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`.
|
||||
]]
|
||||
[[`BOOST_NO_NULLPTR`][The compiler does not support 'nullptr'.
|
||||
[[`BOOST_NO_NULLPTR`][The compiler does not support `nullptr`.
|
||||
]]
|
||||
[[`BOOST_NO_RAW_LITERALS`][The compiler does not support
|
||||
raw string literals.
|
||||
@@ -634,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]
|
||||
@@ -813,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:
|
||||
@@ -364,7 +369,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
#ifdef BOOST_AUTO_LINK_TAGGED
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# endif
|
||||
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||
|
||||
@@ -172,6 +172,7 @@
|
||||
#define BOOST_NO_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
|
||||
@@ -25,34 +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_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
|
||||
#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
|
||||
@@ -66,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
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
61
include/boost/config/compiler/cray.hpp
Normal file
61
include/boost/config/compiler/cray.hpp
Normal file
@@ -0,0 +1,61 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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.
|
||||
|
||||
// Greenhills C compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||
|
||||
#if _RELEASE < 7
|
||||
# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
|
||||
#endif
|
||||
|
||||
//
|
||||
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||
//
|
||||
#ifndef __EDG_VERSION__
|
||||
# error "Unsupported Cray compiler, please try running the configure script."
|
||||
#endif
|
||||
|
||||
#include "boost/config/compiler/common_edg.hpp"
|
||||
|
||||
//
|
||||
// Cray peculiarities, probably version 7 specific:
|
||||
//
|
||||
#undef BOOST_NO_AUTO_DECLARATIONS
|
||||
#undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_UNICODE_LITERALS
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_STATIC_ASSERT
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_SCOPED_ENUMS
|
||||
#define BOOST_NO_RVALUE_REFERENCES
|
||||
#define BOOST_NO_RAW_LITERALS
|
||||
#define BOOST_NO_NULLPTR
|
||||
#define BOOST_NO_NOEXCEPT
|
||||
#define BOOST_NO_LAMBDAS
|
||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CHAR16_T
|
||||
//#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
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -217,6 +217,10 @@
|
||||
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
// C++0x features not supported at all yet
|
||||
//
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
#endif
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
# define BOOST_NO_NULLPTR
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_DECLTYPE_N3276
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -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__) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
@@ -179,8 +179,9 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
// 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
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
#endif
|
||||
@@ -210,7 +211,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
|
||||
# undef BOOST_NO_RVALUE_REFERENCES
|
||||
//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
|
||||
//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
|
||||
# undef BOOST_NO_DELETED_FUNCTIONS
|
||||
# undef BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
@@ -220,6 +221,32 @@ 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 defined(_MSC_VER) && (_MSC_VER <= 1700)
|
||||
//
|
||||
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
|
||||
//
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
//
|
||||
// fenv.h appears not to work with Intel prior to 12.0:
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_DECLTYPE
|
||||
# define BOOST_NO_DECLTYPE_N3276
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# define BOOST_NO_CHAR32_T
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// PGI C++ compiler setup:
|
||||
|
||||
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
// Threading support:
|
||||
@@ -16,9 +16,6 @@
|
||||
// if no threading API is detected.
|
||||
//
|
||||
|
||||
// PGI 10.x doesn't seem to define __PGIC__
|
||||
|
||||
// versions earlier than 10.x do define __PGIC__
|
||||
#if __PGIC__ >= 10
|
||||
|
||||
// options requested by configure --enable-test
|
||||
@@ -53,6 +50,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
#else
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
#endif
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
#define BOOST_NO_CHAR16_T
|
||||
#define BOOST_NO_CHAR32_T
|
||||
#define BOOST_NO_CONSTEXPR
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
@@ -235,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"
|
||||
@@ -258,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
|
||||
@@ -272,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
|
||||
|
||||
18
include/boost/config/platform/cray.hpp
Normal file
18
include/boost/config/platform/cray.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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.
|
||||
|
||||
// SGI Irix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cray"
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
# define BOOST_NO_ANSI_APIS
|
||||
#else
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_HAS_PTHREADS
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
// GCC-XML emulates other compilers, it has to appear first here!
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// 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"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// <header_name> in order to prevent macro expansion within the header
|
||||
// name (for example "linux" is a macro on linux systems).
|
||||
|
||||
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
|
||||
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||
|
||||
@@ -69,6 +69,10 @@
|
||||
// Symbian:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// Cray:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||
|
||||
#elif defined(__VMS)
|
||||
// VMS:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
#endif
|
||||
|
||||
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
||||
#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
#endif
|
||||
//
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
|
||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||
|| defined(_GLIBCXX__PTHREADS)
|
||||
|| defined(_GLIBCXX__PTHREADS) \
|
||||
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||
|| defined(_WIN32)
|
||||
//
|
||||
// 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
|
||||
|
||||
@@ -359,6 +359,13 @@
|
||||
#define BOOST_HAS_VARIADIC_TMPL
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
|
||||
//
|
||||
#if !defined(BOOST_NO_DECLTYPE_N3276) && defined(BOOST_NO_DECLTYPE)
|
||||
#define BOOST_NO_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
// BOOST_HAS_ABI_HEADERS
|
||||
// This macro gets set if we have headers that fix the ABI,
|
||||
// and prevent ODR violations when linking to external libraries:
|
||||
@@ -628,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:
|
||||
@@ -667,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
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||
// BOOST_VERSION / 100000 is the major version
|
||||
|
||||
#define BOOST_VERSION 104700
|
||||
#define BOOST_VERSION 104900
|
||||
|
||||
//
|
||||
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
||||
@@ -27,7 +27,7 @@
|
||||
// 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_47"
|
||||
#define BOOST_LIB_VERSION "1_49"
|
||||
|
||||
#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 Mon May 09 12:11:18 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
|
||||
@@ -40,6 +40,9 @@ test-suite "BOOST_HAS_EXPM1" :
|
||||
test-suite "BOOST_HAS_FTIME" :
|
||||
[ run ../has_ftime_pass.cpp ]
|
||||
[ compile-fail ../has_ftime_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_GETSYSTEMTIMEASFILETIME" :
|
||||
[ run ../has_getsystemtimeasfiletime_pass.cpp ]
|
||||
[ compile-fail ../has_getsystemtimeasfiletime_fail.cpp ] ;
|
||||
test-suite "BOOST_HAS_GETTIMEOFDAY" :
|
||||
[ run ../has_gettimeofday_pass.cpp ]
|
||||
[ compile-fail ../has_gettimeofday_fail.cpp ] ;
|
||||
@@ -277,6 +280,9 @@ test-suite "BOOST_NO_CWCTYPE" :
|
||||
test-suite "BOOST_NO_DECLTYPE" :
|
||||
[ run ../no_decltype_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_DECLTYPE_N3276" :
|
||||
[ run ../no_decltype_n3276_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_n3276_fail.cpp ] ;
|
||||
test-suite "BOOST_DEDUCED_TYPENAME" :
|
||||
[ run ../no_ded_typename_pass.cpp ]
|
||||
[ compile-fail ../no_ded_typename_fail.cpp ] ;
|
||||
|
||||
@@ -6,19 +6,17 @@
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_HAS_FTIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
// TITLE: The platform has FTIME.
|
||||
// DESCRIPTION: The platform supports the Win32 API type FTIME.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_ftime{
|
||||
|
||||
void f()
|
||||
void f(FILETIME)
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
|
||||
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
@@ -0,0 +1,30 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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.
|
||||
|
||||
// MACRO: BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_getsystemtimeasfiletime{
|
||||
|
||||
void f()
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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,8 +41,13 @@ 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,
|
||||
// so don't test the bugs for now!
|
||||
baz(get_test_class);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
137
test/boost_no_decltype_n3276.ipp
Normal file
137
test/boost_no_decltype_n3276.ipp
Normal file
@@ -0,0 +1,137 @@
|
||||
|
||||
// (C) Copyright Eric Niebler 2011
|
||||
|
||||
// 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_DECLTYPE_N3276
|
||||
// TITLE: C++0x decltype v1.1 unavailable
|
||||
// DESCRIPTION: The compiler does not support extensions to C++0x
|
||||
// decltype as described in N3276 and accepted in Madrid,
|
||||
// March 2011:
|
||||
// <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf>
|
||||
|
||||
namespace boost_no_decltype_n3276 {
|
||||
|
||||
// A simplified result_of implementation.
|
||||
// that uses decltype.
|
||||
template<typename Sig>
|
||||
struct result_of;
|
||||
|
||||
template<typename T>
|
||||
T& declvar();
|
||||
|
||||
// use decltype
|
||||
template<typename Fun, typename T>
|
||||
struct result_of<Fun(T)>
|
||||
{
|
||||
typedef decltype(declvar<Fun>()(declvar<T>())) type;
|
||||
};
|
||||
|
||||
template<typename Fun, typename T, typename U>
|
||||
struct result_of<Fun(T, U)>
|
||||
{
|
||||
typedef decltype(declvar<Fun>()(declvar<T>(), declvar<U>())) type;
|
||||
};
|
||||
|
||||
// simple tuple type
|
||||
template<typename A0 = void, typename A1 = void, typename A2 = void>
|
||||
struct tuple;
|
||||
|
||||
template<typename A0>
|
||||
struct tuple<A0, void, void>
|
||||
{
|
||||
A0 a0_;
|
||||
|
||||
tuple(A0 const &a0)
|
||||
: a0_(a0)
|
||||
{}
|
||||
};
|
||||
|
||||
template<typename A0, typename A1>
|
||||
struct tuple<A0, A1>
|
||||
{
|
||||
A0 a0_;
|
||||
A1 a1_;
|
||||
|
||||
tuple(A0 const &a0, A1 const & a1)
|
||||
: a0_(a0)
|
||||
, a1_(a1)
|
||||
{}
|
||||
};
|
||||
|
||||
// A node in an expression tree
|
||||
template<class Tag, class Args> // Args is a tuple.
|
||||
struct Expr;
|
||||
|
||||
// A function object that builds expression nodes
|
||||
template<class Tag>
|
||||
struct MakeExpr
|
||||
{
|
||||
template<class T>
|
||||
Expr<Tag, tuple<T> > operator()(T const & t) const
|
||||
{
|
||||
return Expr<Tag, tuple<T> >(tuple<T>(t));
|
||||
}
|
||||
|
||||
template<class T, typename U>
|
||||
Expr<Tag, tuple<T, U> > operator()(T const & t, U const & u) const
|
||||
{
|
||||
return Expr<Tag, tuple<T, U> >(tuple<T, U>(t, u));
|
||||
}
|
||||
};
|
||||
|
||||
// Here are tag types that encode in an expression node
|
||||
// what operation created the node.
|
||||
struct Terminal;
|
||||
struct BinaryPlus;
|
||||
struct FunctionCall;
|
||||
|
||||
typedef MakeExpr<Terminal> MakeTerminal;
|
||||
typedef MakeExpr<BinaryPlus> MakeBinaryPlus;
|
||||
typedef MakeExpr<FunctionCall> MakeFunctionCall;
|
||||
|
||||
template<class Tag, class Args>
|
||||
struct Expr
|
||||
{
|
||||
Args args_;
|
||||
|
||||
explicit Expr(Args const & t) : args_(t) {}
|
||||
|
||||
// An overloaded operator+ that creates a binary plus node
|
||||
template<typename RTag, typename RArgs>
|
||||
typename result_of<MakeBinaryPlus(Expr, Expr<RTag, RArgs>)>::type
|
||||
operator+(Expr<RTag, RArgs> const &right) const
|
||||
{
|
||||
return MakeBinaryPlus()(*this, right);
|
||||
}
|
||||
|
||||
// An overloaded function call operator that creates a unary
|
||||
// function call node
|
||||
typename result_of<MakeFunctionCall(Expr)>::type
|
||||
operator()() const
|
||||
{
|
||||
return MakeFunctionCall()(*this);
|
||||
}
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
// This is a terminal in an expression tree
|
||||
Expr<Terminal, tuple<int> > i = MakeTerminal()(42);
|
||||
|
||||
i + i; // OK, this creates a binary plus node.
|
||||
|
||||
i(); // OK, this creates a unary function-call node.
|
||||
// NOTE: If N3276 has not been implemented, this
|
||||
// line will set off an infinite cascade of template
|
||||
// instantiations that will run the compiler out of
|
||||
// memory.
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -294,6 +294,22 @@ void print_compiler_macros()
|
||||
PRINT_MACRO(_PGO_INSTRUMENT);
|
||||
PRINT_MACRO(__QMSPP_);
|
||||
|
||||
// Cray options:
|
||||
PRINT_MACRO(_CRAYC);
|
||||
PRINT_MACRO(_RELEASE);
|
||||
PRINT_MACRO(cray);
|
||||
PRINT_MACRO(CRAY);
|
||||
PRINT_MACRO(CRAY1);
|
||||
PRINT_MACRO(_CRAY1);
|
||||
PRINT_MACRO(_CRAYMPP);
|
||||
PRINT_MACRO(_CRAYT3E);
|
||||
PRINT_MACRO(_CRAYIEEE);
|
||||
PRINT_MACRO(_ADDR32);
|
||||
PRINT_MACRO(_ADDR64);
|
||||
PRINT_MACRO(_LD64);
|
||||
PRINT_MACRO(_FASTMD);
|
||||
PRINT_MACRO(_MAXVL);
|
||||
|
||||
// misc compilers not covered so far:
|
||||
PRINT_MACRO(__USLC__);
|
||||
PRINT_MACRO(__DECCXX);
|
||||
@@ -917,6 +933,7 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_HAS_DIRENT_H);
|
||||
PRINT_MACRO(BOOST_HAS_EXPM1);
|
||||
PRINT_MACRO(BOOST_HAS_FTIME);
|
||||
PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
|
||||
PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
|
||||
PRINT_MACRO(BOOST_HAS_HASH);
|
||||
PRINT_MACRO(BOOST_HAS_LOG1P);
|
||||
@@ -996,6 +1013,7 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CWCHAR);
|
||||
PRINT_MACRO(BOOST_NO_CWCTYPE);
|
||||
PRINT_MACRO(BOOST_NO_DECLTYPE);
|
||||
PRINT_MACRO(BOOST_NO_DECLTYPE_N3276);
|
||||
PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS);
|
||||
PRINT_MACRO(BOOST_NO_DELETED_FUNCTIONS);
|
||||
PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
|
||||
@@ -1079,6 +1097,15 @@ void print_boost_macros()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// END GENERATED BLOCK
|
||||
|
||||
PRINT_MACRO(BOOST_INTEL);
|
||||
@@ -1088,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 Mon May 09 12:11:18 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
|
||||
@@ -197,6 +197,11 @@ namespace boost_no_cwctype = empty_boost;
|
||||
#else
|
||||
namespace boost_no_decltype = empty_boost;
|
||||
#endif
|
||||
#ifndef BOOST_NO_DECLTYPE_N3276
|
||||
#include "boost_no_decltype_n3276.ipp"
|
||||
#else
|
||||
namespace boost_no_decltype_n3276 = empty_boost;
|
||||
#endif
|
||||
#ifndef BOOST_DEDUCED_TYPENAME
|
||||
#include "boost_no_ded_typename.ipp"
|
||||
#else
|
||||
@@ -628,6 +633,11 @@ namespace boost_has_expm1 = empty_boost;
|
||||
#else
|
||||
namespace boost_has_ftime = empty_boost;
|
||||
#endif
|
||||
#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#include "boost_has_getsystemtimeasfiletime.ipp"
|
||||
#else
|
||||
namespace boost_has_getsystemtimeasfiletime = empty_boost;
|
||||
#endif
|
||||
#ifdef BOOST_HAS_GETTIMEOFDAY
|
||||
#include "boost_has_gettimeofday.ipp"
|
||||
#else
|
||||
@@ -881,6 +891,11 @@ int main( int, char *[] )
|
||||
std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
++error_count;
|
||||
}
|
||||
if(0 != boost_has_getsystemtimeasfiletime::test())
|
||||
{
|
||||
std::cerr << "Failed test for BOOST_HAS_GETSYSTEMTIMEASFILETIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
++error_count;
|
||||
}
|
||||
if(0 != boost_has_gettimeofday::test())
|
||||
{
|
||||
std::cerr << "Failed test for BOOST_HAS_GETTIMEOFDAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
@@ -1276,6 +1291,11 @@ int main( int, char *[] )
|
||||
std::cerr << "Failed test for BOOST_NO_DECLTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
++error_count;
|
||||
}
|
||||
if(0 != boost_no_decltype_n3276::test())
|
||||
{
|
||||
std::cerr << "Failed test for BOOST_NO_DECLTYPE_N3276 at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
++error_count;
|
||||
}
|
||||
if(0 != boost_deduced_typename::test())
|
||||
{
|
||||
std::cerr << "Failed test for BOOST_DEDUCED_TYPENAME at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||
|
||||
37
test/has_getsystemtimeasfiletime_fail.cpp
Normal file
37
test/has_getsystemtimeasfiletime_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Wed Jul 13 18:50:13 2011
|
||||
// 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_HAS_GETSYSTEMTIMEASFILETIME
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_HAS_GETSYSTEMTIMEASFILETIME should be defined.
|
||||
// See file boost_has_getsystemtimeasfiletime.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_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#include "boost_has_getsystemtimeasfiletime.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_has_getsystemtimeasfiletime::test();
|
||||
}
|
||||
|
||||
37
test/has_getsystemtimeasfiletime_pass.cpp
Normal file
37
test/has_getsystemtimeasfiletime_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Wed Jul 13 18:50:13 2011
|
||||
// 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_HAS_GETSYSTEMTIMEASFILETIME
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_HAS_GETSYSTEMTIMEASFILETIME should not be defined.
|
||||
// See file boost_has_getsystemtimeasfiletime.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_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#include "boost_has_getsystemtimeasfiletime.ipp"
|
||||
#else
|
||||
namespace boost_has_getsystemtimeasfiletime = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_has_getsystemtimeasfiletime::test();
|
||||
}
|
||||
|
||||
37
test/no_decltype_n3276_fail.cpp
Normal file
37
test/no_decltype_n3276_fail.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Wed Jun 1 21:44:56 2011
|
||||
// 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_DECLTYPE_N3276
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_DECLTYPE_N3276 should not be defined.
|
||||
// See file boost_no_decltype_n3276.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_DECLTYPE_N3276
|
||||
#include "boost_no_decltype_n3276.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_decltype_n3276::test();
|
||||
}
|
||||
|
||||
37
test/no_decltype_n3276_pass.cpp
Normal file
37
test/no_decltype_n3276_pass.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Wed Jun 1 21:44:56 2011
|
||||
// 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_DECLTYPE_N3276
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_DECLTYPE_N3276 should be defined.
|
||||
// See file boost_no_decltype_n3276.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_DECLTYPE_N3276
|
||||
#include "boost_no_decltype_n3276.ipp"
|
||||
#else
|
||||
namespace boost_no_decltype_n3276 = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_decltype_n3276::test();
|
||||
}
|
||||
|
||||
@@ -259,13 +259,13 @@ int cpp_main(int argc, char* argv[])
|
||||
//
|
||||
if(argc > 1)
|
||||
{
|
||||
fs::path p(argv[1], fs::native);
|
||||
fs::path p(argv[1]);
|
||||
config_path = p / "libs" / "config" / "test" ;
|
||||
}
|
||||
else
|
||||
{
|
||||
// try __FILE__:
|
||||
fs::path p(__FILE__, fs::native);
|
||||
fs::path p(__FILE__);
|
||||
config_path = p.branch_path().branch_path() / "test";
|
||||
}
|
||||
std::cout << "Info: Boost.Config test path set as: " << config_path.string() << std::endl;
|
||||
|
||||
Reference in New Issue
Block a user