1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <unordered_set> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>, 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// class Alloc = allocator<Value>> 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// class unordered_set 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// local_iterator begin (size_type n); 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// local_iterator end (size_type n); 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// const_local_iterator begin (size_type n) const; 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// const_local_iterator end (size_type n) const; 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// const_local_iterator cbegin(size_type n) const; 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// const_local_iterator cend (size_type n) const; 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <unordered_set> 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert> 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef std::unordered_set<int> C; 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef int P; 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef C::local_iterator I; 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P a[] = 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2), 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(3), 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(4), 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2) 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant }; 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C c(a, a + sizeof(a)/sizeof(a[0])); 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(c.bucket_count() >= 5); 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C::size_type b = c.bucket(0); 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = c.begin(b); 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I j = c.end(b); 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(1); 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant *i = 2; 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(2); 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(3); 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(4); 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(5); 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(6); 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef std::unordered_set<int> C; 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef int P; 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef C::const_local_iterator I; 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P a[] = 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2), 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(3), 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(4), 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2) 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant }; 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const C c(a, a + sizeof(a)/sizeof(a[0])); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(c.bucket_count() >= 5); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C::size_type b = c.bucket(0); 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = c.begin(b); 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I j = c.end(b); 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(1); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 115bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(2); 116bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 117bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 118bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 119bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 120bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 121bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 122bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 123bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(3); 124bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 125bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 126bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 127bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 128bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 129bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(4); 130bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 131bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 132bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 133bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 134bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 135bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(5); 136bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 137bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 138bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 139bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 140bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(6); 141bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.begin(b); 142bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.end(b); 143bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 144bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 145bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 146bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef std::unordered_set<int> C; 147bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef int P; 148bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef C::const_local_iterator I; 149bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P a[] = 150bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 151bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 152bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2), 153bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(3), 154bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(4), 155bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 156bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2) 157bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant }; 158bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C c(a, a + sizeof(a)/sizeof(a[0])); 159bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(c.bucket_count() >= 5); 160bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C::size_type b = c.bucket(0); 161bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = c.cbegin(b); 162bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I j = c.cend(b); 163bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 164bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 165bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(1); 166bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 167bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 168bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 169bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 170bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 171bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 172bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 173bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(2); 174bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 175bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 176bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 177bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 178bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 179bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 180bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 181bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(3); 182bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 183bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 184bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 185bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 186bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 187bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(4); 188bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 189bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 190bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 191bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 192bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 193bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(5); 194bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 195bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 196bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 197bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 198bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(6); 199bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 200bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 201bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 202bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 203bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 204bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef std::unordered_set<int> C; 205bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef int P; 206bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant typedef C::const_local_iterator I; 207bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P a[] = 208bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 209bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 210bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2), 211bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(3), 212bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(4), 213bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(1), 214bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant P(2) 215bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant }; 216bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant const C c(a, a + sizeof(a)/sizeof(a[0])); 217bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(c.bucket_count() >= 5); 218bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant C::size_type b = c.bucket(0); 219bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I i = c.cbegin(b); 220bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant I j = c.cend(b); 221bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 222bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 223bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(1); 224bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 225bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 226bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 227bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 228bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 229bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 230bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 231bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(2); 232bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 233bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 234bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 2); 235bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 236bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 237bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 238bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 239bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(3); 240bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 241bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 242bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 243bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 244bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 245bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(4); 246bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 247bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 248bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 1); 249bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 250bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 251bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(5); 252bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 253bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 254bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 255bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 256bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant b = c.bucket(6); 257bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = c.cbegin(b); 258bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant j = c.cend(b); 259bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(std::distance(i, j) == 0); 260bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 261bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 262