summaryrefslogtreecommitdiffstats
path: root/libcxx/include/stack
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/stack')
-rw-r--r--libcxx/include/stack7
1 files changed, 5 insertions, 2 deletions
diff --git a/libcxx/include/stack b/libcxx/include/stack
index 64fd65215d9..48b3b0d16ec 100644
--- a/libcxx/include/stack
+++ b/libcxx/include/stack
@@ -58,7 +58,7 @@ public:
template <class... Args> void emplace(Args&&... args);
void pop();
- void swap(stack& c) noexcept(noexcept(swap(c, q.c)));
+ void swap(stack& c) noexcept(is_nothrow_swappable_v<Container>)
};
template <class T, class Container>
@@ -275,7 +275,10 @@ operator<=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)
template <class _Tp, class _Container>
inline _LIBCPP_INLINE_VISIBILITY
-void
+typename enable_if<
+ __is_swappable<_Container>::value,
+ void
+>::type
swap(stack<_Tp, _Container>& __x, stack<_Tp, _Container>& __y)
_NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
{
OpenPOWER on IntegriCloud