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