139213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant//===----------------------------------------------------------------------===// 239213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// 339213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// The LLVM Compiler Infrastructure 439213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// 539213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 639213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 739213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// 839213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant//===----------------------------------------------------------------------===// 939213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 1039213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// <unordered_set> 1139213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 1239213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>, 1339213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// class Alloc = allocator<Value>> 1439213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// class unordered_set 1539213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 1639213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant// void swap(unordered_set& x, unordered_set& y); 1739213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 185e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 1939213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0)) 2039213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant#endif 2139213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 2239213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant#include <unordered_set> 2339213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant#include <cassert> 2439213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant 2539213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnantint main() 2639213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant{ 275e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 2839213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant { 2939213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant int a1[] = {1, 3, 7, 9, 10}; 3039213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant int a2[] = {0, 2, 4, 5, 6, 8, 11}; 3139213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant std::unordered_set<int> c1(a1, a1+sizeof(a1)/sizeof(a1[0])); 3239213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant std::unordered_set<int> c2(a2, a2+sizeof(a2)/sizeof(a2[0])); 3339213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant std::unordered_set<int>::iterator i1 = c1.begin(); 3439213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant std::unordered_set<int>::iterator i2 = c2.begin(); 3539213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant swap(c1, c2); 3639213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant c1.erase(i2); 3739213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant c2.erase(i1); 3839213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant std::unordered_set<int>::iterator j = i1; 3939213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant c1.erase(i1); 4039213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant assert(false); 4139213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant } 4239213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant#endif 4339213641f4dbaa2f412bd6cceb57f81edcae95f9Howard Hinnant} 44