mirror of
https://github.com/boostorg/config.git
synced 2025-07-30 04:17:16 +02:00
Merge branch 'develop' of github.com:boostorg/config into develop
This commit is contained in:
1001
checks/Jamfile.v2
1001
checks/Jamfile.v2
File diff suppressed because it is too large
Load Diff
1244
checks/test_case.cpp
1244
checks/test_case.cpp
File diff suppressed because it is too large
Load Diff
@ -1663,6 +1663,29 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_PRAGMA_DETECT_MISMATCH</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler recognizes the <code class="computeroutput"><span class="preprocessor">#pragma</span>
|
||||
<span class="identifier">detect_mismatch</span><span class="special">(</span><span class="string">"name"</span><span class="special">,</span>
|
||||
<span class="string">"value"</span><span class="special">)</span></code>
|
||||
directive which tells that the link stage should be terminated
|
||||
with error if values for provided <code class="computeroutput"><span class="string">"name"</span></code>
|
||||
missmatch. This pragma may be a help in preventing ODR violations
|
||||
and ensuring that different modules are compiled with same flags.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_DELAY_NP</span></code>
|
||||
@ -2427,6 +2450,190 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type deduction for variables declared
|
||||
with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
|
||||
(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
|
||||
<span class="special">=</span> <span class="special">...;</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type deduction for multiple variables
|
||||
declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
|
||||
keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
|
||||
<span class="special">=</span> <span class="special">...,</span>
|
||||
<span class="special">*</span><span class="identifier">ptr</span>
|
||||
<span class="special">=</span> <span class="special">...;</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
|
||||
described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
|
||||
accepted in Madrid, March 2011.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
|
||||
<span class="keyword">delete</span></code>) functions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
|
||||
<span class="keyword">default</span></code>) functions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
|
||||
<span class="identifier">T</span><span class="special">()</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support explicit instantiation forward declarations
|
||||
for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FINAL</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the C++ class-virt-specifier final.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support expanding a variadic template parameter
|
||||
pack into a template containing one or more fixed arguments
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support default template arguments for function
|
||||
templates.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ATOMIC</span></code>
|
||||
@ -2680,202 +2887,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The standard library header <memory> has no shared_ptr and
|
||||
unique_ptr.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_ALIGN</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The standard library header <memory> has no working std::align.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type deduction for variables declared
|
||||
with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
|
||||
(<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
|
||||
<span class="special">=</span> <span class="special">...;</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type deduction for multiple variables
|
||||
declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
|
||||
keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
|
||||
<span class="special">=</span> <span class="special">...,</span>
|
||||
<span class="special">*</span><span class="identifier">ptr</span>
|
||||
<span class="special">=</span> <span class="special">...;</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support template aliases.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
|
||||
described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
|
||||
accepted in Madrid, March 2011.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
|
||||
<span class="keyword">default</span></code>) functions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
|
||||
<span class="keyword">delete</span></code>) functions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
|
||||
<span class="identifier">T</span><span class="special">()</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support explicit instantiation forward declarations
|
||||
for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support default template arguments for function
|
||||
templates.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LAMBDAS</span></code>
|
||||
@ -2904,13 +2915,19 @@
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">long</span></code>.
|
||||
The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
|
||||
<span class="keyword">default</span></code>) functions in access
|
||||
control sections other than <code class="computeroutput"><span class="keyword">public</span></code>.
|
||||
Public defaulted functions may still be supported, as indicated
|
||||
by <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>.
|
||||
Some compilers implementing an early draft of the C++11 standard
|
||||
(in particular, incorporating <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906" target="_top">DR906</a>)
|
||||
are susceptible to this problem.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -3000,6 +3017,19 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The standard library header <memory> has no shared_ptr and
|
||||
unique_ptr.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
|
||||
@ -3012,6 +3042,18 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_ALIGN</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The standard library header <memory> has no working std::align.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
|
||||
@ -3025,6 +3067,18 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support template aliases.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TRAILING_RESULT_TYPES</span></code>
|
||||
@ -3100,6 +3154,19 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">long</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
@ -968,7 +968,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: June 12, 2014 at 12:31:43 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: August 25, 2014 at 17:53:11 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -399,6 +399,13 @@ containing header should be included only once while preprocessing the
|
||||
current translation unit. The pragma may improve compile times of large projects
|
||||
with some compilers.
|
||||
]]
|
||||
[[`BOOST_HAS_PRAGMA_DETECT_MISMATCH`][Compiler][
|
||||
The compiler recognizes the `#pragma detect_mismatch("name", "value")` directive which tells that the
|
||||
link stage should be terminated with error if values for provided `"name"` missmatch.
|
||||
This pragma may be a help in preventing ODR violations and ensuring that different modules
|
||||
are compiled with same flags.
|
||||
]]
|
||||
|
||||
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
|
||||
The platform has the POSIX API `pthread_delay_np`.
|
||||
]]
|
||||
@ -582,6 +589,48 @@ that are not yet supported by a particular compiler or library.
|
||||
[[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]]
|
||||
[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
|
||||
[[`BOOST_NO_CXX11_ATOMIC_SMART_PTR`][The standard library <memory> does not support atomic smart pointer operations.]]
|
||||
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
|
||||
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
|
||||
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
|
||||
type `char16_t`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
|
||||
type `char32_t`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
|
||||
`constexpr`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
|
||||
`decltype`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
|
||||
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
|
||||
accepted in Madrid, March 2011.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
|
||||
deleted (`= delete`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
|
||||
explicit conversion operators (`explicit operator T()`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
|
||||
explicit instantiation forward declarations for templates (`extern template ...`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_FINAL`][The compiler does not support the C++ class-virt-specifier final.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS`][The compiler does not support
|
||||
expanding a variadic template parameter pack into a template containing one or more
|
||||
fixed arguments]]
|
||||
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
|
||||
default template arguments for function templates.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_HDR_ATOMIC`][The standard library does not provide header <atomic>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
|
||||
@ -602,49 +651,8 @@ that are not yet supported by a particular compiler or library.
|
||||
[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
|
||||
[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
|
||||
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
|
||||
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
|
||||
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
|
||||
|
||||
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
|
||||
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
|
||||
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
|
||||
type `char16_t`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
|
||||
type `char32_t`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
|
||||
`constexpr`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
|
||||
`decltype`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
|
||||
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
|
||||
accepted in Madrid, March 2011.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
|
||||
deleted (`= delete`) functions.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
|
||||
explicit conversion operators (`explicit operator T()`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
|
||||
explicit instantiation forward declarations for templates (`extern template ...`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
|
||||
default template arguments for function templates.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
|
||||
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
|
||||
@ -652,7 +660,11 @@ pass local classes as template parameters (this macro intentionally does not
|
||||
control passing of unnamed types as template parameters, see also
|
||||
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
|
||||
]]
|
||||
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
|
||||
[[`BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS`][The compiler does not support
|
||||
defaulted (`= default`) functions in access control sections other than `public`. Public defaulted
|
||||
functions may still be supported, as indicated by `BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`. Some
|
||||
compilers implementing an early draft of the C++11 standard (in particular, incorporating
|
||||
[@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906 DR906]) are susceptible to this problem.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`.
|
||||
]]
|
||||
@ -674,12 +686,16 @@ r-value references.
|
||||
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
|
||||
scoped enumerations (`enum class`).
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
|
||||
[[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support
|
||||
`static_assert`.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
|
||||
[[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support
|
||||
<unordered_map> and <unordered_set>.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
|
||||
]]
|
||||
[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type
|
||||
specification syntax (e.g. `auto foo(T) -> T;`).]]
|
||||
[[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support
|
||||
@ -696,6 +712,8 @@ variadic templates.
|
||||
[[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support
|
||||
variadic macros.
|
||||
]]
|
||||
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
@ -195,6 +195,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
#if __BORLANDC__ >= 0x590
|
||||
# define BOOST_HAS_TR1_HASH
|
||||
|
@ -10,6 +10,11 @@
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
|
||||
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
|
||||
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||
#endif
|
||||
|
||||
// When compiling with clang before __has_extension was defined,
|
||||
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
|
||||
// clang reports a compiler error. So the only workaround found is:
|
||||
@ -188,6 +193,10 @@
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_override_control)
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
// Clang always supports variadic macros
|
||||
// Clang always supports extern templates
|
||||
|
||||
|
@ -121,6 +121,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
//
|
||||
// TR1 macros:
|
||||
|
@ -105,6 +105,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
#ifdef c_plusplus
|
||||
// EDG has "long long" in non-strict mode
|
||||
|
@ -59,6 +59,7 @@
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||
//#define BOOST_HAS_FPCLASSIFY
|
||||
|
@ -81,6 +81,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
#if (__DMC__ <= 0x840)
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
|
@ -154,14 +154,6 @@
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
|
||||
// Variadic templates compiler:
|
||||
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
# else
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.4.n and later
|
||||
@ -176,6 +168,7 @@
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
|
||||
@ -183,7 +176,7 @@
|
||||
#endif
|
||||
|
||||
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
|
||||
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
@ -218,8 +211,10 @@
|
||||
// C++0x features in 4.7.n and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.8.n and later
|
||||
|
@ -59,6 +59,7 @@
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||
|
||||
|
@ -34,11 +34,14 @@
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_INTEL_STDCXX0X
|
||||
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#else
|
||||
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#if !defined(BOOST_COMPILER)
|
||||
# if defined(BOOST_INTEL_STDCXX0X)
|
||||
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# else
|
||||
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
@ -269,6 +272,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# undef BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1310)
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
@ -297,6 +301,10 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
#if BOOST_INTEL_CXX_VERSION <= 1400
|
||||
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#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:
|
||||
@ -318,11 +326,19 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
|
||||
// producing the following errors:
|
||||
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310)
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# undef BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(__CUDACC__)
|
||||
# define BOOST_HAS_INT128
|
||||
#endif
|
||||
|
||||
|
@ -124,6 +124,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
|
@ -73,6 +73,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
//
|
||||
// versions check:
|
||||
// we don't support MPW prior to version 8.9:
|
||||
|
@ -81,4 +81,5 @@
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
@ -119,6 +119,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
//
|
||||
// version check:
|
||||
|
@ -132,6 +132,7 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
||||
//
|
||||
// Version
|
||||
|
@ -130,3 +130,4 @@
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
|
@ -104,6 +104,9 @@
|
||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||
# define BOOST_HAS_NRVO
|
||||
#endif
|
||||
#if _MSC_VER >= 1500 // 150X == VC++ 9.0
|
||||
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||
#endif
|
||||
//
|
||||
// disable Win32 API's if compiler extensions are
|
||||
// turned off:
|
||||
@ -149,6 +152,7 @@
|
||||
// C++11 features supported by VC++ 11 (aka 2012)
|
||||
//
|
||||
#if _MSC_VER < 1700
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif // _MSC_VER < 1700
|
||||
@ -168,7 +172,7 @@
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
// C++11 features supported by VC++ 14 CTP1
|
||||
// C++11 features supported by VC++ 14 (aka 2014) CTP1
|
||||
// Because the CTP is unsupported, unrelease, and only alpha quality,
|
||||
// it is only supported if BOOST_MSVC_ENABLE_2014_JUN_CTP is defined.
|
||||
//
|
||||
@ -261,8 +265,8 @@
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version is 18.00.21730.1 (VC14 CTP1):
|
||||
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190021730)
|
||||
// last known and checked version is 19.00.21901.1 (VC14 CTP2):
|
||||
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190021901)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
@ -39,7 +39,8 @@
|
||||
// Intel
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
||||
|
||||
#elif defined __clang__
|
||||
#elif defined __clang__ && !defined(__CUDACC__)
|
||||
// when using clang and cuda at same time, you want to appear as gcc
|
||||
// Clang C++ emulates GCC, so it has to appear early.
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
||||
|
||||
|
@ -147,6 +147,12 @@
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
|
||||
// Intel's compiler can't handle this header yet:
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
#endif
|
||||
|
||||
|
||||
// 520..610 have std::addressof, but it doesn't support functions
|
||||
//
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Boost config.hpp configuration header file ------------------------------//
|
||||
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
|
||||
// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
|
||||
|
||||
// Copyright (c) 2001-2003 John Maddock
|
||||
// Copyright (c) 2001 Darin Adler
|
||||
@ -646,6 +646,11 @@ namespace std{ using ::type_info; }
|
||||
# define BOOST_ALIGNMENT(x)
|
||||
#endif
|
||||
|
||||
// Lack of non-public defaulted functions is implied by the lack of any defaulted functions
|
||||
#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
// Defaulted and deleted function declaration helpers
|
||||
// These macros are intended to be inside a class definition.
|
||||
// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its
|
||||
@ -681,7 +686,7 @@ namespace std{ using ::type_info; }
|
||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
|
||||
//
|
||||
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
// -------------------- Deprecated macros for 1.50 ---------------------------
|
||||
@ -957,6 +962,13 @@ namespace std{ using ::type_info; }
|
||||
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
|
||||
#define BOOST_HAS_VARIADIC_TMPL
|
||||
#endif
|
||||
//
|
||||
// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when
|
||||
// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set:
|
||||
//
|
||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
|
||||
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Finish off with checks for macros that are depricated / no longer supported,
|
||||
|
@ -19,7 +19,7 @@
|
||||
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||
// BOOST_VERSION / 100000 is the major version
|
||||
|
||||
#define BOOST_VERSION 105600
|
||||
#define BOOST_VERSION 105700
|
||||
|
||||
//
|
||||
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
||||
@ -27,6 +27,6 @@
|
||||
// number, y is the minor version number, and z is the patch level if not 0.
|
||||
// This is used by <config/auto_link.hpp> to select which library version to link to.
|
||||
|
||||
#define BOOST_LIB_VERSION "1_56"
|
||||
#define BOOST_LIB_VERSION "1_57"
|
||||
|
||||
#endif
|
||||
|
13
meta/libraries.json
Normal file
13
meta/libraries.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"key": "config",
|
||||
"name": "Config",
|
||||
"description": "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users.",
|
||||
"documentation": "config.htm",
|
||||
"category": [
|
||||
"workarounds"
|
||||
],
|
||||
"authors": "",
|
||||
"maintainers": [
|
||||
"John Maddock <john -at- johnmaddock.co.uk>"
|
||||
]
|
||||
}
|
1001
test/all/Jamfile.v2
1001
test/all/Jamfile.v2
File diff suppressed because it is too large
Load Diff
41
test/boost_no_cxx11_final.ipp
Normal file
41
test/boost_no_cxx11_final.ipp
Normal file
@ -0,0 +1,41 @@
|
||||
// (C) Copyright Agustin Berge 2014
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_FINAL
|
||||
// TITLE: C++11 final class-virt-specifier
|
||||
// DESCRIPTION: The compiler does not support the C++ class-virt-specifier final
|
||||
|
||||
namespace boost_no_cxx11_final {
|
||||
|
||||
struct X final {};
|
||||
|
||||
struct abstract
|
||||
{
|
||||
virtual int f() = 0;
|
||||
};
|
||||
|
||||
struct derived : public abstract
|
||||
{
|
||||
virtual int f() final
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
int check(abstract* pa)
|
||||
{
|
||||
return pa->f();
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
derived d;
|
||||
return check(&d);
|
||||
}
|
||||
|
||||
}
|
38
test/boost_no_cxx11_non_pub_def_fun.ipp
Normal file
38
test/boost_no_cxx11_non_pub_def_fun.ipp
Normal file
@ -0,0 +1,38 @@
|
||||
// (C) Copyright Andrey Semashev 2014
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
// TITLE: C++11 non-public defaulted functions unavailable
|
||||
// DESCRIPTION: The compiler does not support C++11 defaulted functions in access control sections other than public
|
||||
|
||||
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
|
||||
# error Non-public defaulted functions are not supported in non-C++11 mode
|
||||
#endif
|
||||
|
||||
namespace boost_no_cxx11_non_public_defaulted_functions {
|
||||
|
||||
struct foo
|
||||
{
|
||||
protected:
|
||||
foo() = default;
|
||||
foo& operator= (foo const&) = default;
|
||||
};
|
||||
|
||||
struct bar
|
||||
{
|
||||
private:
|
||||
bar() = default;
|
||||
bar& operator= (bar const&) = default;
|
||||
};
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
@ -16,10 +16,10 @@ namespace boost_no_cxx11_user_defined_literals {
|
||||
|
||||
struct my_literal
|
||||
{
|
||||
constexpr my_literal() : val(0) {}
|
||||
constexpr my_literal(int i) : val(i) {}
|
||||
constexpr my_literal(const my_literal& a) : val(a.val) {}
|
||||
constexpr bool operator==(const my_literal& a) const { return val == a.val; }
|
||||
my_literal() : val(0) {}
|
||||
my_literal(int i) : val(i) {}
|
||||
my_literal(const my_literal& a) : val(a.val) {}
|
||||
bool operator==(const my_literal& a) const { return val == a.val; }
|
||||
int val;
|
||||
};
|
||||
|
||||
@ -47,20 +47,20 @@ struct parse_int<base, val, c, Digits...>
|
||||
char_value, Digits...>::value };
|
||||
};
|
||||
|
||||
constexpr my_literal operator "" _suf1(unsigned long long v)
|
||||
my_literal operator "" _suf1(unsigned long long v)
|
||||
{
|
||||
return my_literal(v);
|
||||
}
|
||||
template <char...PACK>
|
||||
constexpr my_literal operator "" _bin()
|
||||
my_literal operator "" _bin()
|
||||
{
|
||||
return parse_int<2, 0, PACK...>::value;
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
constexpr my_literal a = 0x23_suf1;
|
||||
constexpr my_literal b = 1001_bin;
|
||||
my_literal a = 0x23_suf1;
|
||||
my_literal b = 1001_bin;
|
||||
return ((a == my_literal(0x23)) && (b == my_literal(9))) ? 0 : 1;
|
||||
}
|
||||
|
||||
|
26
test/boost_no_fixed_len_variadic_templates.ipp
Normal file
26
test/boost_no_fixed_len_variadic_templates.ipp
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2007 Douglas Gregor
|
||||
// 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_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
// TITLE: C++0x variadic templates unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x variadic templates
|
||||
|
||||
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs {
|
||||
|
||||
template<char one, char two, char... Others> struct char_tuple {};
|
||||
|
||||
template<char... Args> struct super_class : public char_tuple<Args...> {};
|
||||
|
||||
int test()
|
||||
{
|
||||
super_class<'a', 'b', 'c', 'd'> sc;
|
||||
(void)sc;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1010,6 +1010,8 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_FINAL);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
|
||||
@ -1035,6 +1037,7 @@ void print_boost_macros()
|
||||
PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_NULLPTR);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
|
||||
PRINT_MACRO(BOOST_NO_CXX11_RANGE_BASED_FOR);
|
||||
@ -1128,6 +1131,9 @@ void print_boost_macros()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
2982
test/config_test.cpp
2982
test/config_test.cpp
File diff suppressed because it is too large
Load Diff
37
test/no_cxx11_final_fail.cpp
Normal file
37
test/no_cxx11_final_fail.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Fri Aug 15 15:51:00 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_FINAL
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_FINAL should not be defined.
|
||||
// See file boost_no_cxx11_final.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_FINAL
|
||||
#include "boost_no_cxx11_final.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_final::test();
|
||||
}
|
||||
|
37
test/no_cxx11_final_pass.cpp
Normal file
37
test/no_cxx11_final_pass.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Fri Aug 15 15:51:00 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_FINAL
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_FINAL should be defined.
|
||||
// See file boost_no_cxx11_final.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_FINAL
|
||||
#include "boost_no_cxx11_final.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_final = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_final::test();
|
||||
}
|
||||
|
37
test/no_cxx11_non_pub_def_fun_fail.cpp
Normal file
37
test/no_cxx11_non_pub_def_fun_fail.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Fri Aug 22 18:33:20 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS should not be defined.
|
||||
// See file boost_no_cxx11_non_pub_def_fun.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#include "boost_no_cxx11_non_pub_def_fun.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_non_public_defaulted_functions::test();
|
||||
}
|
||||
|
37
test/no_cxx11_non_pub_def_fun_pass.cpp
Normal file
37
test/no_cxx11_non_pub_def_fun_pass.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Fri Aug 22 18:33:20 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS should be defined.
|
||||
// See file boost_no_cxx11_non_pub_def_fun.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#include "boost_no_cxx11_non_pub_def_fun.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_non_public_defaulted_functions = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_non_public_defaulted_functions::test();
|
||||
}
|
||||
|
37
test/no_fixed_len_variadic_templates_fail.cpp
Normal file
37
test/no_fixed_len_variadic_templates_fail.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Mon Aug 25 18:12:27 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
// This file should not compile, if it does then
|
||||
// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should not be defined.
|
||||
// See file boost_no_fixed_len_variadic_templates.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifdef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#include "boost_no_fixed_len_variadic_templates.ipp"
|
||||
#else
|
||||
#error "this file should not compile"
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
|
||||
}
|
||||
|
37
test/no_fixed_len_variadic_templates_pass.cpp
Normal file
37
test/no_fixed_len_variadic_templates_pass.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// This file was automatically generated on Mon Aug 25 18:12:27 2014
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
|
||||
// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
// This file should compile, if it does not then
|
||||
// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should be defined.
|
||||
// See file boost_no_fixed_len_variadic_templates.ipp for details
|
||||
|
||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||
// the objective of this file:
|
||||
#ifdef BOOST_ASSERT_CONFIG
|
||||
# undef BOOST_ASSERT_CONFIG
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include "test.hpp"
|
||||
|
||||
#ifndef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#include "boost_no_fixed_len_variadic_templates.ipp"
|
||||
#else
|
||||
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs = empty_boost;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
|
||||
}
|
||||
|
Reference in New Issue
Block a user