1b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant//===----------------------------------------------------------------------===// 2b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// 3b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// The LLVM Compiler Infrastructure 4b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// 5b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// Source Licenses. See LICENSE.TXT for details. 7b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// 8b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant//===----------------------------------------------------------------------===// 9b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 10b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// <forward_list> 11b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 12b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant// ~forward_list() // implied noexcept; 13b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 14b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#include <forward_list> 15b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#include <cassert> 16b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 175cb52824fc2a0caf233311e91d9a2a53368f04adDan Albert#include "MoveOnly.h" 181b92188a82b01e76ac6e8ad5f997293c2a078adcMarshall Clow#include "test_allocator.h" 19b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 20b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#if __has_feature(cxx_noexcept) 21b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 22b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnanttemplate <class T> 23b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnantstruct some_alloc 24b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant{ 25b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant typedef T value_type; 26b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant some_alloc(const some_alloc&); 27b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant ~some_alloc() noexcept(false); 28b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant}; 29b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 30b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#endif 31b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant 32b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnantint main() 33b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant{ 34b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#if __has_feature(cxx_noexcept) 35b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant { 36b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant typedef std::forward_list<MoveOnly> C; 37b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant static_assert(std::is_nothrow_destructible<C>::value, ""); 38b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant } 39b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant { 40b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant typedef std::forward_list<MoveOnly, test_allocator<MoveOnly>> C; 41b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant static_assert(std::is_nothrow_destructible<C>::value, ""); 42b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant } 43b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant { 44b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant typedef std::forward_list<MoveOnly, other_allocator<MoveOnly>> C; 45b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant static_assert(std::is_nothrow_destructible<C>::value, ""); 46b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant } 47b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant { 48b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant typedef std::forward_list<MoveOnly, some_alloc<MoveOnly>> C; 49b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant static_assert(!std::is_nothrow_destructible<C>::value, ""); 50b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant } 51b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant#endif 52b965fed10bc47c74ed491717af082ecf5c8b815bHoward Hinnant} 53