1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// The LLVM Compiler Infrastructure 4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open 6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Source Licenses. See LICENSE.TXT for details. 7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner//===----------------------------------------------------------------------===// 9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// <unordered_map> 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// ~unordered_multimap() // implied noexcept; 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <unordered_map> 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <cassert> 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include "../../../MoveOnly.h" 185de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh#include "test_allocator.h" 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#if __has_feature(cxx_noexcept) 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnertemplate <class T> 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerstruct some_comp 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef T value_type; 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner ~some_comp() noexcept(false); 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnertemplate <class T> 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerstruct some_hash 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef T value_type; 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner some_hash(); 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner some_hash(const some_hash&); 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner ~some_hash() noexcept(false); 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#endif 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnerint main() 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#if __has_feature(cxx_noexcept) 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::unordered_multimap<MoveOnly, MoveOnly> C; 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner static_assert(std::is_nothrow_destructible<C>::value, ""); 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>, 495de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh std::equal_to<MoveOnly>, test_allocator<std::pair<const MoveOnly, MoveOnly>>> C; 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner static_assert(std::is_nothrow_destructible<C>::value, ""); 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>, 545de42e6621b3d0131472c3f8838b7f0ccf3e8963Andrew Hsieh std::equal_to<MoveOnly>, other_allocator<std::pair<const MoveOnly, MoveOnly>>> C; 55b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner static_assert(std::is_nothrow_destructible<C>::value, ""); 56b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 57b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 58b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::unordered_multimap<MoveOnly, MoveOnly, some_hash<MoveOnly>> C; 59b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner static_assert(!std::is_nothrow_destructible<C>::value, ""); 60b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 61b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner { 62b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef std::unordered_multimap<MoveOnly, MoveOnly, std::hash<MoveOnly>, 63b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner some_comp<MoveOnly>> C; 64b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner static_assert(!std::is_nothrow_destructible<C>::value, ""); 65b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner } 66b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#endif 67b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 68