When using C++11 or later, or when using libc++ with any C++ standard,
don't use the tr1 namespace.

Inspired by:
https://github.com/moses-smt/giza-pp/issues/1
http://catherinegasnier.blogspot.com/2014/04/install-giza-107-on-mac-osx-1092.html

Sent upstream:
https://github.com/moses-smt/giza-pp/pull/6
--- GIZA++-v2/mystl.h.orig	2012-04-01 23:15:50.000000000 -0500
+++ GIZA++-v2/mystl.h	2019-11-02 04:10:21.000000000 -0500
@@ -25,9 +25,13 @@
 #include <ext/hash_map>
 using __gnu_cxx::hash_map;
 #else
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
 #include <tr1/unordered_map>
-#define hash_map unordered_map
 using namespace std::tr1;
+#else
+#include <unordered_map>
+#endif
+#define hash_map unordered_map
 #endif
 
 #include <vector>
--- mkcls-v2/myleda.h.orig	2012-04-01 23:22:35.000000000 -0500
+++ mkcls-v2/myleda.h	2019-11-02 04:09:40.000000000 -0500
@@ -27,7 +27,11 @@
 #define myleda_HEADER_defined
 #include <map>
 #include <set>
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
 #include <tr1/unordered_map>
+#else
+#include <unordered_map>
+#endif
 #include "myassert.h"
 #include "FixedArray.h"
 using namespace std;
@@ -110,7 +114,11 @@
 };
 
 inline int Hash(int value) { return value; }
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
 #define MY_HASH_BASE std::tr1::unordered_map<A,B>
+#else
+#define MY_HASH_BASE unordered_map<A,B>
+#endif
 
 template<class A,class B>
 class leda_h_array : public MY_HASH_BASE
--- mkcls-v2/mystl.h.orig	2012-04-01 23:44:54.000000000 -0500
+++ mkcls-v2/mystl.h	2019-11-02 04:09:19.000000000 -0500
@@ -27,13 +27,19 @@
 #define MY_STL_H_DEFINED
 #include <string>
 #include <utility>
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
 #include <tr1/unordered_map>
+#else
+#include <unordered_map>
+#endif
 #include <cmath>
 
 using namespace std;
 
 namespace std {
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
  namespace tr1 {
+#endif
   template <typename T, typename V>
   struct hash<pair<T, V> > {
     static inline void hash_combine(std::size_t & seed, const T & v) {
@@ -48,7 +54,9 @@
       return h;
     }
   };
+#if __cplusplus < 201103L && !defined(_LIBCPP_VERSION)
  }
+#endif
 }
 
 #define over_string(a,i) for(unsigned int i=0;i<a.length();i++)
