Implement LWG 3039 and 3041 - 'Treating Unnecessary decay'.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@328054 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/future b/include/future
index a7c28a4..536574e 100644
--- a/include/future
+++ b/include/future
@@ -2021,7 +2021,7 @@
class = typename enable_if
<
!is_same<
- typename decay<_Fp>::type,
+ typename __uncvref<_Fp>::type,
packaged_task
>::value
>::type
@@ -2032,7 +2032,7 @@
class = typename enable_if
<
!is_same<
- typename decay<_Fp>::type,
+ typename __uncvref<_Fp>::type,
packaged_task
>::value
>::type
@@ -2150,7 +2150,7 @@
class = typename enable_if
<
!is_same<
- typename decay<_Fp>::type,
+ typename __uncvref<_Fp>::type,
packaged_task
>::value
>::type
@@ -2161,7 +2161,7 @@
class = typename enable_if
<
!is_same<
- typename decay<_Fp>::type,
+ typename __uncvref<_Fp>::type,
packaged_task
>::value
>::type
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