]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/config/test/boost_has_hash.ipp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / config / test / boost_has_hash.ipp
index 0363940d2621a1ddda7620155d2e82dc23e418a8..b893c41648505e71a48e1ab9337f12cc09925f59 100644 (file)
 //  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
@@ -41,6 +26,11 @@ void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
 {
 }
 
+template <class Key, class Eq, class Hash, class Alloc>
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<Key,Eq,Hash,Alloc>& )
+{
+}
+
 template <class Key, class T, class Eq, class Hash, class Alloc>
 void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
 {
@@ -52,9 +42,15 @@ int test()
 {
 #ifndef DISABLE_BOOST_HAS_HASH_TEST
    BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
+   hs.insert(2);
    foo(hs);
    BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
+   hm[3] = 2;
    foo(hm);
+   BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<int> hs2;
+   hs2.insert(2);
+   hs2.insert(2);
+   foo(hs2);
 #endif
    return 0;
 }