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 multiset
13
14 // void swap(multiset& m);
15
16 #include <set>
17 #include <cassert>
18
main()19 int main()
20 {
21 typedef int V;
22 typedef std::multiset<int> M;
23 {
24 V ar1[] =
25 {
26 };
27 V ar2[] =
28 {
29 };
30 M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
31 M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
32 M m1_save = m1;
33 M m2_save = m2;
34 m1.swap(m2);
35 assert(m1 == m2_save);
36 assert(m2 == m1_save);
37 }
38 {
39 V ar1[] =
40 {
41 };
42 V ar2[] =
43 {
44 5,
45 6,
46 7,
47 8,
48 9,
49 10,
50 11,
51 12
52 };
53 M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
54 M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
55 M m1_save = m1;
56 M m2_save = m2;
57 m1.swap(m2);
58 assert(m1 == m2_save);
59 assert(m2 == m1_save);
60 }
61 {
62 V ar1[] =
63 {
64 1,
65 2,
66 3,
67 4
68 };
69 V ar2[] =
70 {
71 };
72 M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
73 M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
74 M m1_save = m1;
75 M m2_save = m2;
76 m1.swap(m2);
77 assert(m1 == m2_save);
78 assert(m2 == m1_save);
79 }
80 {
81 V ar1[] =
82 {
83 1,
84 2,
85 3,
86 4
87 };
88 V ar2[] =
89 {
90 5,
91 6,
92 7,
93 8,
94 9,
95 10,
96 11,
97 12
98 };
99 M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
100 M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
101 M m1_save = m1;
102 M m2_save = m2;
103 m1.swap(m2);
104 assert(m1 == m2_save);
105 assert(m2 == m1_save);
106 }
107 }
108