Add is_swappable/is_nothrow_swappable traits
llvm-svn: 267079
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: f07dd8d0a925dd8cbde7bb6198c1ba92446110ea
diff --git a/include/memory b/include/memory
index e59fd5d..7888303 100644
--- a/include/memory
+++ b/include/memory
@@ -2974,7 +2974,10 @@
template <class _Tp, class _Dp>
inline _LIBCPP_INLINE_VISIBILITY
-void
+typename enable_if<
+ __is_swappable<_Dp>::value,
+ void
+>::type
swap(unique_ptr<_Tp, _Dp>& __x, unique_ptr<_Tp, _Dp>& __y) _NOEXCEPT {__x.swap(__y);}
template <class _T1, class _D1, class _T2, class _D2>