forked from boostorg/config
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:
@ -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.
|
||||
|
@ -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>
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
//
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user