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// <list> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// void splice(const_iterator position, list& x, iterator first, iterator last); 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 145e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 152062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant#define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : std::exit(0)) 162062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant#endif 172062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <list> 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert> 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 21061d0cc4db18d17bf01ed14c5db0be098205bd47Marshall Clow#include "min_allocator.h" 2229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int a1[] = {1, 2, 3}; 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant int a2[] = {4, 5, 6}; 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin())); 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 3); 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 2)); 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 3); 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 3)); 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 3); 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l2(a2, a2+3); 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(l1.begin(), l2, next(l2.begin()), l2.end()); 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 5); 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 5); 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 6); 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l2.size() == 1); 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = l2.begin(); 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l2(a2, a2+3); 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(next(l1.begin()), l2, next(l2.begin()), l2.end()); 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 5); 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 5); 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 6); 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l2.size() == 1); 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = l2.begin(); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant { 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l1(a1, a1+3); 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int> l2(a2, a2+3); 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant l1.splice(l1.end(), l2, next(l2.begin()), l2.end()); 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l1.size() == 5); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::list<int>::const_iterator i = l1.begin(); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 1); 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 2); 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 3); 115bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 116bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 5); 117bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant ++i; 118bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 6); 119bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(l2.size() == 1); 120bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant i = l2.begin(); 121bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant assert(*i == 4); 122bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant } 1235e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 1242062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant { 1252062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant std::list<int> v1(3); 1262062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant std::list<int> v2(3); 1272062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant v1.splice(v1.begin(), v2, v2.begin(), v1.end()); 1282062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant assert(false); 1292062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant } 1302062f377728e6c2a77842ca5b2c6428aab605ebcHoward Hinnant#endif 13129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#if __cplusplus >= 201103L 13229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 13329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 13429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin())); 13529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 3); 13629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 13729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 13829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 13929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 14029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 14129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 14229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 14329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 14429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 14529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 14629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 2)); 14729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 3); 14829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 14929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 15029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 15129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 15229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 15329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 15429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 15529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 15629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 15729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 15829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(l1.begin(), l1, next(l1.begin()), next(l1.begin(), 3)); 15929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 3); 16029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 3); 16129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 16229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 16329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 16429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 16529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 16629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 16729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 16829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 16929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 17029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l2(a2, a2+3); 17129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(l1.begin(), l2, next(l2.begin()), l2.end()); 17229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 5); 17329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 17429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 17529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 5); 17629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 17729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 6); 17829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 17929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 18029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 18129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 18229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 18329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 18429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l2.size() == 1); 18529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant i = l2.begin(); 18629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 4); 18729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 18829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 18929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 19029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l2(a2, a2+3); 19129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(next(l1.begin()), l2, next(l2.begin()), l2.end()); 19229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 5); 19329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 19429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 19529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 19629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 19729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 5); 19829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 19929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 6); 20029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 20129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 20229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 20329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 20429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l2.size() == 1); 20529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant i = l2.begin(); 20629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 4); 20729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 20829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 20929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l1(a1, a1+3); 21029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> l2(a2, a2+3); 21129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant l1.splice(l1.end(), l2, next(l2.begin()), l2.end()); 21229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l1.size() == 5); 21329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(distance(l1.begin(), l1.end()) == 5); 21429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 21529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 1); 21629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 21729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 2); 21829f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 21929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 3); 22029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 22129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 5); 22229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant ++i; 22329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 6); 22429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(l2.size() == 1); 22529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant i = l2.begin(); 22629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(*i == 4); 22729f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 2285e57142c5902c3f73a6fdcb8cab55e88ffb43a56Howard Hinnant#if _LIBCPP_DEBUG >= 1 22929f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant { 23029f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> v1(3); 23129f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant std::list<int, min_allocator<int>> v2(3); 23229f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant v1.splice(v1.begin(), v2, v2.begin(), v1.end()); 23329f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant assert(false); 23429f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant } 23529f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#endif 23629f7432ff3a5c503a98a66ae46dd571b651c88b5Howard Hinnant#endif 237bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 238