Update libstdcpp3.hpp to use has_include to check for has_set/hash_map presence.

Correct doc typo.
Update tests to use BOOST_HASH_SET_HEADER.
Fixes https://github.com/boostorg/config/issues/349.
This commit is contained in:
jzmaddock
2020-12-18 10:53:01 +00:00
parent 9022672932
commit b4a0ebc265
5 changed files with 19 additions and 20 deletions

View File

@ -1539,7 +1539,7 @@
<p>
The C++ implementation provides the (SGI) hash_set and hash_map
classes. When defined, <code class="computeroutput"><span class="identifier">BOOST_HASH_SET_HEADER</span></code>
and <code class="computeroutput"><span class="identifier">BOOST_HASH_LIST_HEADER</span></code>
and <code class="computeroutput"><span class="identifier">BOOST_HASH_MAP_HEADER</span></code>
will contain the names of the header needed to access hash_set
and hash_map; <code class="computeroutput"><span class="identifier">BOOST_STD_EXTENSION_NAMESPACE</span></code>
will provide the namespace in which the two class templates reside.

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: July 27, 2020 at 17:18:39 GMT</small></p></td>
<td align="left"><p><small>Last revised: December 18, 2020 at 10:47:00 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -367,7 +367,7 @@ The platform has the POSIX API `gettimeofday`.
]]
[[`BOOST_HAS_HASH`][Standard library][
The C++ implementation provides the (SGI) hash_set and hash_map classes.
When defined, `BOOST_HASH_SET_HEADER` and `BOOST_HASH_LIST_HEADER` will contain
When defined, `BOOST_HASH_SET_HEADER` and `BOOST_HASH_MAP_HEADER` will contain
the names of the header needed to access hash_set and hash_map;
`BOOST_STD_EXTENSION_NAMESPACE` will provide the namespace in which the two
class templates reside.

View File

@ -94,6 +94,20 @@
#endif
#endif
#if defined(__has_include)
#if defined(BOOST_HAS_HASH)
#if !__has_include(BOOST_HASH_SET_HEADER)
#undef BOOST_HAS_HAS
#undef BOOST_HAS_SET_HEADER
#undef BOOST_HAS_MAP_HEADER
#endif
#if !__has_include(BOOST_SLIST_HEADER)
#undef BOOST_HAS_SLIST
#undef BOOST_HAS_SLIST_HEADER
#endif
#endif
#endif
//
// Decide whether we have C++11 support turned on:
//

View File

@ -10,23 +10,8 @@
// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
// or hash_map classes.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# ifdef BOOST_NO_CXX11_STD_UNORDERED
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define _BACKWARD_BACKWARD_WARNING_H 1 /* turn off warnings from the headers below */
# include <ext/hash_set>
# include <ext/hash_map>
# else
// If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must
// not include the <ext/*> headers as they clash with the C++0x
// headers. ie in any given translation unit we can include one
// or the other, but not both.
# define DISABLE_BOOST_HAS_HASH_TEST
# endif
#else
#include <hash_set>
#include <hash_map>
#endif
#include BOOST_HASH_SET_HEADER
#include BOOST_HASH_MAP_HEADER
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std