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