Implement LWG 3039 and 3041 - 'Treating Unnecessary decay'.

llvm-svn: 328054
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 69f1072ba22b0cd9747a11c002a0918ba5e05df1
diff --git a/include/thread b/include/thread
index 1b8dca3..0629d70 100644
--- a/include/thread
+++ b/include/thread
@@ -298,7 +298,7 @@
     template <class _Fp, class ..._Args,
               class = typename enable_if
               <
-                   !is_same<typename decay<_Fp>::type, thread>::value
+                   !is_same<typename __uncvref<_Fp>::type, thread>::value
               >::type
              >
         _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS