N3142.  Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right.

llvm-svn: 119854
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: ca740483988a36f54a94ecb515d23f055fddf384
diff --git a/include/utility b/include/utility
index f4c94be..f8a8fc5 100644
--- a/include/utility
+++ b/include/utility
@@ -38,7 +38,7 @@
 template <class T>
     typename conditional
     <
-        !has_nothrow_move_constructor<T>::value && has_copy_constructor<T>::value,
+        !is_nothrow_move_constructible<T>::value && is_copy_constructible<T>::value,
         const T&,
         T&&
     >::type
@@ -178,7 +178,7 @@
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 typename conditional
 <
-    !has_nothrow_move_constructor<_Tp>::value && has_copy_constructor<_Tp>::value,
+    !is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value,
     const _Tp&,
     _Tp&&
 >::type