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 // <map>
11 
12 // class map
13 
14 // size_type count(const key_type& k) const;
15 
16 #include <map>
17 #include <cassert>
18 
19 #include "../../../min_allocator.h"
20 
21 int main()
22 {
23     {
24     typedef std::pair<const int, double> V;
25     typedef std::map<int, double> M;
26     {
27         typedef M::size_type R;
28         V ar[] =
29         {
30             V(5, 5),
31             V(6, 6),
32             V(7, 7),
33             V(8, 8),
34             V(9, 9),
35             V(10, 10),
36             V(11, 11),
37             V(12, 12)
38         };
39         const M m(ar, ar+sizeof(ar)/sizeof(ar[0]));
40         R r = m.count(5);
41         assert(r == 1);
42         r = m.count(6);
43         assert(r == 1);
44         r = m.count(7);
45         assert(r == 1);
46         r = m.count(8);
47         assert(r == 1);
48         r = m.count(9);
49         assert(r == 1);
50         r = m.count(10);
51         assert(r == 1);
52         r = m.count(11);
53         assert(r == 1);
54         r = m.count(12);
55         assert(r == 1);
56         r = m.count(4);
57         assert(r == 0);
58     }
59     }
60 #if __cplusplus >= 201103L
61     {
62     typedef std::pair<const int, double> V;
63     typedef std::map<int, double, std::less<int>, min_allocator<V>> M;
64     {
65         typedef M::size_type R;
66         V ar[] =
67         {
68             V(5, 5),
69             V(6, 6),
70             V(7, 7),
71             V(8, 8),
72             V(9, 9),
73             V(10, 10),
74             V(11, 11),
75             V(12, 12)
76         };
77         const M m(ar, ar+sizeof(ar)/sizeof(ar[0]));
78         R r = m.count(5);
79         assert(r == 1);
80         r = m.count(6);
81         assert(r == 1);
82         r = m.count(7);
83         assert(r == 1);
84         r = m.count(8);
85         assert(r == 1);
86         r = m.count(9);
87         assert(r == 1);
88         r = m.count(10);
89         assert(r == 1);
90         r = m.count(11);
91         assert(r == 1);
92         r = m.count(12);
93         assert(r == 1);
94         r = m.count(4);
95         assert(r == 0);
96     }
97     }
98 #endif
99 }
100