Home | History | Annotate | Download | only in list.capacity
      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 resize(size_type sz);
     13 
     14 #include <list>
     15 #include <cassert>
     16 #include "DefaultOnly.h"
     17 #include "min_allocator.h"
     18 
     19 int main()
     20 {
     21     {
     22         std::list<int> l(5, 2);
     23         l.resize(2);
     24         assert(l.size() == 2);
     25         assert(std::distance(l.begin(), l.end()) == 2);
     26         assert(l == std::list<int>(2, 2));
     27     }
     28     {
     29         std::list<int> l(5, 2);
     30         l.resize(10);
     31         assert(l.size() == 10);
     32         assert(std::distance(l.begin(), l.end()) == 10);
     33         assert(l.front() == 2);
     34         assert(l.back() == 0);
     35     }
     36 #ifdef __LIBCPP_MOVE
     37     {
     38         std::list<DefaultOnly> l(10);
     39         l.resize(5);
     40         assert(l.size() == 5);
     41         assert(std::distance(l.begin(), l.end()) == 5);
     42     }
     43     {
     44         std::list<DefaultOnly> l(10);
     45         l.resize(20);
     46         assert(l.size() == 20);
     47         assert(std::distance(l.begin(), l.end()) == 20);
     48     }
     49 #endif  // __LIBCPP_MOVE
     50 #if TEST_STD_VER >= 11
     51     {
     52         std::list<int, min_allocator<int>> l(5, 2);
     53         l.resize(2);
     54         assert(l.size() == 2);
     55         assert(std::distance(l.begin(), l.end()) == 2);
     56         assert((l == std::list<int, min_allocator<int>>(2, 2)));
     57     }
     58     {
     59         std::list<int, min_allocator<int>> l(5, 2);
     60         l.resize(10);
     61         assert(l.size() == 10);
     62         assert(std::distance(l.begin(), l.end()) == 10);
     63         assert(l.front() == 2);
     64         assert(l.back() == 0);
     65     }
     66 #ifdef __LIBCPP_MOVE
     67     {
     68         std::list<DefaultOnly, min_allocator<DefaultOnly>> l(10);
     69         l.resize(5);
     70         assert(l.size() == 5);
     71         assert(std::distance(l.begin(), l.end()) == 5);
     72     }
     73     {
     74         std::list<DefaultOnly, min_allocator<DefaultOnly>> l(10);
     75         l.resize(20);
     76         assert(l.size() == 20);
     77         assert(std::distance(l.begin(), l.end()) == 20);
     78     }
     79 #endif  // __LIBCPP_MOVE
     80 #endif
     81 }
     82