// 3.0.4 std ext/hash_set
// 3.1 __gnu_cxx ext/hash_set
// HP aCC6 std stdex/rw/hashset.h
-//
+// MS VC++ stdext hash_set
#undef HAVE_GNU_EXT_HASH_SET
#undef HAVE_STD_EXT_HASH_SET
# define HASH_NAMESPACE std
# endif
+// Support Microsoft VC++.
+#elif defined(_MSC_VER)
+# include <hash_set>
+# ifndef HASH_NAMESPACE
+# define HASH_NAMESPACE stdext
+# endif
+
// Give a warning if we couldn't find it, instead of (or in addition to)
// randomly doing something dumb.
#else
*/
template <typename ValueType,
- class _HashFcn = hash<ValueType>,
- class _EqualKey = equal_to<ValueType>,
- class _A = allocator <ValueType> >
-class hash_set : public rw_hashset<ValueType, class _HashFcn, class _EqualKey, class _A> {
+ class _HashFcn = hash<ValueType>,
+ class _EqualKey = equal_to<ValueType>,
+ class _A = allocator <ValueType> >
+class hash_set :
+ public rw_hashset<ValueType, class _HashFcn, class _EqualKey, class _A> {
};
} // end HASH_NAMESPACE;
#endif
using HASH_NAMESPACE::hash_set;
-using HASH_NAMESPACE::hash;
// Include vector because ext/hash_set includes stl_vector.h and leaves
// out specializations like stl_bvector.h, causing link conflicts.