about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-10-04T16·16+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-10-04T16·16+0000
commit95f4f2cf6102f95abf6948d74907c44c3540eddd (patch)
treef3b6c986dac065190da8a3204a0eaa9b180feabf
parent36a23e86b6ab1265bbf883dd71bc844f7c9183f3 (diff)
* If std::tr1::unordered_set is unavailable, use std::set.
-rw-r--r--configure.ac7
-rw-r--r--src/libexpr/symbol-table.hh9
2 files changed, 16 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 094e6bd09c70..1caa9be5c4a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -140,11 +140,18 @@ AC_LANG_POP(C++)
 AC_CHECK_HEADER([err.h], [], [bsddiff_compat_include="-Icompat-include"])
 AC_SUBST([bsddiff_compat_include])
 
+
 # Check whether we have the personality() syscall, which allows us to
 # do i686-linux builds on x86_64-linux machines.
 AC_CHECK_HEADERS([sys/personality.h])
 
 
+# Check for tr1/unordered_set.
+AC_LANG_PUSH(C++)
+AC_CHECK_HEADERS([tr1/unordered_set], [], [], [])
+AC_LANG_POP(C++)
+
+
 AC_DEFUN([NEED_PROG],
 [
 AC_PATH_PROG($1, $2)
diff --git a/src/libexpr/symbol-table.hh b/src/libexpr/symbol-table.hh
index 424c2353899e..20ebe5fedbf6 100644
--- a/src/libexpr/symbol-table.hh
+++ b/src/libexpr/symbol-table.hh
@@ -1,8 +1,13 @@
 #ifndef __SYMBOL_TABLE_H
 #define __SYMBOL_TABLE_H
 
+#include "config.h"
+
 #include <map>
+
+#if HAVE_TR1_UNORDERED_SET
 #include <tr1/unordered_set>
+#endif
 
 #include "types.hh"
 
@@ -60,7 +65,11 @@ inline std::ostream & operator << (std::ostream & str, const Symbol & sym)
 class SymbolTable
 {
 private:
+#if HAVE_TR1_UNORDERED_SET 
     typedef std::tr1::unordered_set<string> Symbols;
+#else
+    typedef std::set<string> Symbols;
+#endif
     Symbols symbols;
 
 public: