Update suffix.hpp for older msvc versions.

See 8dcea4d78c (commitcomment-35718928).
This commit is contained in:
jzmaddock
2019-10-30 18:30:31 +00:00
parent c85145a2a8
commit 8aa8d541b3
3 changed files with 71 additions and 7 deletions

View File

@ -43,6 +43,8 @@
that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__17_features_not_supported">Macros
that describe C++17 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__17_features_with_c__14_or_earlier_compilers">Macros
that allow use of C++17 features with C++14 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_features_that_have_been_removed_from_the_standard_">Macros
that describe features that have been removed from the standard.</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
@ -3557,6 +3559,20 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_FINAL</span></code>
</p>
</td>
<td>
<p>
If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FINAL</span></code>
is not defined (i.e. C++11 compliant compilers), expands to <code class="computeroutput"><span class="identifier">final</span></code> keyword, otherwise expands
to nothing.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_MSVC_ENABLE_2012_NOV_CTP</span></code>
@ -3798,8 +3814,10 @@
</td>
<td>
<p>
This macro works similar to BOOST_CONSTEXPR, but expands to <code class="computeroutput"><span class="keyword">constexpr</span></code> only if the C++14 "relaxed"
<code class="computeroutput"><span class="keyword">constexpr</span></code> is available.
This macro works similar to <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>,
but expands to <code class="computeroutput"><span class="keyword">constexpr</span></code>
only if the C++14 "relaxed" <code class="computeroutput"><span class="keyword">constexpr</span></code>
is available.
</p>
</td>
</tr></tbody>
@ -3925,7 +3943,8 @@
</td>
<td>
<p>
The compiler does not support C++17 inline variables.
The compiler does not support <code class="computeroutput"><span class="keyword">inline</span></code>
variables.
</p>
</td>
</tr>
@ -3934,6 +3953,49 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__17_features_with_c__14_or_earlier_compilers"></a><a name="config_17_for_14"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__17_features_with_c__14_or_earlier_compilers" title="Macros that allow use of C++17 features with C++14 or earlier compilers">Macros
that allow use of C++17 features with C++14 or earlier compilers</a>
</h3></div></div></div>
<p>
The following macros allow use of C++17 features even with compilers that
do not yet provide compliant C++17 support.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_INLINE_VARIABLE</span></code>
</p>
</td>
<td>
<p>
This macro expands to <code class="computeroutput"><span class="keyword">inline</span></code>
on compilers that support C++17 inline variables and to nothing
otherwise. Users may need to check for <code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_INLINE_VARIABLES</span></code>
for further adjustments to the code.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_features_that_have_been_removed_from_the_standard_"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_features_that_have_been_removed_from_the_standard_" title="Macros that describe features that have been removed from the standard.">Macros
that describe features that have been removed from the standard.</a>
</h3></div></div></div>

View File

@ -1059,7 +1059,8 @@ namespace std{ using ::type_info; }
#endif
// This is a catch all case for obsolete compilers / std libs:
#if (!defined(__has_include) || (__cplusplus < 201700)) && !defined(_MSC_VER)
#if !defined(_YVALS) && !defined(_CPPLIB_VER) // msvc std lib already configured
#if (!defined(__has_include) || (__cplusplus < 201700))
# define BOOST_NO_CXX17_HDR_OPTIONAL
# define BOOST_NO_CXX17_HDR_STRING_VIEW
# define BOOST_NO_CXX17_HDR_VARIANT
@ -1074,6 +1075,7 @@ namespace std{ using ::type_info; }
# define BOOST_NO_CXX17_HDR_VARIANT
#endif
#endif
#endif
//
// Finish off with checks for macros that are depricated / no longer supported,

View File

@ -77,9 +77,9 @@ test-suite config
[ check-target-builds has_rt_lib : <source>rt ]
: config_test_no_except
]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi : config_info_threaded ]
[ run config_info.cpp : : : <test-info>always_show_run_output <rtti>off : config_info_no_rtti ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on : config_info_threaded ]
[ run config_info.cpp : : : <test-info>always_show_run_output <rtti>off <toolset>msvc:<warnings-as-errors>on <toolset>gcc:<warnings-as-errors>on <toolset>clang:<warnings-as-errors>on : config_info_no_rtti ]
[ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off
<target-os>vxworks:<build>no
: config_info_no_except ]