| 574 | // For RandomAccess iterators (vector, deque) |
| 575 | template<typename Container> |
| 576 | typename fl::enable_if<has_insert_position<Container>::value && |
| 577 | has_erase<Container>::value && |
| 578 | has_iterator_plus<Container>::value>::type |
| 579 | test_sequential_container_tier2() { |
| 580 | Container c; |
| 581 | populate(c, make_shared_int(10)); |
| 582 | populate(c, make_shared_int(30)); |
| 583 | |
| 584 | // Test insert (using iterator arithmetic - RandomAccess only) |
| 585 | c.insert(c.begin() + 1, make_shared_int(20)); |
| 586 | FL_CHECK(c.size() == 3); |
| 587 | |
| 588 | // Test erase (using iterator arithmetic - RandomAccess only) |
| 589 | c.erase(c.begin() + 1); |
| 590 | FL_CHECK(c.size() == 2); |
| 591 | } |
| 592 | |
| 593 | // Alternative for BidirectionalIterator containers (list) |
| 594 | template<typename Container> |