#include <Support/hash_map>
// Cannot specialize hash template from outside of the std namespace.
-namespace std {
+namespace HASH_NAMESPACE {
-template <> struct hash<string> {
- size_t operator()(string const &str) const {
+template <> struct hash<std::string> {
+ size_t operator()(std::string const &str) const {
return hash<char const *>()(str.c_str());
}
};
#define LLVM_SUPPORT_POSTORDER_ITERATOR_H
#include "Support/GraphTraits.h"
-#include <iterator>
+#include <Support/iterator>
#include <stack>
#include <set>
template<class GraphT, class GT = GraphTraits<GraphT> >
-class po_iterator : public std::forward_iterator<typename GT::NodeType,
- ptrdiff_t> {
+class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t> {
+ typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
+ typedef typename super::pointer pointer;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;
#if __GNUC__ == 3
#include <ext/hash_map>
-using __gnu_cxx::hash_map;
+#ifndef HASH_NAMESPACE
+#define HASH_NAMESPACE __gnu_cxx
+#endif
#else
#include <hash_map>
+#ifndef HASH_NAMESPACE
+#define HASH_NAMESPACE std
+#endif
#endif
+using HASH_NAMESPACE::hash_map;
+using HASH_NAMESPACE::hash;
+
#endif
#define SUPPORT_HASHSET_H
#if __GNUC__==3
#include <ext/hash_set>
-using __gnu_cxx::hash_set;
+#define HASH_NAMESPACE __gnu_cxx
#else
#include <hash_set>
+#define HASH_NAMESPACE std
#endif
+
+using HASH_NAMESPACE::hash_set;
+using HASH_NAMESPACE::hash;
+
+#endif
+
#include <Support/hash_map>
// Cannot specialize hash template from outside of the std namespace.
-namespace std {
+namespace HASH_NAMESPACE {
-template <> struct hash<string> {
- size_t operator()(string const &str) const {
+template <> struct hash<std::string> {
+ size_t operator()(std::string const &str) const {
return hash<char const *>()(str.c_str());
}
};
#define LLVM_SUPPORT_POSTORDER_ITERATOR_H
#include "Support/GraphTraits.h"
-#include <iterator>
+#include <Support/iterator>
#include <stack>
#include <set>
template<class GraphT, class GT = GraphTraits<GraphT> >
-class po_iterator : public std::forward_iterator<typename GT::NodeType,
- ptrdiff_t> {
+class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t> {
+ typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
+ typedef typename super::pointer pointer;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;