diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index ec8f4d13..b4dacaa5 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -1539,7 +1539,7 @@

The C++ implementation provides the (SGI) hash_set and hash_map classes. When defined, BOOST_HASH_SET_HEADER - and BOOST_HASH_LIST_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. diff --git a/doc/html/index.html b/doc/html/index.html index 08adedc6..6ba3727c 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -990,7 +990,7 @@ - +

Last revised: July 27, 2020 at 17:18:39 GMT

Last revised: December 18, 2020 at 10:47:00 GMT


diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index 83c9ed79..c3cf8384 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -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. diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index 068dc078..da384d23 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -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: // diff --git a/test/boost_has_hash.ipp b/test/boost_has_hash.ipp index 0363940d..45ac40fa 100644 --- a/test/boost_has_hash.ipp +++ b/test/boost_has_hash.ipp @@ -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 -# include -# else - // If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must - // not include the 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 -#include -#endif +#include BOOST_HASH_SET_HEADER +#include BOOST_HASH_MAP_HEADER #ifndef BOOST_STD_EXTENSION_NAMESPACE #define BOOST_STD_EXTENSION_NAMESPACE std