158cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//===----------------------------------------------------------------------===//
258cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//
358cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//                     The LLVM Compiler Infrastructure
458cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//
558cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
658cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant// Source Licenses. See LICENSE.TXT for details.
758cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//
858cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//===----------------------------------------------------------------------===//
958cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
1058cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant// <stack>
1158cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
1258cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant// void swap(stack& c)
1358cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant//     noexcept(__is_nothrow_swappable<container_type>::value);
1458cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
1558cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant// This tests a conforming extension
1658cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
1758cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant#include <stack>
1858cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant#include <cassert>
1958cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
2058cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant#include "../../../MoveOnly.h"
2158cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant
2258cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnantint main()
2358cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant{
2458cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant#if __has_feature(cxx_noexcept)
2558cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant    {
2658cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant        typedef std::stack<MoveOnly> C;
2758cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant        C c1, c2;
2858cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant        static_assert(noexcept(swap(c1, c2)), "");
2958cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant    }
3058cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant#endif
3158cd8231d80bb14c5e78fbedc00af191134cc99dHoward Hinnant}
32