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 19int 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