Merge branch 'develop' into develop

This commit is contained in:
jzmaddock
2020-03-25 09:49:57 +00:00
committed by GitHub
7 changed files with 79 additions and 11 deletions

View File

@ -3250,6 +3250,20 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNRESTRICTED_UNION</span></code>
</p>
</td>
<td>
<p>
The compiler does not support an unrestricted union. This is a
union that may contain static data as well as user-defined member
data with non-trivial special member functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_USER_DEFINED_LITERALS</span></code>
@ -3977,7 +3991,8 @@
</p>
</th>
</tr></thead>
<tbody><tr>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_INLINE_VARIABLE</span></code>
@ -3991,7 +4006,35 @@
for further adjustments to the code.
</p>
</td>
</tr></tbody>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_IF_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
Expands to <code class="computeroutput"><span class="keyword">if</span> <span class="keyword">constexpr</span></code>
when supported, or <code class="computeroutput"><span class="keyword">if</span></code>
otherwise.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_INLINE_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
This is a shortcut for <code class="computeroutput"><span class="identifier">BOOST_INLINE_VARIABLE</span>
<span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section">

View File

@ -297,9 +297,9 @@
and name the test file "<code class="computeroutput"><span class="identifier">boost_has_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>".
Try not to add feature test macros unnecessarily, if there is a platform
specific macro that can already be used (for example <code class="computeroutput"><span class="identifier">_WIN32</span></code>,
<code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux</span></code>) to identify the feature then use
that. Try to keep the macro to a feature group, or header name, rather than
one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
<code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux__</span></code>) to identify the feature then
use that. Try to keep the macro to a feature group, or header name, rather
than one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
rather than <code class="computeroutput"><span class="identifier">BOOST_HAS_CATOPEN</span></code>).
If the macro describes a POSIX feature group, then add boilerplate code to
<a href="../../../../../boost/config/detail/suffix.hpp" target="_top">&lt;boost/config/detail/suffix.hpp&gt;</a>

View File

@ -990,7 +990,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: October 29, 2019 at 16:54:06 GMT</small></p></td>
<td align="left"><p><small>Last revised: March 23, 2020 at 21:06:56 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -1406,6 +1406,11 @@ library in use. Mainly for debugging the configuration.
Defined as a string describing the name of the platform. Mainly for debugging
the configuration.
]]
[[`BOOST_LIBSTDCXX_VERSION`][`<boost/config.hpp>`][
Defined if the libstdc++ standard library is in use.
Has the value of normalised 5 digit integer of the form VVMMM where
VV is the major version number, MM is the minor version number.
]]
]
[endsect]

View File

@ -461,7 +461,7 @@ BOOST_LIB_SUFFIX: Static/import libraries extension (".lib", ".a") for the c
#elif defined(BOOST_AUTO_LINK_TAGGED)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX)
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX)
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX)
# endif
#elif defined(BOOST_AUTO_LINK_SYSTEM)
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX)

View File

@ -254,7 +254,6 @@
// C++0x features in 4.8.n and later
//
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_THREAD_LOCAL
# define BOOST_NO_CXX11_SFINAE_EXPR
#endif
@ -267,6 +266,14 @@
# define BOOST_NO_CXX14_BINARY_LITERALS
#endif
// C++0x features in 4.9.n and later
//
#if (BOOST_GCC_VERSION < 40900) || !defined(BOOST_GCC_CXX11)
// Although alignas support is added in gcc 4.8, it does not accept
// constant expressions as an argument until gcc 4.9.
# define BOOST_NO_CXX11_ALIGNAS
#endif
// C++0x features in 5.1 and later
//
#if (BOOST_GCC_VERSION < 50100) || !defined(BOOST_GCC_CXX11)

View File

@ -1,4 +1,4 @@
// (C) Copyright Andrey Semashev 2013
// (C) Copyright Andrey Semashev 2013, 2020
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
@ -12,6 +12,12 @@
namespace boost_no_cxx11_alignas {
template< unsigned int Alignment >
struct alignment
{
static const unsigned int value = Alignment;
};
struct alignas(16) my_data1
{
char data[10];
@ -22,10 +28,17 @@ struct alignas(double) my_data2
char data[16];
};
struct alignas(alignment< 16u >::value) my_data3
{
char data[16];
};
my_data1 dummy1[2];
my_data2 dummy2;
alignas(16) char dummy3[10];
alignas(double) char dummy4[32];
my_data3 dummy3;
alignas(16) char dummy4[10];
alignas(double) char dummy5[32];
alignas(alignment< 16u >::value) char dummy6[32];
int test()
{