Remove uses of _UI because Windows is evil and tchar.h #define's it

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@304348 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/algorithm b/include/algorithm
index 7ea4474..7144050 100644
--- a/include/algorithm
+++ b/include/algorithm
@@ -2908,11 +2908,11 @@
     static const size_t value = _Rp + 1;
 };
 
-template <class _UI, _UI _Xp>
+template <class _UIntType, _UIntType _Xp>
 struct __log2
 {
     static const size_t value = __log2_imp<_Xp,
-                                         sizeof(_UI) * __CHAR_BIT__ - 1>::value;
+                                         sizeof(_UIntType) * __CHAR_BIT__ - 1>::value;
 };
 
 template<class _Engine, class _UIntType>
diff --git a/include/random b/include/random
index 6c36e8c..c6dfb66 100644
--- a/include/random
+++ b/include/random
@@ -2013,41 +2013,41 @@
           _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
 class _LIBCPP_TEMPLATE_VIS mersenne_twister_engine;
 
-template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 bool
-operator==(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+operator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
 
-template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 _LIBCPP_INLINE_VISIBILITY
 bool
-operator!=(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+operator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x);
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 basic_istream<_CharT, _Traits>&
 operator>>(basic_istream<_CharT, _Traits>& __is,
-           mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                    _Bp, _Tp, _Cp, _Lp, _Fp>& __x);
 
 template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
@@ -2129,44 +2129,44 @@
     _LIBCPP_INLINE_VISIBILITY
     void discard(unsigned long long __z) {for (; __z; --__z) operator()();}
 
-    template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-              _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-              _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+    template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
     friend
     bool
-    operator==(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+    operator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                              _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-               const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                              _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
 
-    template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-              _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-              _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+    template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
     friend
     bool
-    operator!=(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+    operator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                              _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-               const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                              _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
 
     template <class _CharT, class _Traits,
-              class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-              _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-              _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+              class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
     friend
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os,
-               const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                              _Bp, _Tp, _Cp, _Lp, _Fp>& __x);
 
     template <class _CharT, class _Traits,
-              class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-              _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-              _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+              class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
     friend
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is,
-               mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+               mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                        _Bp, _Tp, _Cp, _Lp, _Fp>& __x);
 private:
 
@@ -2384,13 +2384,13 @@
     return __z ^ __rshift<__l>(__z);
 }
 
-template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 bool
-operator==(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+operator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __y)
 {
     if (__x.__i_ == __y.__i_)
@@ -2428,26 +2428,26 @@
                        __x.__x_ + (_Np - (__y.__i_ + __j)));
 }
 
-template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
-operator!=(const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+operator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __y)
 {
     return !(__x == __y);
 }
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
-           const mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                          _Bp, _Tp, _Cp, _Lp, _Fp>& __x)
 {
     __save_flags<_CharT, _Traits> __lx(__os);
@@ -2463,17 +2463,17 @@
 }
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
-          _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
-          _UI _Bp, size_t _Tp, _UI _Cp, size_t _Lp, _UI _Fp>
+          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
+          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,
+          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>
 basic_istream<_CharT, _Traits>&
 operator>>(basic_istream<_CharT, _Traits>& __is,
-           mersenne_twister_engine<_UI, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
+           mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,
                                    _Bp, _Tp, _Cp, _Lp, _Fp>& __x)
 {
     __save_flags<_CharT, _Traits> __lx(__is);
     __is.flags(ios_base::dec | ios_base::skipws);
-    _UI __t[_Np];
+    _UInt __t[_Np];
     for (size_t __i = 0; __i < _Np; ++__i)
         __is >> __t[__i];
     if (!__is.fail())
@@ -2501,30 +2501,30 @@
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
 class _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine;
 
-template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 bool
 operator==(
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y);
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);
 
-template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 _LIBCPP_INLINE_VISIBILITY
 bool
 operator!=(
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y);
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
-           const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
+           const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 basic_istream<_CharT, _Traits>&
 operator>>(basic_istream<_CharT, _Traits>& __is,
-           subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
+           subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);
 
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
 class _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine
@@ -2586,33 +2586,33 @@
     _LIBCPP_INLINE_VISIBILITY
     void discard(unsigned long long __z) {for (; __z; --__z) operator()();}
 
-    template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+    template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
     friend
     bool
     operator==(
-        const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-        const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y);
+        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);
 
-    template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+    template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
     friend
     bool
     operator!=(
-        const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-        const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y);
+        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);
 
     template <class _CharT, class _Traits,
-              class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+              class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
     friend
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os,
-               const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
+               const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);
 
     template <class _CharT, class _Traits,
-              class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+              class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
     friend
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is,
-               subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
+               subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);
 
 private:
 
@@ -2711,11 +2711,11 @@
     return __xr;
 }
 
-template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 bool
 operator==(
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y)
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y)
 {
     if (__x.__c_ != __y.__c_)
         return false;
@@ -2754,21 +2754,21 @@
                        __x.__x_ + (_Rp - (__y.__i_ + __j)));
 }
 
-template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator!=(
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x,
-    const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __y)
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,
+    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y)
 {
     return !(__x == __y);
 }
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
-           const subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x)
+           const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x)
 {
     __save_flags<_CharT, _Traits> __lx(__os);
     __os.flags(ios_base::dec | ios_base::left);
@@ -2784,14 +2784,14 @@
 }
 
 template <class _CharT, class _Traits,
-          class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
+          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>
 basic_istream<_CharT, _Traits>&
 operator>>(basic_istream<_CharT, _Traits>& __is,
-           subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x)
+           subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x)
 {
     __save_flags<_CharT, _Traits> __lx(__is);
     __is.flags(ios_base::dec | ios_base::skipws);
-    _UI __t[_Rp+1];
+    _UInt __t[_Rp+1];
     for (size_t __i = 0; __i < _Rp+1; ++__i)
         __is >> __t[__i];
     if (!__is.fail())
@@ -2986,13 +2986,13 @@
 template<class _Engine, size_t __w, class _UIntType>
 class _LIBCPP_TEMPLATE_VIS independent_bits_engine
 {
-    template <class _UI, _UI _R0, size_t _Wp, size_t _Mp>
+    template <class _UInt, _UInt _R0, size_t _Wp, size_t _Mp>
     class __get_n
     {
-        static _LIBCPP_CONSTEXPR const size_t _Dt = numeric_limits<_UI>::digits;
+        static _LIBCPP_CONSTEXPR const size_t _Dt = numeric_limits<_UInt>::digits;
         static _LIBCPP_CONSTEXPR const size_t _Np = _Wp / _Mp + (_Wp % _Mp != 0);
         static _LIBCPP_CONSTEXPR const size_t _W0 = _Wp / _Np;
-        static _LIBCPP_CONSTEXPR const _UI _Y0 = _W0 >= _Dt ? 0 : (_R0 >> _W0) << _W0;
+        static _LIBCPP_CONSTEXPR const _UInt _Y0 = _W0 >= _Dt ? 0 : (_R0 >> _W0) << _W0;
     public:
         static _LIBCPP_CONSTEXPR const size_t value = _R0 - _Y0 > _Y0 / _Np ? _Np + 1 : _Np;
     };
@@ -3091,33 +3091,33 @@
     _LIBCPP_INLINE_VISIBILITY
     const _Engine& base() const _NOEXCEPT {return __e_;}
 
-    template<class _Eng, size_t _Wp, class _UI>
+    template<class _Eng, size_t _Wp, class _UInt>
     friend
     bool
     operator==(
-        const independent_bits_engine<_Eng, _Wp, _UI>& __x,
-        const independent_bits_engine<_Eng, _Wp, _UI>& __y);
+        const independent_bits_engine<_Eng, _Wp, _UInt>& __x,
+        const independent_bits_engine<_Eng, _Wp, _UInt>& __y);
 
-    template<class _Eng, size_t _Wp, class _UI>
+    template<class _Eng, size_t _Wp, class _UInt>
     friend
     bool
     operator!=(
-        const independent_bits_engine<_Eng, _Wp, _UI>& __x,
-        const independent_bits_engine<_Eng, _Wp, _UI>& __y);
+        const independent_bits_engine<_Eng, _Wp, _UInt>& __x,
+        const independent_bits_engine<_Eng, _Wp, _UInt>& __y);
 
     template <class _CharT, class _Traits,
-              class _Eng, size_t _Wp, class _UI>
+              class _Eng, size_t _Wp, class _UInt>
     friend
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os,
-               const independent_bits_engine<_Eng, _Wp, _UI>& __x);
+               const independent_bits_engine<_Eng, _Wp, _UInt>& __x);
 
     template <class _CharT, class _Traits,
-              class _Eng, size_t _Wp, class _UI>
+              class _Eng, size_t _Wp, class _UInt>
     friend
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is,
-               independent_bits_engine<_Eng, _Wp, _UI>& __x);
+               independent_bits_engine<_Eng, _Wp, _UInt>& __x);
 
 private:
     _LIBCPP_INLINE_VISIBILITY
@@ -3179,40 +3179,40 @@
     return _Sp;
 }
 
-template<class _Eng, size_t _Wp, class _UI>
+template<class _Eng, size_t _Wp, class _UInt>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator==(
-    const independent_bits_engine<_Eng, _Wp, _UI>& __x,
-    const independent_bits_engine<_Eng, _Wp, _UI>& __y)
+    const independent_bits_engine<_Eng, _Wp, _UInt>& __x,
+    const independent_bits_engine<_Eng, _Wp, _UInt>& __y)
 {
     return __x.base() == __y.base();
 }
 
-template<class _Eng, size_t _Wp, class _UI>
+template<class _Eng, size_t _Wp, class _UInt>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator!=(
-    const independent_bits_engine<_Eng, _Wp, _UI>& __x,
-    const independent_bits_engine<_Eng, _Wp, _UI>& __y)
+    const independent_bits_engine<_Eng, _Wp, _UInt>& __x,
+    const independent_bits_engine<_Eng, _Wp, _UInt>& __y)
 {
     return !(__x == __y);
 }
 
 template <class _CharT, class _Traits,
-          class _Eng, size_t _Wp, class _UI>
+          class _Eng, size_t _Wp, class _UInt>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
-           const independent_bits_engine<_Eng, _Wp, _UI>& __x)
+           const independent_bits_engine<_Eng, _Wp, _UInt>& __x)
 {
     return __os << __x.base();
 }
 
 template <class _CharT, class _Traits,
-          class _Eng, size_t _Wp, class _UI>
+          class _Eng, size_t _Wp, class _UInt>
 basic_istream<_CharT, _Traits>&
 operator>>(basic_istream<_CharT, _Traits>& __is,
-           independent_bits_engine<_Eng, _Wp, _UI>& __x)
+           independent_bits_engine<_Eng, _Wp, _UInt>& __x)
 {
     _Eng __e;
     __is >> __e;
diff --git a/test/support/nasty_macros.hpp b/test/support/nasty_macros.hpp
index f6c8aad..dc4f18e 100644
--- a/test/support/nasty_macros.hpp
+++ b/test/support/nasty_macros.hpp
@@ -37,6 +37,8 @@
 #define _Y NASTY_MACRO
 #define _Z NASTY_MACRO
 
+#define _UI NASTY_MACRO // tchar.h defines this on Windows.
+
 // Test that libc++ doesn't use names reserved by WIN32 API Macros.
 // NOTE: Obviously we can only define these on non-windows platforms.
 #ifndef _WIN32