1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <map> 10 11 // class map 12 13 // size_type size() const; 14 15 #include <map> 16 #include <cassert> 17 18 #include "min_allocator.h" 19 20 int main(int, char**) 21 { 22 { 23 typedef std::map<int, double> M; 24 M m; 25 assert(m.size() == 0); 26 m.insert(M::value_type(2, 1.5)); 27 assert(m.size() == 1); 28 m.insert(M::value_type(1, 1.5)); 29 assert(m.size() == 2); 30 m.insert(M::value_type(3, 1.5)); 31 assert(m.size() == 3); 32 m.erase(m.begin()); 33 assert(m.size() == 2); 34 m.erase(m.begin()); 35 assert(m.size() == 1); 36 m.erase(m.begin()); 37 assert(m.size() == 0); 38 } 39 #if TEST_STD_VER >= 11 40 { 41 typedef std::map<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M; 42 M m; 43 assert(m.size() == 0); 44 m.insert(M::value_type(2, 1.5)); 45 assert(m.size() == 1); 46 m.insert(M::value_type(1, 1.5)); 47 assert(m.size() == 2); 48 m.insert(M::value_type(3, 1.5)); 49 assert(m.size() == 3); 50 m.erase(m.begin()); 51 assert(m.size() == 2); 52 m.erase(m.begin()); 53 assert(m.size() == 1); 54 m.erase(m.begin()); 55 assert(m.size() == 0); 56 } 57 #endif 58 59 return 0; 60 } 61