aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/hashmap.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/common/hashmap.h b/common/hashmap.h
index f5059a4bcf..2a50bff07a 100644
--- a/common/hashmap.h
+++ b/common/hashmap.h
@@ -39,6 +39,13 @@
#endif
namespace Common {
+/**
+ * The sgi IRIX MIPSpro Compiler has difficulties with nested templates.
+ * This and the other __sgi conditionals below work around these problems.
+ */
+#ifdef __sgi
+template<class T> class IteratorImpl;
+#endif
// Enable the following #define if you want to check how many collisions the
// code produces (many collisions indicate either a bad hash function, or a
@@ -125,7 +132,9 @@ public:
int lookupAndCreateIfMissing(const Key &key);
void expandStorage(uint newCapacity);
+#ifndef __sgi
template<class T> friend class IteratorImpl;
+#endif
/**
* Simple HashMap iterator implementation.
@@ -133,7 +142,11 @@ public:
template<class NodeType>
class IteratorImpl {
friend class HashMap;
+#ifdef __sgi
+ template<class T> friend class Common::IteratorImpl;
+#else
template<class T> friend class IteratorImpl;
+#endif
protected:
typedef const HashMap hashmap_t;