1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 // <list> 11 12 // void splice(const_iterator position, list& x); 13 14 #include <list> 15 #include <cassert> 16 17 #include "test_macros.h" 18 #include "min_allocator.h" 19 20 int main() 21 { 22 int a1[] = {1, 2, 3}; 23 int a2[] = {4, 5, 6}; 24 { 25 std::list<int> l1; 26 std::list<int> l2; 27 l1.splice(l1.end(), l2); 28 assert(l1.size() == 0); 29 assert(distance(l1.begin(), l1.end()) == 0); 30 assert(l2.size() == 0); 31 assert(distance(l2.begin(), l2.end()) == 0); 32 } 33 { 34 std::list<int> l1; 35 std::list<int> l2(a2, a2+1); 36 l1.splice(l1.end(), l2); 37 assert(l1.size() == 1); 38 assert(distance(l1.begin(), l1.end()) == 1); 39 assert(l2.size() == 0); 40 assert(distance(l2.begin(), l2.end()) == 0); 41 std::list<int>::const_iterator i = l1.begin(); 42 assert(*i == 4); 43 } 44 { 45 std::list<int> l1; 46 std::list<int> l2(a2, a2+2); 47 l1.splice(l1.end(), l2); 48 assert(l1.size() == 2); 49 assert(distance(l1.begin(), l1.end()) == 2); 50 assert(l2.size() == 0); 51 assert(distance(l2.begin(), l2.end()) == 0); 52 std::list<int>::const_iterator i = l1.begin(); 53 assert(*i == 4); 54 ++i; 55 assert(*i == 5); 56 } 57 { 58 std::list<int> l1; 59 std::list<int> l2(a2, a2+3); 60 l1.splice(l1.end(), l2); 61 assert(l1.size() == 3); 62 assert(distance(l1.begin(), l1.end()) == 3); 63 assert(l2.size() == 0); 64 assert(distance(l2.begin(), l2.end()) == 0); 65 std::list<int>::const_iterator i = l1.begin(); 66 assert(*i == 4); 67 ++i; 68 assert(*i == 5); 69 ++i; 70 assert(*i == 6); 71 } 72 { 73 std::list<int> l1(a1, a1+1); 74 std::list<int> l2; 75 l1.splice(l1.begin(), l2); 76 assert(l1.size() == 1); 77 assert(distance(l1.begin(), l1.end()) == 1); 78 assert(l2.size() == 0); 79 assert(distance(l2.begin(), l2.end()) == 0); 80 std::list<int>::const_iterator i = l1.begin(); 81 assert(*i == 1); 82 } 83 { 84 std::list<int> l1(a1, a1+1); 85 std::list<int> l2; 86 l1.splice(l1.end(), l2); 87 assert(l1.size() == 1); 88 assert(distance(l1.begin(), l1.end()) == 1); 89 assert(l2.size() == 0); 90 assert(distance(l2.begin(), l2.end()) == 0); 91 std::list<int>::const_iterator i = l1.begin(); 92 assert(*i == 1); 93 } 94 { 95 std::list<int> l1(a1, a1+1); 96 std::list<int> l2(a2, a2+1); 97 l1.splice(l1.begin(), l2); 98 assert(l1.size() == 2); 99 assert(distance(l1.begin(), l1.end()) == 2); 100 assert(l2.size() == 0); 101 assert(distance(l2.begin(), l2.end()) == 0); 102 std::list<int>::const_iterator i = l1.begin(); 103 assert(*i == 4); 104 ++i; 105 assert(*i == 1); 106 } 107 { 108 std::list<int> l1(a1, a1+1); 109 std::list<int> l2(a2, a2+1); 110 l1.splice(l1.end(), l2); 111 assert(l1.size() == 2); 112 assert(distance(l1.begin(), l1.end()) == 2); 113 assert(l2.size() == 0); 114 assert(distance(l2.begin(), l2.end()) == 0); 115 std::list<int>::const_iterator i = l1.begin(); 116 assert(*i == 1); 117 ++i; 118 assert(*i == 4); 119 } 120 { 121 std::list<int> l1(a1, a1+1); 122 std::list<int> l2(a2, a2+2); 123 l1.splice(l1.begin(), l2); 124 assert(l1.size() == 3); 125 assert(distance(l1.begin(), l1.end()) == 3); 126 assert(l2.size() == 0); 127 assert(distance(l2.begin(), l2.end()) == 0); 128 std::list<int>::const_iterator i = l1.begin(); 129 assert(*i == 4); 130 ++i; 131 assert(*i == 5); 132 ++i; 133 assert(*i == 1); 134 } 135 { 136 std::list<int> l1(a1, a1+1); 137 std::list<int> l2(a2, a2+2); 138 l1.splice(l1.end(), l2); 139 assert(l1.size() == 3); 140 assert(distance(l1.begin(), l1.end()) == 3); 141 assert(l2.size() == 0); 142 assert(distance(l2.begin(), l2.end()) == 0); 143 std::list<int>::const_iterator i = l1.begin(); 144 assert(*i == 1); 145 ++i; 146 assert(*i == 4); 147 ++i; 148 assert(*i == 5); 149 } 150 { 151 std::list<int> l1(a1, a1+1); 152 std::list<int> l2(a2, a2+3); 153 l1.splice(l1.begin(), l2); 154 assert(l1.size() == 4); 155 assert(distance(l1.begin(), l1.end()) == 4); 156 assert(l2.size() == 0); 157 assert(distance(l2.begin(), l2.end()) == 0); 158 std::list<int>::const_iterator i = l1.begin(); 159 assert(*i == 4); 160 ++i; 161 assert(*i == 5); 162 ++i; 163 assert(*i == 6); 164 ++i; 165 assert(*i == 1); 166 } 167 { 168 std::list<int> l1(a1, a1+1); 169 std::list<int> l2(a2, a2+3); 170 l1.splice(l1.end(), l2); 171 assert(l1.size() == 4); 172 assert(distance(l1.begin(), l1.end()) == 4); 173 assert(l2.size() == 0); 174 assert(distance(l2.begin(), l2.end()) == 0); 175 std::list<int>::const_iterator i = l1.begin(); 176 assert(*i == 1); 177 ++i; 178 assert(*i == 4); 179 ++i; 180 assert(*i == 5); 181 ++i; 182 assert(*i == 6); 183 } 184 { 185 std::list<int> l1(a1, a1+2); 186 std::list<int> l2; 187 l1.splice(l1.begin(), l2); 188 assert(l1.size() == 2); 189 assert(distance(l1.begin(), l1.end()) == 2); 190 assert(l2.size() == 0); 191 assert(distance(l2.begin(), l2.end()) == 0); 192 std::list<int>::const_iterator i = l1.begin(); 193 assert(*i == 1); 194 ++i; 195 assert(*i == 2); 196 } 197 { 198 std::list<int> l1(a1, a1+2); 199 std::list<int> l2; 200 l1.splice(next(l1.begin()), l2); 201 assert(l1.size() == 2); 202 assert(distance(l1.begin(), l1.end()) == 2); 203 assert(l2.size() == 0); 204 assert(distance(l2.begin(), l2.end()) == 0); 205 std::list<int>::const_iterator i = l1.begin(); 206 assert(*i == 1); 207 ++i; 208 assert(*i == 2); 209 } 210 { 211 std::list<int> l1(a1, a1+2); 212 std::list<int> l2; 213 l1.splice(next(l1.begin(), 2), l2); 214 assert(l1.size() == 2); 215 assert(distance(l1.begin(), l1.end()) == 2); 216 assert(l2.size() == 0); 217 assert(distance(l2.begin(), l2.end()) == 0); 218 std::list<int>::const_iterator i = l1.begin(); 219 assert(*i == 1); 220 ++i; 221 assert(*i == 2); 222 } 223 { 224 std::list<int> l1(a1, a1+2); 225 std::list<int> l2(a2, a2+1); 226 l1.splice(l1.begin(), l2); 227 assert(l1.size() == 3); 228 assert(distance(l1.begin(), l1.end()) == 3); 229 assert(l2.size() == 0); 230 assert(distance(l2.begin(), l2.end()) == 0); 231 std::list<int>::const_iterator i = l1.begin(); 232 assert(*i == 4); 233 ++i; 234 assert(*i == 1); 235 ++i; 236 assert(*i == 2); 237 } 238 { 239 std::list<int> l1(a1, a1+2); 240 std::list<int> l2(a2, a2+1); 241 l1.splice(next(l1.begin()), l2); 242 assert(l1.size() == 3); 243 assert(distance(l1.begin(), l1.end()) == 3); 244 assert(l2.size() == 0); 245 assert(distance(l2.begin(), l2.end()) == 0); 246 std::list<int>::const_iterator i = l1.begin(); 247 assert(*i == 1); 248 ++i; 249 assert(*i == 4); 250 ++i; 251 assert(*i == 2); 252 } 253 { 254 std::list<int> l1(a1, a1+2); 255 std::list<int> l2(a2, a2+1); 256 l1.splice(next(l1.begin(), 2), l2); 257 assert(l1.size() == 3); 258 assert(distance(l1.begin(), l1.end()) == 3); 259 assert(l2.size() == 0); 260 assert(distance(l2.begin(), l2.end()) == 0); 261 std::list<int>::const_iterator i = l1.begin(); 262 assert(*i == 1); 263 ++i; 264 assert(*i == 2); 265 ++i; 266 assert(*i == 4); 267 } 268 { 269 std::list<int> l1(a1, a1+2); 270 std::list<int> l2(a2, a2+2); 271 l1.splice(l1.begin(), l2); 272 assert(l1.size() == 4); 273 assert(distance(l1.begin(), l1.end()) == 4); 274 assert(l2.size() == 0); 275 assert(distance(l2.begin(), l2.end()) == 0); 276 std::list<int>::const_iterator i = l1.begin(); 277 assert(*i == 4); 278 ++i; 279 assert(*i == 5); 280 ++i; 281 assert(*i == 1); 282 ++i; 283 assert(*i == 2); 284 } 285 { 286 std::list<int> l1(a1, a1+2); 287 std::list<int> l2(a2, a2+2); 288 l1.splice(next(l1.begin()), l2); 289 assert(l1.size() == 4); 290 assert(distance(l1.begin(), l1.end()) == 4); 291 assert(l2.size() == 0); 292 assert(distance(l2.begin(), l2.end()) == 0); 293 std::list<int>::const_iterator i = l1.begin(); 294 assert(*i == 1); 295 ++i; 296 assert(*i == 4); 297 ++i; 298 assert(*i == 5); 299 ++i; 300 assert(*i == 2); 301 } 302 { 303 std::list<int> l1(a1, a1+2); 304 std::list<int> l2(a2, a2+2); 305 l1.splice(next(l1.begin(), 2), l2); 306 assert(l1.size() == 4); 307 assert(distance(l1.begin(), l1.end()) == 4); 308 assert(l2.size() == 0); 309 assert(distance(l2.begin(), l2.end()) == 0); 310 std::list<int>::const_iterator i = l1.begin(); 311 assert(*i == 1); 312 ++i; 313 assert(*i == 2); 314 ++i; 315 assert(*i == 4); 316 ++i; 317 assert(*i == 5); 318 } 319 { 320 std::list<int> l1(a1, a1+3); 321 std::list<int> l2(a2, a2+3); 322 l1.splice(l1.begin(), l2); 323 assert(l1.size() == 6); 324 assert(distance(l1.begin(), l1.end()) == 6); 325 assert(l2.size() == 0); 326 assert(distance(l2.begin(), l2.end()) == 0); 327 std::list<int>::const_iterator i = l1.begin(); 328 assert(*i == 4); 329 ++i; 330 assert(*i == 5); 331 ++i; 332 assert(*i == 6); 333 ++i; 334 assert(*i == 1); 335 ++i; 336 assert(*i == 2); 337 ++i; 338 assert(*i == 3); 339 } 340 { 341 std::list<int> l1(a1, a1+3); 342 std::list<int> l2(a2, a2+3); 343 l1.splice(next(l1.begin()), l2); 344 assert(l1.size() == 6); 345 assert(distance(l1.begin(), l1.end()) == 6); 346 assert(l2.size() == 0); 347 assert(distance(l2.begin(), l2.end()) == 0); 348 std::list<int>::const_iterator i = l1.begin(); 349 assert(*i == 1); 350 ++i; 351 assert(*i == 4); 352 ++i; 353 assert(*i == 5); 354 ++i; 355 assert(*i == 6); 356 ++i; 357 assert(*i == 2); 358 ++i; 359 assert(*i == 3); 360 } 361 { 362 std::list<int> l1(a1, a1+3); 363 std::list<int> l2(a2, a2+3); 364 l1.splice(next(l1.begin(), 2), l2); 365 assert(l1.size() == 6); 366 assert(distance(l1.begin(), l1.end()) == 6); 367 assert(l2.size() == 0); 368 assert(distance(l2.begin(), l2.end()) == 0); 369 std::list<int>::const_iterator i = l1.begin(); 370 assert(*i == 1); 371 ++i; 372 assert(*i == 2); 373 ++i; 374 assert(*i == 4); 375 ++i; 376 assert(*i == 5); 377 ++i; 378 assert(*i == 6); 379 ++i; 380 assert(*i == 3); 381 } 382 { 383 std::list<int> l1(a1, a1+3); 384 std::list<int> l2(a2, a2+3); 385 l1.splice(next(l1.begin(), 3), l2); 386 assert(l1.size() == 6); 387 assert(distance(l1.begin(), l1.end()) == 6); 388 assert(l2.size() == 0); 389 assert(distance(l2.begin(), l2.end()) == 0); 390 std::list<int>::const_iterator i = l1.begin(); 391 assert(*i == 1); 392 ++i; 393 assert(*i == 2); 394 ++i; 395 assert(*i == 3); 396 ++i; 397 assert(*i == 4); 398 ++i; 399 assert(*i == 5); 400 ++i; 401 assert(*i == 6); 402 } 403 #if TEST_STD_VER >= 11 404 { 405 std::list<int, min_allocator<int>> l1; 406 std::list<int, min_allocator<int>> l2; 407 l1.splice(l1.end(), l2); 408 assert(l1.size() == 0); 409 assert(distance(l1.begin(), l1.end()) == 0); 410 assert(l2.size() == 0); 411 assert(distance(l2.begin(), l2.end()) == 0); 412 } 413 { 414 std::list<int, min_allocator<int>> l1; 415 std::list<int, min_allocator<int>> l2(a2, a2+1); 416 l1.splice(l1.end(), l2); 417 assert(l1.size() == 1); 418 assert(distance(l1.begin(), l1.end()) == 1); 419 assert(l2.size() == 0); 420 assert(distance(l2.begin(), l2.end()) == 0); 421 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 422 assert(*i == 4); 423 } 424 { 425 std::list<int, min_allocator<int>> l1; 426 std::list<int, min_allocator<int>> l2(a2, a2+2); 427 l1.splice(l1.end(), l2); 428 assert(l1.size() == 2); 429 assert(distance(l1.begin(), l1.end()) == 2); 430 assert(l2.size() == 0); 431 assert(distance(l2.begin(), l2.end()) == 0); 432 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 433 assert(*i == 4); 434 ++i; 435 assert(*i == 5); 436 } 437 { 438 std::list<int, min_allocator<int>> l1; 439 std::list<int, min_allocator<int>> l2(a2, a2+3); 440 l1.splice(l1.end(), l2); 441 assert(l1.size() == 3); 442 assert(distance(l1.begin(), l1.end()) == 3); 443 assert(l2.size() == 0); 444 assert(distance(l2.begin(), l2.end()) == 0); 445 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 446 assert(*i == 4); 447 ++i; 448 assert(*i == 5); 449 ++i; 450 assert(*i == 6); 451 } 452 { 453 std::list<int, min_allocator<int>> l1(a1, a1+1); 454 std::list<int, min_allocator<int>> l2; 455 l1.splice(l1.begin(), l2); 456 assert(l1.size() == 1); 457 assert(distance(l1.begin(), l1.end()) == 1); 458 assert(l2.size() == 0); 459 assert(distance(l2.begin(), l2.end()) == 0); 460 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 461 assert(*i == 1); 462 } 463 { 464 std::list<int, min_allocator<int>> l1(a1, a1+1); 465 std::list<int, min_allocator<int>> l2; 466 l1.splice(l1.end(), l2); 467 assert(l1.size() == 1); 468 assert(distance(l1.begin(), l1.end()) == 1); 469 assert(l2.size() == 0); 470 assert(distance(l2.begin(), l2.end()) == 0); 471 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 472 assert(*i == 1); 473 } 474 { 475 std::list<int, min_allocator<int>> l1(a1, a1+1); 476 std::list<int, min_allocator<int>> l2(a2, a2+1); 477 l1.splice(l1.begin(), l2); 478 assert(l1.size() == 2); 479 assert(distance(l1.begin(), l1.end()) == 2); 480 assert(l2.size() == 0); 481 assert(distance(l2.begin(), l2.end()) == 0); 482 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 483 assert(*i == 4); 484 ++i; 485 assert(*i == 1); 486 } 487 { 488 std::list<int, min_allocator<int>> l1(a1, a1+1); 489 std::list<int, min_allocator<int>> l2(a2, a2+1); 490 l1.splice(l1.end(), l2); 491 assert(l1.size() == 2); 492 assert(distance(l1.begin(), l1.end()) == 2); 493 assert(l2.size() == 0); 494 assert(distance(l2.begin(), l2.end()) == 0); 495 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 496 assert(*i == 1); 497 ++i; 498 assert(*i == 4); 499 } 500 { 501 std::list<int, min_allocator<int>> l1(a1, a1+1); 502 std::list<int, min_allocator<int>> l2(a2, a2+2); 503 l1.splice(l1.begin(), l2); 504 assert(l1.size() == 3); 505 assert(distance(l1.begin(), l1.end()) == 3); 506 assert(l2.size() == 0); 507 assert(distance(l2.begin(), l2.end()) == 0); 508 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 509 assert(*i == 4); 510 ++i; 511 assert(*i == 5); 512 ++i; 513 assert(*i == 1); 514 } 515 { 516 std::list<int, min_allocator<int>> l1(a1, a1+1); 517 std::list<int, min_allocator<int>> l2(a2, a2+2); 518 l1.splice(l1.end(), l2); 519 assert(l1.size() == 3); 520 assert(distance(l1.begin(), l1.end()) == 3); 521 assert(l2.size() == 0); 522 assert(distance(l2.begin(), l2.end()) == 0); 523 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 524 assert(*i == 1); 525 ++i; 526 assert(*i == 4); 527 ++i; 528 assert(*i == 5); 529 } 530 { 531 std::list<int, min_allocator<int>> l1(a1, a1+1); 532 std::list<int, min_allocator<int>> l2(a2, a2+3); 533 l1.splice(l1.begin(), l2); 534 assert(l1.size() == 4); 535 assert(distance(l1.begin(), l1.end()) == 4); 536 assert(l2.size() == 0); 537 assert(distance(l2.begin(), l2.end()) == 0); 538 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 539 assert(*i == 4); 540 ++i; 541 assert(*i == 5); 542 ++i; 543 assert(*i == 6); 544 ++i; 545 assert(*i == 1); 546 } 547 { 548 std::list<int, min_allocator<int>> l1(a1, a1+1); 549 std::list<int, min_allocator<int>> l2(a2, a2+3); 550 l1.splice(l1.end(), l2); 551 assert(l1.size() == 4); 552 assert(distance(l1.begin(), l1.end()) == 4); 553 assert(l2.size() == 0); 554 assert(distance(l2.begin(), l2.end()) == 0); 555 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 556 assert(*i == 1); 557 ++i; 558 assert(*i == 4); 559 ++i; 560 assert(*i == 5); 561 ++i; 562 assert(*i == 6); 563 } 564 { 565 std::list<int, min_allocator<int>> l1(a1, a1+2); 566 std::list<int, min_allocator<int>> l2; 567 l1.splice(l1.begin(), l2); 568 assert(l1.size() == 2); 569 assert(distance(l1.begin(), l1.end()) == 2); 570 assert(l2.size() == 0); 571 assert(distance(l2.begin(), l2.end()) == 0); 572 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 573 assert(*i == 1); 574 ++i; 575 assert(*i == 2); 576 } 577 { 578 std::list<int, min_allocator<int>> l1(a1, a1+2); 579 std::list<int, min_allocator<int>> l2; 580 l1.splice(next(l1.begin()), l2); 581 assert(l1.size() == 2); 582 assert(distance(l1.begin(), l1.end()) == 2); 583 assert(l2.size() == 0); 584 assert(distance(l2.begin(), l2.end()) == 0); 585 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 586 assert(*i == 1); 587 ++i; 588 assert(*i == 2); 589 } 590 { 591 std::list<int, min_allocator<int>> l1(a1, a1+2); 592 std::list<int, min_allocator<int>> l2; 593 l1.splice(next(l1.begin(), 2), l2); 594 assert(l1.size() == 2); 595 assert(distance(l1.begin(), l1.end()) == 2); 596 assert(l2.size() == 0); 597 assert(distance(l2.begin(), l2.end()) == 0); 598 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 599 assert(*i == 1); 600 ++i; 601 assert(*i == 2); 602 } 603 { 604 std::list<int, min_allocator<int>> l1(a1, a1+2); 605 std::list<int, min_allocator<int>> l2(a2, a2+1); 606 l1.splice(l1.begin(), l2); 607 assert(l1.size() == 3); 608 assert(distance(l1.begin(), l1.end()) == 3); 609 assert(l2.size() == 0); 610 assert(distance(l2.begin(), l2.end()) == 0); 611 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 612 assert(*i == 4); 613 ++i; 614 assert(*i == 1); 615 ++i; 616 assert(*i == 2); 617 } 618 { 619 std::list<int, min_allocator<int>> l1(a1, a1+2); 620 std::list<int, min_allocator<int>> l2(a2, a2+1); 621 l1.splice(next(l1.begin()), l2); 622 assert(l1.size() == 3); 623 assert(distance(l1.begin(), l1.end()) == 3); 624 assert(l2.size() == 0); 625 assert(distance(l2.begin(), l2.end()) == 0); 626 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 627 assert(*i == 1); 628 ++i; 629 assert(*i == 4); 630 ++i; 631 assert(*i == 2); 632 } 633 { 634 std::list<int, min_allocator<int>> l1(a1, a1+2); 635 std::list<int, min_allocator<int>> l2(a2, a2+1); 636 l1.splice(next(l1.begin(), 2), l2); 637 assert(l1.size() == 3); 638 assert(distance(l1.begin(), l1.end()) == 3); 639 assert(l2.size() == 0); 640 assert(distance(l2.begin(), l2.end()) == 0); 641 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 642 assert(*i == 1); 643 ++i; 644 assert(*i == 2); 645 ++i; 646 assert(*i == 4); 647 } 648 { 649 std::list<int, min_allocator<int>> l1(a1, a1+2); 650 std::list<int, min_allocator<int>> l2(a2, a2+2); 651 l1.splice(l1.begin(), l2); 652 assert(l1.size() == 4); 653 assert(distance(l1.begin(), l1.end()) == 4); 654 assert(l2.size() == 0); 655 assert(distance(l2.begin(), l2.end()) == 0); 656 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 657 assert(*i == 4); 658 ++i; 659 assert(*i == 5); 660 ++i; 661 assert(*i == 1); 662 ++i; 663 assert(*i == 2); 664 } 665 { 666 std::list<int, min_allocator<int>> l1(a1, a1+2); 667 std::list<int, min_allocator<int>> l2(a2, a2+2); 668 l1.splice(next(l1.begin()), l2); 669 assert(l1.size() == 4); 670 assert(distance(l1.begin(), l1.end()) == 4); 671 assert(l2.size() == 0); 672 assert(distance(l2.begin(), l2.end()) == 0); 673 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 674 assert(*i == 1); 675 ++i; 676 assert(*i == 4); 677 ++i; 678 assert(*i == 5); 679 ++i; 680 assert(*i == 2); 681 } 682 { 683 std::list<int, min_allocator<int>> l1(a1, a1+2); 684 std::list<int, min_allocator<int>> l2(a2, a2+2); 685 l1.splice(next(l1.begin(), 2), l2); 686 assert(l1.size() == 4); 687 assert(distance(l1.begin(), l1.end()) == 4); 688 assert(l2.size() == 0); 689 assert(distance(l2.begin(), l2.end()) == 0); 690 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 691 assert(*i == 1); 692 ++i; 693 assert(*i == 2); 694 ++i; 695 assert(*i == 4); 696 ++i; 697 assert(*i == 5); 698 } 699 { 700 std::list<int, min_allocator<int>> l1(a1, a1+3); 701 std::list<int, min_allocator<int>> l2(a2, a2+3); 702 l1.splice(l1.begin(), l2); 703 assert(l1.size() == 6); 704 assert(distance(l1.begin(), l1.end()) == 6); 705 assert(l2.size() == 0); 706 assert(distance(l2.begin(), l2.end()) == 0); 707 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 708 assert(*i == 4); 709 ++i; 710 assert(*i == 5); 711 ++i; 712 assert(*i == 6); 713 ++i; 714 assert(*i == 1); 715 ++i; 716 assert(*i == 2); 717 ++i; 718 assert(*i == 3); 719 } 720 { 721 std::list<int, min_allocator<int>> l1(a1, a1+3); 722 std::list<int, min_allocator<int>> l2(a2, a2+3); 723 l1.splice(next(l1.begin()), l2); 724 assert(l1.size() == 6); 725 assert(distance(l1.begin(), l1.end()) == 6); 726 assert(l2.size() == 0); 727 assert(distance(l2.begin(), l2.end()) == 0); 728 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 729 assert(*i == 1); 730 ++i; 731 assert(*i == 4); 732 ++i; 733 assert(*i == 5); 734 ++i; 735 assert(*i == 6); 736 ++i; 737 assert(*i == 2); 738 ++i; 739 assert(*i == 3); 740 } 741 { 742 std::list<int, min_allocator<int>> l1(a1, a1+3); 743 std::list<int, min_allocator<int>> l2(a2, a2+3); 744 l1.splice(next(l1.begin(), 2), l2); 745 assert(l1.size() == 6); 746 assert(distance(l1.begin(), l1.end()) == 6); 747 assert(l2.size() == 0); 748 assert(distance(l2.begin(), l2.end()) == 0); 749 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 750 assert(*i == 1); 751 ++i; 752 assert(*i == 2); 753 ++i; 754 assert(*i == 4); 755 ++i; 756 assert(*i == 5); 757 ++i; 758 assert(*i == 6); 759 ++i; 760 assert(*i == 3); 761 } 762 { 763 std::list<int, min_allocator<int>> l1(a1, a1+3); 764 std::list<int, min_allocator<int>> l2(a2, a2+3); 765 l1.splice(next(l1.begin(), 3), l2); 766 assert(l1.size() == 6); 767 assert(distance(l1.begin(), l1.end()) == 6); 768 assert(l2.size() == 0); 769 assert(distance(l2.begin(), l2.end()) == 0); 770 std::list<int, min_allocator<int>>::const_iterator i = l1.begin(); 771 assert(*i == 1); 772 ++i; 773 assert(*i == 2); 774 ++i; 775 assert(*i == 3); 776 ++i; 777 assert(*i == 4); 778 ++i; 779 assert(*i == 5); 780 ++i; 781 assert(*i == 6); 782 } 783 #endif 784 } 785